Који програмски језик треба прво да научите 2020. године? ʇдıɹɔсɐʌɐɾ: ɹǝʍсуɐ

Путовање већине људи ка учењу програмирања започиње једним касним претраживањем Гоогле-а.

Обично је то нешто попут „Научи ______“

Али како одлучују за којим језиком ће тражити?

„Увек се шале на рачун Јаве у Силицијумској долини. Претпостављам да бих то требао научити “.

Или:

„Хаскелл. Тренутно вруће. Хаскелл “.

Или:

"Тај Гопхер је тако сладак."

А ту смо и ми остали. Вероватно ћемо потражити нешто попут:

„Који програмски језик прво да научим?“

Мало је питања која се толико често постављају да би им се пружио потпуни инфографски третман. Али ово је један од њих:

Одлучивање о вашем првом програмском језику може бити забаван процес - некако попут једног од оних „Који сте лик Куентина Тарантина?“ квизови личности.

Али пре него што сте побегли да бисте научили Руби, јер сте као дете уживали да се играте са Плаи-Дохом, подсетићу вас: овде је улог прилично велик.

Требаће вам стотине сати праксе да бисте постали чак и даљински компетентни за свој први програмски језик.

Дакле, требало би да узмете у обзир следеће факторе:

  • тржиште рада за језик
  • дугорочне изгледе за језик
  • како је језик лако научити
  • које пројекте можете да градите док учите (и делите их са пријатељима да бисте остали мотивисани)

Свака година доноси нове програмске језике, а са њима и нове академске радове. И нови веб стрипови.

Озбиљно. Погледајте овај драгуљ од прошлог месеца:

Када је реч о избору првог програмског језика, не недостаје опција. Да бисмо је мало сузили, ево најчешћих Гоогле претрага повезаних са учењем програмирања у последњих 12 година:

Јава је имала успона и падова.

Питхон је постепено порастао и постао најпопуларнији избор.

Али испод њих је ушушкан Мали мотор који је могао, полако бирајући популарност током последњих неколико година. А тај мотор је ЈаваСцрипт.

Пре него што говорим о овим програмским језицима, дозволите ми да појасним:

  • Не тврдим да је било који језик објективно бољи од било ког другог
  • Слажем се да би програмери на крају требало да науче више од једног језика
  • Тврдим да би прво требали добро научити један језик. И - као што вероватно можете да претпоставите из наопаког текста у мом наслову - тај језик би требао бити ЈаваСцрипт.

Започнимо ствари истражујући како се програмирање тренутно учи у школи.

Рачунарске науке 101

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

Наравно, као што сте до сада већ могли чути:

„Образовање из рачунарства никога не може учинити стручним програмером као што проучавање четкица и пигмента никога не може учинити професионалним сликаром.“ - Ериц С. Раимонд

Од 2016. године многи универзитети и даље третирају програмирање као информатику, а рачунарство као математику.

Као резултат тога, многи уводни курсеви програмирања усредсређени су на језике са ниским нивоом апстракције као што је Ц или на језике усмерене на математички језик као што је МАТЛАБ.

А катедре одељења углавном остају на курсу, указујући на годишње лествице програмских језика попут ТИОБЕ индекса или овог из ИЕЕЕ:

Већина ових табела изгледа практично идентично као пре 10 година.

Али промена се дешава. Чак и у академској заједници.

Питхон је 2014. године претекао Јаву као најпопуларнији језик наставе у врхунским америчким програмима рачунарске науке.

А опет ће се догодити још једна промена ... на крају ... догодити се.

Јер ако погледате језике које заправо користи радна снага, то даје сасвим другу слику:

Више од половине свих програмера користи ЈаваСцрипт. Од виталног је значаја за фронт-енд веб развој и све важнији за бацк-енд развој. И брзо се шири на подручја попут развоја игара и Интернета ствари.

Огласи за посао такође спомињу ЈаваСцрипт више од било ког програмског језика осим Јаве:

Није случајно што смо курикулум наше заједнице отвореног кода изградили око ЈаваСцрипт-а. Током протекле две године, више од 5.000 људи користило је Фрее Цоде Цамп да би добило свој први посао програмера.

