Ивица Пешовски е СТО во Brainster, инструктор на Академијата за програмирање, а воедно и столбот на tech тимот кој работи со полна пареа на софтверски решенија кои имаат за цел да го олеснат совладувањето дигитални вештини и да воведат една нова димензија во комплетниот образовен процес. Во слободно време се надградува себеси и учи нови вештини, прави сопствено пиво и медовина, планинари и вози мотор. Но, неговата најголема пасија е софтверското инженерство. Затоа, овој пат си поразговаравме со Ивица на тема програмирање и промена на трендовите во светот на ИТ технологијата.
Прочитајте што CTO-то на Brainster има да каже за светот на програмирањето:
Повеќето луѓе се плашат од промени. Ова е за луѓето кои се возбудени околу промените и кои не се плашат да го предизвикаат статус кво-то.
Зошто го пишувам текстов? Долго време пропагирав дека светот на бекенд програмирањето не е сменет последните 15тина години. Дека сѐ што се прави се минорни промени година за година. Дека светот на фронтенд програмирањето е динамичен и се менува брзо. Ова, како што сфаќам сега, ми било стереотип. На размислување ме поттикна последниот Laracon настан, каде што беа најавени неколку новитети во Laravel програмската рамка (framework).
Како инструктор на Академијата за програмирање во Brainster, континуирано сум во позиција да запознавам нови луѓе со програмирањето и да се обидам да им го пренесам моето знаење. Можам да кажам дека луѓето што сега почнуваат да учат програмирање, уште сега немаат леснa работа. И овој јаз за влез во ИТ светот континуирано се зголемува од година во година. Впрочем, се зголемува од ден во ден. И не гледам да престане во блиска иднина. Еве на што мислам.
Генерацијата што почнала со програмирање пред 20тина години, ако била tech-savvy и покажувала интерес за технологија и компјутери имала релативно лесен предизвик – да научи еден програмски јазик. Веројатно тоа бил Visual Basic. Или Java. Или C. Нормално, познавање на работа со бази на податоци. Основни ООП концепти. За веб девелопмент доволно биле неколку HTML тагови, CSS колку за позиционирање елементи (со пиксели како единствена мерна единица) и менување бои. JavaScript варијабли и функции за синхрона интеракција во пребарувач. Софтверот бил развиван само за еден уред: персонален компјутер. Еден од поголемите предизвици, според мое видување било сетирање на околина за работа или совладување Vim :).
Ова не значи дека нивните знаења, искуство и вештини не се доволни или пак не се релевантни. Напротив, луѓето од оваа категорија се луѓе кои со пристап до оскудни информации и речиси без помош научиле да програмираат. Тоа се луѓе со огромно искуство денес, луѓе кои несомнено ги следат трендовите и се експерти во различните области коишто денешните почетници треба да ги знаат. Пробувам објективно да гледам на предизвиците што ги имале кога почнувале со нивната ИТ кариера. Веројатно пропуштам некои работи, ве молам надополнете ме во коментар.
Ние како генерација што почнавме со програмирање пред 10тина години требаше да знаеме малку повеќе за сам влез во ИТ светот. Генерациите пред нас веќе имаа поставено добра поделба на технологиите и почнаа да се појавуваат vendor-specific компании. Ова значеше дека треба да се има познавање од неколку програмски јазици за да може да се конкурира во различни компании и да се работи на различни проекти. Проектите од монолитна структура полека почнуваа да се префрлаат кон микросервисна архитектура. Ова носеше своевидни промени во стекот на технологии што требаше да се знаат. Некои ООП концепти кои претходно биле теоретски од нас се очекуваше добро да ги владееме (пример: composition over inheritance).
Веб програмирањето земаше сѐ поголем замав, се јави потреба од респонзивни решенија. На пазарот веќе постоеше плејада од разни уреди на коишто софтверот на кој ние допрва ќе работиме, во тоа време требаше да работи беспрекорно. Развојот на cross-platform апликации стана стандард. Пристапот до поголема процесирачка моќ воведе можност за паралелно процесирање што доведе до потреба за асинхроно програмирање, работи со коишто и денеска одредени програмски јазици имаат проблеми.
Генерацијата што денес почнува не може да влезе во светот на ИТ само со пиење големи количини кафе. Да, некои работи што постоеја пред 10 или 20 години денес – не постојат. И иако денеска сетирањето околина за работа е тривијална задача и луѓето имаат на дофат неисцрплив извор на информации и ресурси, сепак диверзитетот на технологии и уреди што постојат никогаш не бил поголем. Уште на почеток луѓето се соочени со недоумица во која насока да тргнат. Веб девелопмент, развој на апликации за мобилни уреди, паметни домови, апликации за паметни автомобили, машинско учење.
Инфраструктурата никогаш не била посложена, поаѓајќи од трендови како комплетно микросервисна и/или serverless архитектура, па се до сложена оркестрација на ваквата архитектура преку алатки кaко Docker и Kubernetes. Програмските јазици се веќе зрели и со доста напредни концепти. Од денешените студенти се очекува да не ги прават грешките кои ги правевме ние бидејќи истите се добро познати и документирани. Се очекува да знаат за TDD (test-driven development). Покрај потребата да владеат добро барем еден програмски јазик, потребно е да знаат за барем еден framework за тој јазик, а не е исклучена и потребата за познавање framework за самиот framework (JavaScript -> React -> Next.js …). Екосистемите на самите програмски јазици и framework-си не се занемарливи како што беа пред неколку години. Ќе го земам за пример Ларавел бидејќи ми е најблизок во поглед на секојдневна работа (сликата десно). Не сите работи од сликата се пресудни за влез во ИТ, меѓутоа луѓето треба барем да имаат идеја што нуди секој од елементите на екосистемот и во еден момент од нивната кариера и да го совладаат секој од нив. Од нив се очекува да знаат добро да комуницираат со останатите тимови (пример фронтенд со бекенд програмер, со qa тим, со продукт менаџер, со скрам мастер, со систем админ :D). Ова едноставно не беше случај порано.
Од друга страна, големата процесирачка моќ до која имаме пристап денес дозволува и просечно-оптимизиран код да покажува добри перформанси. Работата на далечина никогаш не била полесна, а и дијапазонот на индустрии на кои им требаат ИТ кадри никогаш не бил поширок. ИТ е индустрија во која нема никаква дискриминација и буквално секој може да почне со кариера. ИТ заедницата исто така никогаш не била поголема и новите ИТ луѓе многу веројатно ќе работат во тимови од кои секојдневно ќе можат да учат нови работи.
После напишаново, воопшто не ми е тешко да извлечам заклучок и впрочем ќе бидам краток. Влезот во ИТ на било каков начин е неизбежен. Дигиталната трансформација на секојдневното живеење е исто неизбежна. Периодов дури и задолжителна. Иако Муровиот закон станува ирелевантен дигиталните технологии со сигурност нема во блиска иднина да влезат во период на стагнација и нивниот развој ќе биде сѐ побрз. Ова ќе значи дека нивното совладување ќе станува сѐ покомплицирана задача што несомнено ме води до следниот заклучок: кој ќе почне поскоро, тој ќе има помалку работи за совладување. Со темпото на иновација, ова слободно може да се формулира и на дневна основа:
Кој ќе почне со учење дигитални вештини денес ќе има помалку работи за совладување од тој што ќе почне утре.
Започна новиот уписен рок на Академијата за Full Stack програмирање.
Дознајте повеќе како да започнете кариера во оваа професија, преку темелната програма на нашата Академија за Full Stack програмирање.
Закажи средба за повеќе информации со нашиот student success manager.