Како одабрати програмски језик и побећи из уџбеника Чистилиште

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

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

Ево видео верзије овог поста ако желите (11-минутно гледање):

Сценариј 1: Знате шта желите да изградите

Често се у чланцима попут ових (или у инфографици „Који кодирајући језик треба да научим?“, Која вам је вероватно блиско позната), критички размисли о томе шта желиш да изградиш након што научиш да код.

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

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

Фронт Енд развој: ЈаваСцрипт (и ХТМЛ / ЦСС)

Ако већ знате да желите да радите на „предњем крају“ веб локација - што значи, на свему што корисник види када дође на веб локацију - путовање кодирањем започните учењем ЈаваСцрипт-а. Вероватно ћете започети са учењем ХТМЛ-а и ЦСС-а, који чине окосницу скоро сваке веб локације, а затим започните додавање ЈаваСцрипт-а како бисте побољшали функционалност и интерактивност ваших веб локација.

ЈаваСцрипт је прилично свеприсутан као програмски језик и има лакшу рампу од осталих језика нижег нивоа попут Ц ++. Сјајна је скочна тачка ако не знате шта желите да научите ... али о томе касније.

Развој позадине: Питхон, Ц # или ЈаваСцрипт (и СКЛ)

Рецимо да вас више занима сазнање о сметњама веб локација, управљање „позадином“ и окушавање у администрацији базе података. Овде имате пуно опција, а најједноставнији пут је Питхон, језик који је прилагођен почетницима и има зреле оквире (нпр. Дјанго и Фласк) за бацк енд развој.

Такође не можете погрешити са Ц #, који ће вас изложити Мицрософтовом .НЕТ екосистему и програмском језику који, када једном уђете у коров са њим, представља задовољство са којим можете радити. А ако размишљате о томе да пређете на „фулл стацк“ - што значи да желите да се бавите развојем предњег и задњег дела - можда бисте могли размислити о учењу ЈаваСцрипт-а, који има млађе, али високо цењене позадинске оквире попут Екпресса и Кое. То ће вам такође олакшати процес учења јер ћете користити исти језик за кодирање оба стека.

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

Развој 2Д игара: ЈаваСцрипт или Ц #

На другом месту сам писао о томе који би мотор требао користити за прављење 2Д игара, али ево мршавог.

Постоји много 2Д покретачких игара, од којих многи могу или не морају одговарати вашој замисли као програмера игара, а сваки са својим предностима, идиосинкразијама и кривуљом учења. Неки од њих, попут Гаме Макер Студио 2, на пример, користе сопствене заштићене језике за покретање скрипти, али заправо бих вам препоручио да прво научите ЈаваСцрипт или Ц #, чак и ако размишљате о дугорочном коришћењу другог механизма игре .

Помоћу ЈаваСцрипт-а можете користити оквире попут Пхасер-а за прављење 2Д игара или потпуно опремљене механизме попут Цонструцт 3 (који заправо користи развој превлачења и испуштања са простором за прилагођене скрипте). Ако одлучите да научите Ц #, уместо тога, радићете са Унити 2Д, или можда МоноГаме - али заправо бих препоручио да започнете са туторијалима који нису покренути (нпр. .НЕТ) да бисте прво добро разумели језик.

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

Развој 3Д игара: Ц # или Ц ++

Постоји много опција за учење кодирања за развој 3Д игара и предлажем да започнете са Ц # или Ц ++. У ствари, осим ако нисте супер технички паметни или ако већ имате позадину у програмирању, препоручио бих вам да започнете са Ц # и пређете на Ц ++. Имаћете лакшу криву учења и научићете основне концепте програмирања без потребе да се бавите стварима попут управљања меморијом и кода нижег нивоа.

Вероватно ћете у сваком случају завршити учење, али ако започнете са Ц #, можете се поиграти са Унити 3Д, а затим кренути до Ц ++-а помоћу Унреал Енгине 4.

Наука о подацима / машинско учење: Питхон

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

Сценариј 2: Не знате шта желите да изградите

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

Био сам тамо. Нервира.

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

ОК, можда не Хаскелл. Али одаберите нешто и држите се толико дуго да научите основе и проверите да ли постоји могућност да бисте можда волели да користите тај језик да бисте њиме градили. Имајте на уму две ствари док то радите:

  1. Одредите временско ограничење за себе. Као, „Идем у наредна три месеца да научим ЈаваСцрипт користећи туторијале за фрееЦодеЦамп“. Ако се на крају тог периода осећате као да напредујете и ако вам је занимљиво, наставите! Ако не, можда је време да преиспитате свој језик и проверите да ли постоји нешто што би можда више одговарало вама.
  2. Направите нешто што није у вашим упутствима. Ово је пресудан корак у вашем развоју као програмера. Обрадићу то у следећем одељку.

Сценарио # 3: Заглавили сте у Туториал Чистилишту

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

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

С друге стране, они нису добри за то што вас уче како да будете програмер.

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

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

Најбољи начин да напредујете као програмер је да одаберете пројекат на свом језику и изаберете да то урадите. На пример, ако учите ЈаваСцрипт, можете одлучити да направите једноставну веб страницу са ХТМЛ / ЦСС-ом и додате неку интерактивност помоћу јКуери-а. Вероватно ћете започети постављањем интегрисаног развојног окружења, одмах заборављајући како да урадите нешто што сте научили у својим водичима, исфрустрирате се, упутите се ка Гоогле-у, пронађете одговор и наставите даље. Тада ћете напредовати, заглавити, претраживати Стацк Оверфлов, гребати главу по службеној документацији, можда делити код са неким и поновити цео поступак.

И радићете тачно оно што програмери раде када граде нови пројекат.

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

Ти то можеш!

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

МС Фарзан, др. је писао и радио за истакнуте компаније за видео игре и уредничке веб странице попут Елецтрониц Артс, Перфецт Ворлд Ентертаинмент, Модус Гамес и ММОРПГ.цом, и служио је као менаџер заједнице за игре попут Дунгеонс & Драгонс Невервинтер и Масс Еффецт: Андромеда . Креативни је директор и водећи дизајнер игара Ентроманци: Циберпунк Фантаси РПГ и аутор филма Тхе Нигхтпатх Трилоги . Пронађите МС Фарзан на Твиттеру @соминатор.