Не е лесно да се стане програмер. Повеќето луѓе, кога почнуваат да размислуваат за оваа кариера, она што најчесто ги плаши е подолга листа на работи кои мора да се научат. Без разлика дали размислуваш за full stack, frontend, backend или WordPress, листата на програмски јазици и апликации кои треба да се совладаат не е мала и на прв поглед може да изгледа застрашувачки.

Но, не се сите патеки за започнување кариера на програмер исти и подеднакво тешки. Убава работа е што кариерата во tech индустријата може да ја започнеш со различен сет на вештини и да се надградуваш со тек на времето. Можеш да учиш нови јазици и технологии и континуирано да ја развиваш кариерата во која насока сакаш. Постојат неколку патеки по кои можеш да започнеш кариера на програмер, секоја во зависност од афинитетите и според можноста да издвоиш време за учење. Овој, не баш краток водич, е тука да ти помогне да ја одбереш најдобрата опција за тебе, да ти даде идеја колку време би ти било потребно да почнеш да работиш како програмер и да го надминеш иницијалниот страв од непознато.

Доколку размислуваш да станеш програмер тогаш разгледај ги сите достапни опции тука. Во тек се уписите за групите кои почнуваат во април.

Frontend програмер

Frontend дел на еден веб сајт е се она што го гледаш на страницата и со што имаш директна интеракција. Копчињата, менијата, графичките елементи, форми и слично се дел од работите кои ги прави еден frontend програмер. Frontend е делот од сајтот или апликацијата кој работи во нашиот прелистувач или на некој од нашите уреди.
Најчесто го мешаат со веб дизајн, што многу од програмерите знае да ги нервира. Дизајнот е битен дел од работата на еден frontend програмер но сепак поголем дел од времето и работата се сведува на пишувње код за да се доведат сите елементи на страницата во совршен ред и функционалност, за целото искуство да биде пријатно за крајниот корисник.
Програмерот се грижи сајтот или апликацијата да изгледаат скоро идентично на различни уреди и платформи. Исто така се грижи делот кој се извршува на нашиот уред да ги користи расположливите ресурси оптимално. Ова е професија за луѓе кои се креативни по природа, но сакаат прецизност и функционалност и имаат трпение истите работи да ги средуваат одново.

Листа на работи кои треба да ги знае еден frontend програмер најчесто вклучува:

HTML и CSS:
Ова се основите на секоја веб страна и без нив сите би биле само црн текст на бела позадина. Добра работа е што се лесни за учење и потребни се неколку недели за да стекнете солидно познавање.

JavaScript и jQuery:
JavaScript на сајтот му додава функционалности а со негова помош можеш да создадеш и доста основни веб апликации. Ова е исто така и еден од најпопуларните програмски јазици, па неговото познавање секако може да ти помогне во понатамошна кариера, без разлика во која насока сакаш да ја развиеш.

jQuery е т.н. framework на JavaScript и всушност претставува колекција на плагини и екстензии кои го олеснуваат работењето во JavaScript. Ова значи дека можеш да користиш веќе готови елементи во твоите проекти и истите да ги прилагодуваш по потреба.

Frameworks:
Познавање барем на еден framework доста ја олеснува работата на еден програмер. Како што кажав погоре, framework е сет од функции кои се потребни во секојдневната работа на еден програмер, ја олеснуваат работата и значително го намалуваат времето на изработка на едно решение. Скоро сите програмски јазици имаат вакви frameworks и денес е невозможно да се замисли кодирање без користење на еден од нив. Секој framework има свои предности и маани, но она што е важно при одбирање на еден framework е да се провери дали функциите кои ги содржи одговараат на проектот на кој ќе работиш.

Bootstrap е еден од најпопуларните frontend frameworks. Бидејќи најголем дел од кодирањето во HTML/CSS подразбира повторно креирање и стилизирање на исти елементи (копчиња, форми и сл.) од проект до проект, овој framework веќе ги има дефинирано за тебе, што многу ја олеснува работата.
Истото важи и за JavaScript frameworks, како на пример Angular, React или Vue.

RESTful API:
Representational State Transfer на прв поглед може да делува страшно, но всушност се работи за релативно едноставна архитектура за комуникација на сервиси преку веб. RESTful API сервисите се всушност сетови на практики кои треба да се почитуваат за различни веб сервиси да можат непречено да комуницираат меѓусебно.

Оваа листа секако не завршува тука, но другите работи се учат преку пракса и континуирано работење. Просечното време потребно да се стигне на ниво за да почнеш да работиш како frontend програмер е помеѓу 6 и 9 месеци. Во тек се уписите на Академијата за Frontend, целата програма можеш да ја пронајдеш тука.

Backend програмер

Пред некое време бев со идеја да се запишам на некоја од Академиите за програмирање и не бев сигурен што најмногу би ми одговарало од опциите. Кога го прашував координаторот на Академиите за Програмирање, Антонио Стоименов, како да знам дали да одберам frontend или backend ми одговори исто со прашање. „Дали сакаш да се занимаваш со визуелните детали или сакаш да решаваш проблеми?“ Backend девелперот всушност цело време решава проблеми, односно смислува начини како одредени работи на сајтот или апликацијата да функционираат подобро и поефикасно.

Backend е дел од сајтот или апликација кој не го гледаш и со кој немаш директна интеракција. Работи на серверот и всушност е она што го прави сајтот или апликацијата да функционираат добро. Backend делот подразбира работи кои се случуваат во позадина како на пример логирање на одредена страница, ставање продукти во кошничка и купување, комуникација со chatbot и слично…

Листа на работи кои треба да ги знае еден backend програмер може да вклучува:

Server-side програмски јазици:
Добро познавање на барем еден ваков програмски јазик како PHP, Python, .net и слично е, секако, задолжително за секој backend програмер.

