Денес, компјутерите се користат во сите индустрии. Без разлика дали станува збор за автопилот во авион, за ATM популарно наречен „банкомат“, брзинометар за велосипед, часовник и т. н. , компјутерите нè опкружуваат во најразлични форми. Ги користиме и како средство за забава, комуникација, складирање податоци, организирање на секојдневниот живот и работата.

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

Постојат повеќе актуелни програмски јазици, кои се креирани за различни цели, како што се веб презентации и апликации, апликации за мобилни уреди, игри, комплексни дистрибуирани системи и т.н.

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

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

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

Врз база на основните програмски јазици, се градат т. н. работни рамки (frameworks), кои се користат за различни намени и генерално ја олеснуваат и забрзуваат работата при користење одреден програмски јазик. Откако ќе ги совладаш основите на програмскиот јазик кој си го избрал, за да можеш брзо и квалитетно да работиш, како и да обезбедиш стабилност и безбедност на она што си го креирал, потребно е да ги совладаш и соодветните работни рамки, кои се базирани на избраниот јазик.

Повеќе различни извори, како на пример, пребарување со Google, поставени прашања на StackOverflow, поставени решенија на GitHub, анкети и сл., укажуваат на тоа дека JavaScript, Java и Python се најкористени или најбарани програмски јазици во последните неколку години. Воедно тоа е и генералниот тренд кој најверојатно ќе се задржи и во следните неколку години.

Современите апликации, најчесто се поделени на предна страна (front end) и задна страна (back end), кои комуницираат помеѓу себе. Во задната страна се креираат веб сервиси, преку кои се обезбедуваат основните функционалности на апликациите. Предната страна служи за да им ги прикажи резултатите од веб сервисите, на корисниците, но воедно и обратно, да ги пренесе барањата на корисниците до задната страна.

JavaScript

Практично JavaScript (заедно со HTML и CSS) е јазикот со кој се креира предната страна, односно веб страниците кои ги гледаме секојдневно во веб пребарувачите. Со појавата на Node.js, што претставува еден вид виртуелна машина за JavaScript, е овозможено овoј јазик да се користи и независно од пребарувачите, односно со него да се креира и задната страна. Затоа е скоро невозможно програмер да не се сретне со овoј јазик. Погоден е за учење како прв програмски јазик, посебно за помладите.

Java

Благодарение на Java виртуелните машини, овoј јазик може да се извршува практично на сите хардверски платформи. Затоа за овoј јазик најчесто се поврзува мислата „напиши еднаш, извршувај секаде“ (“write once, run everywhere”).

Овoј јазик е објектно ориентиран и актуелен повеќе од две децении. Сеуште се развива и се адаптира на новите барања, а воедно има влијание и врз други програмски јазици. Може да се користи за најразлични цели, од наједноставни тривијални примери, преку Android апликации за мобилните уреди, па сé до најкомплексни дистрибуирани веб решенија, процесирање податоци и т. н.

Java има голема „заедница“ и скоро е невозможно да не се најде решение за кој било проблем, пример за алгоритам и сл., поврзан со оваа платформа.

Заради сите овие карактеристики, програмскиот јазик Java претставува најдобар избор за прв програмски јазик, кој секој може да го учи и користи.

Python

Овoј програмски јазик, исто така има генерална намена. Слично на Java, има јасна синтакса, интуитивен e, и наликува на англискиот јазик. Воедно неговото објектно ориентирано подмножество е многу слично на JavaScript.

Python се користи како основен јазик при многу нови, популарни и интересни технологии, како што се машинско учење (machine learning), вештачка интелигенција (artificial intelligence), големи податоци (big data), роботика (robotics), сајбер безбедност (cyber security).

Да се учи програмирањето со помош на Python е многу лесно и затоа покрај Java и JavaScript, овoј јазик сé почесто се избира како воведен програмски јазик во универзитетите и средните училишта, а често е избиран и како втор или трет програмски јазик кој го користат поискусните програмери.

Покрај основен програмски јазик, неопходно е да се познаваат и други технологии и алатки, кои се неизбежен дел од софтверските решенија. Затоа често се укажува на тоа дека програмерите треба да бидат „полиглоти“. Така на пример, за програмери кои знаат да креираат т. н. задна страна (back end), добро е да знаат како се креираат веб страните со помош на HTML, CSS и JavaScript (front end), па со тоа да бидат комплетни, или како што тоа популарно се нарекува full-stack програмери.

Покрај останатите елементи, една современа апликација не може да се замисли без можност за складирање на податоците, кое по правило се прави во некаков вид база на податоци. Сеуште најчесто за оваа намена се користат релационите бази на податоци, кои се раководат со јазикот наречен SQL – Structured Query Language. Затоа и овoј едноставен јазик треба да биде дел од портфолиото на секој програмер.