Како научити нови програмски језик/технологију?

Доста људи ме је питало како брзо и ефикасно успевам савладати нове програмске језике и технологије, не трошећи превише времена, а ни живаца. Рекао бих да је одговор на ово питања искључиво индивидуалан и да свако од нас има технику која одговара њему/њој. Било како било, у наставку ћу вам представити моју технику.

Пре него што почнем, хтео бих се осврнути на цитат непознатог аутора који каже:

Учење новог програмског језика је попут учења говорног, када савладате матерњи и један страни постаје прилично лако.

Непознат аутор у непознато време

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

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

Упознавање

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

Примера ради, током ове фазе учења гледам Јутјуб (енгл. YouTube) видее, где дајем предност онима који описују историју, основне карактеристике, намену и савете за ефикасно програмирање („best practice“). Акценат стављам на питању зашто баш користити овај језик.

Анализирање кода

Други корак је разматрање кода који је већ написан и који ради исправно. Ако журим са учењем овај корак знам прилично занемарити, али ме у једном тренутку дочека како бих усвојио структуру датог језика.

Углавном током анализирања тражим неке једноставне примере који су окачени или на званичном сајту или на Гитхабу (енгл. GitHub). Пролазак кроз код ми омогућава да се упознам са синтаксом и да је упоредим са мени већ познатим програмским језицима.

Практични рад

Мислим да није потребно додатно описати овај корак. Трудим се себи задавати краће задатке које потом решавам и проширујем. Пример једног таквог задатка је имплементирање ToDo апликације коју делим у неколико корака:

  • имплементирање основних функционалности рада са ToDo ставкама (CRUD – Create Read Update Delete операције),
  • додавање корисника и аутентификације,
  • убацивање ауторизације и дељење корисника на класичне и администраторе и
  • проширивање функционалности попут додавања контакт странице или сл.

До сада сам користећи овакав механизам учења успео да савладам мноштво нових језика/технологија. Ипак, поновио бих да су кораци индивидуални и да је најбоље да их прилагођавате себи док не нађете своју златну средину. 😀