Не заговарам ЈаваСцрипт јер га предајем. Предајем ЈаваСцрипт јер је то најсигурнији пут до првог посла програмера.

Али да ли је ЈаваСцрипт прави за вас? Да ли је вредно бити ваш први програмски језик? Истражимо оне факторе које сам раније поменуо.

Фактор 1: тржиште рада

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

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

Али овде је ствар са ЈаваСцриптом: иако постоји већ 20 година, тек је недавно постао озбиљан алат који ће компаније попут Нетфлик-а, Валмарт-а и ПаиПал-а правити око себе читаве апликације.

Као резултат, мноштво компанија запошљава програмере ЈаваСцрипт-а, али једноставно их нема толико на тржишту рада.

Постоји 2,7 програмера Јава који се такмиче за сваку отворену Јава позицију. Конкуренција за ПХП и иОС послове је слично велика.

Али за сваку отворену ЈаваСцрипт позицију постоји само 0,6 ЈаваСцрипт програмера. То је у великој мери тржиште продаваца за програмере који имају ЈаваСцрипт вештине.

Фактор 2: Дугорочни изгледи

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

ЈаваСцрипт екосистем такође има користи од великог улагања новца и инжењерских талената од компанија као што су Гоогле, Мицрософт, Фацебоок и Нетфлик.

На пример, ТипеСцрипт (статички откуцани суперсет ЈаваСцрипт-а) има више од 100 сарадника отвореног кода, од којих су многи запослени у Мицрософту и Гоогле-у који су плаћени да раде на њему.

Ову врсту међусобне сарадње теже је наћи са Јавом. Орацле - који ефективно поседује Јаву купњом Сун Мицросистемс - често тужи компаније које покушавају да је прошире.

Фактор 3: Потешкоће у учењу

Већина програмера сложила би се да је скриптне језике високог нивоа релативно лако научити. ЈаваСцрипт спада у ову категорију, заједно са Питхон и Руби.

Иако универзитети и даље предају језике као што су Јава и Ц ++ као прве језике, они су знатно тежи за учење.

Фактор # 4: Пројекти које можете са њим градити

Овде ЈаваСцрипт заиста блиста. ЈаваСцрипт се покреће на било ком уређају који има прегледач, управо тамо у прегледачу. У основи можете да направите било шта са ЈаваСцрипт-ом и делите га било где.

Због свеприсутности ЈаваСцрипта, суоснивач Стацк Оверфлова Јефф Атвоод сковао је свој сада познати закон:

„Свака апликација која се може написати на ЈаваСцрипт-у, на крају ће бити написана на ЈаваСцрипт-у.“

И са сваким месецем, Атвоодов закон остаје снажан.

Јава је једном обећала да ће се покретати и свуда. Можда се сећате Јава аплета. Орацле их је званично убио раније ове године.

Питхон пати од истих проблема:

„Како ову игру коју сам направио могу дати свом пријатељу? Још боље, да ли постоји начин да ово ставим на свој телефон, тако да могу да га покажем деци у школи, а да то не морају да инсталирају? Хм. ” - Јамес Хагуе у пензионисању Питхона као наставног језика

Супротно томе, ево неких апликација које су чланови наше заједнице отвореног кода уградили у своје прегледаче на ЦодеПен-у. Можете их кликнути и користити директно у прегледачу:

Научите добро један језик. Затим научите други.

Ако наставите да скачете са језика на језик, нећете далеко стићи.

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

Одатле можете да се подружите и постанете заокруженији програмер тако што ћете научити пуно језика:

  • Ц је одличан начин да научите како рачунари заправо раде у смислу управљања меморијом и користан је у рачунару високих перформанси
  • Ц ++ је одличан за развој игара.
  • Питхон је сјајан за науку и статистику.
  • Јава је важна ако желите да радите у великим технолошким компанијама.

Али прво научите ЈаваСцрипт.

У реду, сада ћу покушати са немогућим - покушаћу да предвидим приговоре из одељка за коментаре.