На пример, PHP и Python се два open source програмски јазици и двата со големи заедници фокусирани на нивен континуиран развој и подобрување. PHP постои од 1994 година и е еден од програмските јазици со најголема заедница која континуирано работи на негово подобрување. Според перформансите и стабилноста единствена моментална конкуренција му е Python. Како понов јазик Python ја има предноста што се полесна синтакса и неколку библиотеки исклучиво наменети за AI и machine learning. Од друга страна .net е т.н. „proprietary“ програмски јазик развиен од Microsoft кој е најчест избор кога се работи за развој на апликации и софтверски решенија за големи корпорации.

Бази на податоци и сервери:
Ова подразбира познавање на различни технологии на управување со бази на податоци како MySQL, SQLServer, Oracle. Познавање на механизми за кеширање како Redis или Varnish.
Бидејќи се работи за работи кои се извршуваат на сервер, логично и очекувано е познавање на Apache, Microsoft IIS или Nginx сервери.

Листата не е дефинитивна и не е конечна, но сепак дава идеја со каква основа треба да почне еден backend програмер. Време потребно за стекнување основно знаење за започнување кариера во ова поле е помеѓу 10 и 12 месеци, повторно во зависност од времето потребно добро да се научат основите на гореспомнатите работи.

 

Full stack програмер

Full stack програмер може да работи и на frontend и на backend делот од продуктот и ова е патека за оние кои сакаат да ги контролираат сите фактори во еден проект. Не постои баш јасна дефиниција за тоа што точно треба да знае еден Full stack програмер. Дури и во разговор со програмери (backend, frontend и full stack) ќе добиете доста различни мислења и информации. Но, она што е важно да знае секој што сака да стане програмер од овој ранг, е дека не е неопходно да ги владее сите технологии целосно, но треба да ги разбира процесите на клиентската и серверската страна и да ја разбира нивната меѓусебна интеракција.

Листа на работи кои треба да ги познава еден Full stack програмере малку подолга и може да вклучува:

Frontend:
Треба одлично да познава HTML5/CSS3 и JavaScript a пожелно е и да има познавање на jQuery, Angular или React. Исто така е неопходно познавање на основните принципи на UI/UX дизајн.

Backend:
Мора одлично да владее со еден server-side програмски јазик како PHP, .Net, Python, Ruby, Java и слично и да има познавање на API технологии како REST или SOAP.

Бази на податоци и сервери:
Познавање на различни технологии на управување со бази на податоци е исто така важно за еден full stack програмер. MySQL, SQLServer, Oracle се едни од најупотребуваните во моментов. Познавање на механизми за кеширање како Redis или Varnish даваат дополнителна тежина во CV.

За жал, листата не завршува тука, и може да содржи уште многу дополнителни работи и вештини од типот на креирање тестови за проверка на квалитет на продуктот, правење документација, познавање на алгоритми и структури на податоци.

Бидејќи бара доста широко познавање на технологии и програмски јазици, започнување на кариера како full stack програмер може да ти одземе помеѓу 12 и 18 месеци, во зависност од тоа колку брзо учиш. Но, затоа и наградата за вложениот труд во старт е поголема. Во тек се уписите на Академијата за full stack програмирање, цела програма можеш да ја пронајдеш тука.

Full stack WordPress програмер

Ова е можеби најатрактивната опција на листата, бидејќи одзема скоро исто време потребно за учење на frontend, а има скоро целосна флексибилност на еден full stack програмер. Добра е за започнување на кариера на програмер и за понатамошно насочување во кариерата. Бидејќи се работи за моментално најпопуларна платформа за управување со содржини и сајтови, WordPress програмерите се меѓу најбараните во моментов во tech индустријата. Причина, сите сакаат да направат сајт кој секој ќе може да го полни со содржини и да го одржува без некаква преголема техничка писменост.

За разлика од класичен full stack програмер, листата на вештини со кои треба да располага еден full stack WordPress програмер е пократка, но остава голем простор за понатамошно надградување и развивање. Јас лично не познавам некој WordPress програмер кој останал само тоа. После некое време сите почнале да ја развиваат кариерата како PHP програмери, full stack програмери итн.

Ова е добра опција доколку сѐ уште не знаеш дали си повеќе frontend или backend човек. Добра опција е и доколку сакаш брзо да започнеш нова кариера, бидејќи ти се потребни неколку месеци за да се чувствуваш комотно во работа како дел од некој тим или да работиш самостојно помали проекти. Добра опција е и доколку размислуваш за програмирање, ама го имаш стравот од тоа дали ќе те биде за таа професија или не.

Листа на работи кои треба да ги познава еден WordPress програмер-почетник е:

Front end:
Треба да познава HTML5/CSS3 и JavaScript, a познавањето на jQuery дополнително ги олеснува работите.

Back end:
Треба да знае PHP, кој всушност е јазикот во кој е напишан WordPress. Најпопуларни frameworks за PHP се Laravel и Symphony но добра работа во случајов е фактот дека не е потребно познавање на ниту еден.

Бази на податоци:
Еден почетник full stack WordPress програмер треба да има основно познавање на MySQL, а исто така е потребно и основно познавање на некоја од серверски околини како Apache или Nginx.

Доколку сакаш што побрзо да започнеш кариера во tech тогаш опцијата WordPress програмер одзема најмалку време. Потребни се помеѓу 6 и 8 месеци за да станеш програмер од апсолутен почетник без никакво предзнаење. Според најактуелните податоци од мапирањето на IT индустријата во Македонија, направени од порталот IT.mk, платите за јуниорски позиции се движат помеѓу 26 и 33 илјади денари. Во тек се уписите на академијата за WordPress програмери, целата програма можеш да ја видиш тука.