Според hackr.io, тронот на најбарани програмски јазици во 2020 е цврсто запоседнат од Python и побарувачката е резултат на повеќе фактори. Еден од нив е таканаречениот “omnipresence“ што Python го нуди во повеќе полиња на software development. Друг е лесната синтаксичка природа и можност за учење, но пресудниот е дефинитивно неговата незаменлива улога кога станува збор за Machine Learning и AI.
Од тука, Python е еден од најопсежните модули на Академијата за Data Science кој во комбинација со ML се изучува во временски опсег од цели 4 месеци! Инструктор на овој модул е Андреј Наумовски, front-end developer со 3 годишно искуство во software development и голема пасија за Deep Learning. Затоа со него поразговаравме повеќе за предностите и потенцијалот на Python, како за софтверски потреби, така и за Data Science.
Следната група на Академијата за Data Science почнува во септември и бројот на места е ограничен! Со запишувањето секој учесник влегува во подготвителна програма. Затоа аплицирај сега и искористи го летото за подготовка!
Андреј, вообичаено, веднаш преоѓаме на главното. Некои од најважните предности на Python како програмски јазик е неговата лесна синтакса, флексибилност, поддршка и интеграција. Поради тоа, кога станува збор за Data Science, многумина го одбираат пред R. Но, што е причината што го направи твој избор за работа?
Па иницијално поради самата флексибилност при работа, како и малиот learning curve, и секако огромната поддршка од заедницата и многу поголемиот број на достапни библиотеки во однос на R. Имам искуство и со двата јазици и R е повеќе насочен баш кон scientific calculations и statistical computing, додека Python е general purpose и има примени не само во Data Science и ML туку и во полиња како веб развој, мрежно програмирање и слично. R е развиван од статистичари додека Python е развиван од програмери, и се гледа разликата, најмногу од аспект на ease of use.
Кога сме тука, да не ја заборавиме и GPU поддршката. Колку Nvidia Титани се доста? 🙂
Почекајте 1 минута, да проверам колку ми се потребни за VR gaming ?… А сега сериозно, последната RTX TITAN е специјализирана за AI, така да и со само една може повеќето алгоритми да се извршуваат повеќе од доволно брзо за да се тренираат и тестираат. За продукциски околини, најпаметно е да се користи некој од cloud провајдерите за AI at scale – AWS или Google Cloud Platform, поефтино е, нема малтретирање со конфигурација на сервер и секако многу поскалабилно.
Што мислиш, моменталната побарувачка за Python е тесно врзана со подемот на Data Science или одговорот лежи во нешто друго?
Дефинитивно главен причинител е Data Science полето. Python за web е тука од поодамна така да моменталниот бум во Data Science и Machine Learning најмногу придонесува за денешната побарувачка за Python програмери.
Те знаеме како еден од најдобрите студенти на ФЕИТ, а на професионално поле имаш широк афинитет што опфаќа сè од Front-end development, па до Deep Learning. Ова е ретка комбинација. Покрај часовите на Академијата за Data Science, на што работиш во моментов и каков тип на проекти ти се предизвик?
Па моментално главниот фокус ми е на главното работно место, бидејќи неодамна преминав во нова фирма со значајно поголеми одговорности како co-lead на frontend engineering тимот, така да од претходни искуства овој пат не земам повеќе проекти одеднаш затоа што или нема да можам доволно да се фокусирам на сите или ќе стигнам до степен на burnout, а сум во период кај што не би сакал да стигне до тоа. Академијата исто така ми е сериозен ангажман. За некој месец откако ќе се стабилизирам и ќе влезам in the loop имам повеќе идеи кои што би сакал да ги разработам, од повеќе области.
Групата што моментално слуша Python на Академијата е во главно составена од учесници со искуство и работа во финансии. Како им оди “програмирањето“ и колку си задоволен од нивниот прогрес?
Со оглед на тоа што најголемиот дел од студентите немаа позадина во програмирање, искрено сум импресиониран од нивниот напредок во овие 6 недели колку што траеше модулот по Python. Мислам дека дадоа сè од себе за да ги сфатат концептите на програмирање и основните одлики на самиот јазик, а притоа заеднички успеавме да создадеме интересна и динамична атмосфера на предавањата и вежбите.
Исто така, моментално часовите се одвиваат онлајн. Со оглед на тоа што ти работиш со странски клиенти, remote начинот на работа не ти е непознат. Кои се според тебе клучни предности на онлајн интерактивните предавања?
Главната придобивка секако е тоа што се избегнува патување до и од училниците, особено во Скопје. Но, уште побитно е тоа што овој начин на работа те тера да бидеш поинтерактивен, за да се надокнади за тоа што нема физичко присуство, па така целиме кон повеќе дискусии, како и доброволно студентите да ги презентираат своите решенија на задачи за да видиме различни пристапи кон решавање на одреден проблем и да размениме искуства. И дополнително студентите стекнуваат искуство со онлајн работа, бидејќи како што знаеме иднината на IT е remote, така да студентите ќе имаат head start во однос на луѓе кои немаат такво искуство.
Кога сме кај web development, Python цврсто се наметнува и на ова поле, особено со се поголемата популарност на frameworks како Django и Flask. Од тука, ако некој сака и е во можност да научи само еден програмски јазик, дали би го препорачал Python?
Па не би препорачал главниот фокус да им биде јазик. Би препорачал да посветат повеќе време на учење на концептите на програмирање, алгоритми и пишување добар и чист код за да имаат добра основа. ИТ индустријата е прединамична и оние јазици што денес се ин, за 2 години може воопшто да не се ни употребуваат. Знаејќи ја основата и без фокусирање на одреден јазик, ќе имаат предност да се флексибилни и да може да се префрлат со малку труд од еден на друг јазик или библиотека или рамка. Синтакса на јазик се учи брзо. Но, ако би морал да препорачам еден јазик, тоа би било 50/50 измеѓу Javascript и Python, зависи во која насока некој сака да оди. Има области кај што и двата јазици се добри, но и области кај што едниот јазик е значајно подобар од другиот. Ако сакате да се насочите кон веб програмирање и градење кориснички интерфејси, тогаш Javascript е очигледниот избор, додека за работа со податоци, статистика и machine learning секако победува Python.
Во Data Science контекст, имаме голем асортиман на Machine Learning библиотеки. Која ја преферираш за работа и зошто?
Тоа многу зависи од самиот проблем кој што го разработувам. За поедноставни алгоритми scikit-learn, додека ако ми треба нешто понапредно, особено Deep Learning, тогаш Keras ми е изборот бидејќи ми овозможува брзо и лесно да развијам прототип. Ако ми треба повеќе контрола тогаш мој избор е TensorFlow. Немам доволно време да ја пробам PyTorch иако многумина ја фалат.
Околностите предизвикани од COVID-19 произведоа лавина од мислења за излез од кризата. Едно од тие е дека со помош на AI најбрзо ќе стигнеме до вакцина. Но, колку сме навистина близу или далеку од реалност каде ќе решаваме вакви проблеми со AI?
Дефинитивно може да биде од помош, чисто поради фактот дека компјутер може многу побрзо да процесира податоци од човек. Не постои шанса дека сам AI ќе успее да најде вакцина за COVID-19, да бидеме реални, AI е се уште далеку од тоа, но дефинитивно може да се искористи за да се стигне побрзо до резултат.
Како да ја намалиме стигмата и стравот од “програмирање“ кај луѓето што доаѓаат од сектори вон IT, а сакаат да почнат обука во Data Science?
Иако програмирањето само по себе е тешко, не е ТОЛКУ тешко колку што луѓето си мислат, особено во поле на Data Science, кај што за разлика од софтверско инженерство, програмирањето не е главен фокус. Градењето на еден модел во код не е тешко затоа што постојат многу библиотеки кои го олеснуваат целиот процес, во 40-50 реда код може да се напише deep neural network. Поважно е претходно да се разбере проблемот и датасетот кој што се обработува и да се дизајнира соодветниот модел.
Како го поминуваш слободното време? Секако, ако го имаш. 🙂
Она малку слободно време што го имам го поминувам во гледање Formula 1 (додека трае сезоната и не е одложена поради пандемија). Во последно време си купив волан за PC и почнав со simracing како метод за поминување време во изолација. Исто така сакам и да возам вистински автомобили, секако кога дозволува ситуацијата. Мислам дека сите што ги знам ми викаат дека премногу време поминувам во гаража и на YouTube канали за автомобили, хахах. Обожавам да готвам, и секако да поминувам време со блиски луѓе 🙂
За крај, што би им порачал на сите што имаат интерес за кариера во Data Science?
Да го тргнат настрана стравот од програмирање, да се подготват за тешки предизвици кои навистина ќе се исплатат, и да се спремни на континуирано учење бидејќи полето на Data Science и IT e генерално многу променливо. И исто така, go for it!
Уписите на Online Академијата за Data Science се во тек! Фати си место овде.