Приговор бр. 1: Али није ли ЈаваСцрипт спор?

ЈаваСцрипт је - у већину практичних сврха - брз као и језици високих перформанси.

ЈаваСцрипт (Ноде.јс) је реда величине бржи од Питхон-а, Руби-а и ПХП-а.

Такође је скоро једнако брз као језици високих перформанси попут Ц ++, Јава и Го.

Ево резултата најсвеобухватнијег најновијег унакрсног испитивања на више језика:

Приговор бр. 2: Али ЈаваСцрипт није статички откуцан

Као и Питхон и Руби, ЈаваСцрипт се динамички куца, што је згодно. Али можете упасти у невољу. Овде намеравам exampleArrayда будем низ. Постављам његове вредности, а затим проверавам дужину - што значи број елемената које садржи.

exampleArray = [1, 2] -> [1, 2] exampleArray.length -> 2

Али онда случајно доделим да буде низ.

exampleArray = “text” -> “text” exampleArray.length -> 4

Овакве грешке се стално дешавају на динамички откуцаним језицима. Већина програмера само поставља чекове да би их спречили и у складу с тим пишу тестове.

Ако апсолутно морате имати статично куцање на свом првом програмском језику, онда вам ипак препоручујем да прво научите ЈаваСцрипт. Тада можете брзо да покупите ТипеСцрипт.

„Типесцрипт има кривуљу учења, али ако већ знате ЈаваСцрипт, она ће бити глатка.“ - Алек Еверлоф на ТипеСцрипт-у

Приговор бр. 3: Али заиста желим да направим мобилну апликацију

И даље препоручујем прво учење ЈаваСцрипт-а.

  1. ЈаваСцрипт садржи неколико алата за прављење изворних мобилних апликација, попут Ангулар Цордова и Реацт Нативе.
  2. Да би ваша мобилна апликација заиста учинила било шта занимљиво, вероватно ће јој требати одговарајући бацк енд, који ћете желети да направите са одговарајућим оквиром за веб развој, попут Ноде.јс + Екпресс.јс.

Такође, вреди истаћи да су иза њега можда и најбољи дани у развоју мобилних апликација.

За почетак, колико год људи користили мобилне апликације, готово половина свих послова програмера је веб развој. Упоредите ово са само 8% послова који укључују развој апликација за мобилне уређаје.

Велика визија „постоји апликација за то“ се није остварила. Уместо тога, већина власника паметних телефона престала је да преузима нове апликације.

Наравно - и даље користе апликације. Углавном Фацебоок, Гоогле Мапс и прегршт других. Као такав, већи део потражње за програмерима мобилних апликација концентрисан је на неколико великих послодаваца.

Тешко је предвидети изгледе за те послове у мобилном развоју. Многи аспекти развоја, одржавања и дистрибуције мобилних апликација лакши су помоћу ЈаваСцрипт-а. Тако компаније попут Фацебоок-а и Гоогле-а улажу велика средства у боље алате за њихову изградњу помоћу ЈаваСцрипт-а.

Од 2016. године, готово сав развој је веб развој. Све се дотиче те велике платформе која је „веб“. И следећи талас уређаја с којима ћете разговарати око куће, као и аутомобили који доводе вашу децу из школе - сви ће они такође бити повезани цевима користећи мрежу.

А то значи ЈаваСцрипт.

Приговор бр. 4: Зар ЈаваСцрипт није играчки језик који је написан за 10 дана?

ЈаваСцрипт има необичну историју.

Несумњиво ћете чути како људи збијају шале на његов рачун.

Па, људи воле и да мрзе Ц ++. И попут ЈаваСцрипт-а, Ц ++ је успео упркос овој мржњи, а сада је прилично свуда.

Дакле, ако вам ико икад буде тешко да научите ЈаваСцрипт уместо елитног језика недеље, само се сетите познатих речи типа који је створио Ц ++:

„Постоје само две врсте програмских језика: ти људи се увек кукају и они које нико не користи.“ - Бјарне Строуструп

Пишем само о програмирању и технологији. Ако ме пратите на Твиттеру, нећу вам губити време. ?