Како сам побегао из лекције из туторијала и научио да кодирам - а како и ти можеш.

Контекст: Ја сам програмер стоних игара и продавац дигиталних филмова, и пошто сам дуго провео око игара и рачунара, одлучио сам да желим да научим да кодирам пре око 3 године.

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

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

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

Такође можете прескочити на дно за ТЛ; ДР .

Пролог: Ц ++

Нисам сасвим сигуран да ли сам већ знао да је Ц ++ био и остаје и даље камен темељац у развоју видео игара. Можда сам то видео у некој од оних инфографика „Који програмски језик треба да научим“ које постоје. Али желео сам да знам више о томе како се праве игре и како да разговарам са рачунаром. Прилично сам технолошки оријентисан и градим или радим са властитим рачунарима, мислећи да би то могло бити искуство учења кодирања.

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

ХТМЛ, ЦСС, ЈаваСцрипт и Питхон

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

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

Научио сам много основа из Цодецадеми-а и општих принципа ООП-а, али нисам завршио њихову примену без јасног пута напред. Вратио сам се својој потрази (кога ја заваравам, ПУНО сам времена провео истовремено истражујући друге језике, платформе за учење и боотцампове током читавог процеса) и закључио да желим да научим више о развоју игара кроз курсеве о Унити-у.

Ц #

Пронашао сам курс Бен Тристем-а Унити на једној од Удеми-јевих вишегодишњих 10000% попуста, и марљиво сам радио кроз туторијале како бих изградио клонове 2Д ломљења цигле и друге игре. Научио сам таман толико Ц # да се снађем, али недовољно да бих био сигуран да ћу ишта направити.

Само јединство је овде вероватно више било препрека него упутствима Тристрема и сарадника, која су заправо била прилично добра. Уређивач Унити је звер мотора, са пуно добрих алата који су непробојни за почетнике (опет о овом мојем искуству са Унити можете прочитати овде).

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

Повратак на ЈаваСцрипт

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

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

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

Чистилиште после наставе

Премотавајте унапред много времена касније, и сада радим на неколико пројеката повезаних са играма у Пхасер-у и Унити-у (најважније, дигитални прототип столне игре са картама који развијам). Провео сам пуно времена у оквирној документацији и Стацк Оверфлов-у тражећи одговоре и најбоље праксе за ствари (повезивање овог поста још једном за добру меру). Такође сам стекао пријатељство са неколико колега који су и сами програмери и било је корисно да их покрећу за савет и повратне информације.

Једна ствар која ми је била од помоћи у раду на мојим сопственим пројектима је само основно искуство подешавања процеса рада. Учење да користим командну линију и Гит у сарадњи са подешавањем НПМ-а и уређивача кода, на пример, отворило је очи (посебно долази из ЦодеПен-а, који чини све за вас). У добру или у злу, већина водича вас не излаже гњиди алата који ће вам требати да завршите посао, а мора се још много научити.

Ако ово читате и тражите „а управо сам добио свој први посао програмера!“ изјава, жао ми је што ћу разочарати! То ми није био циљ (барем до сада), али имам неколико основних ТЛ; ДР учења која бих могао подијелити, а која би могла бити корисна свима који су такође у потрази за програмским језиком или како побјећи из уџбеничке чистилишта.

ТЛ; ДР

ЈаваСцрипт:

  • Про: Врло добра почетна тачка за учење објектно оријентисаног програмирања, посебно ако сте заинтересовани за било коју врсту веб развоја (предњи или задњи крај). То можете научити на већини платформи, али моје искуство је најбоље послужио фрееЦодеЦамп.
  • Против: Многе веб локације ће вам рећи да се „само покреће у вашем прегледачу“, тако да „не морате да подесите ИДЕ“ и да га је тако лакше научити, али овај начин размишљања одвест ће вас само до сада. Ако ћете смислено развити популарне ЈаваСцрипт оквире (Реацт, Вуе, Екпресс итд.), Завршићете постављањем нечега што је у близини ИДЕ-а помоћу уређивача кода, менаџера пакета, зависности итд., Без врсту подршке коју бисте добили рецимо постављањем .НЕТ-а или слично.

Питхон:

  • Про: Супер пријатељски за новопридошле ако су коврџаве заграде на другим језицима у почетку застрашујуће и добра тачка за улазак ако вас занима да се бавите позадинским програмирањем или науком о подацима. Имао сам добро почетно искуство усавршавања кроз Цодецадеми.
  • Против: Ваше могућности су мало ограничене ако желите да уђете у фронт енд или развој игара. Постоје оквири, на пример, који вам омогућавају да правите игре (на пример, ПиГаме), али ако се посебно бавите развојем игара, било би вам боље да послужите негде другде.

Ц #:

  • Про: Веома пријатан језик који добро подржавају Мицрософт и заједница отвореног кода. Помоћу њега можете да направите бацк енд развој, направите апликације за рачунаре, креирате игре (углавном са Унити-ом, али постоје и други мотори попут Моногаме-а). Можда је непопуларно мишљење, али препоручио бих да прво научите Ц # путем Мицрософт водича или негде другде, а затим да научите Унити да бисте олакшали део когнитивног оптерећења које намеће сложеност уредника.
  • Против: Овде не треба пуно говорити, осим ако вам се заиста не свиђа Мицрософт или ако заиста не желите да радите на веб развоју веб странице (претпостављам да бисте могли да погледате Блазор, али не бих препоручио да започнете овде). На пример, могао бих да причам о томе како Унити може да побољша своје корисничко искуство, али сам Ц # је сјајан.

Опште мисли о учењу и бекству из уџбеничке чистилишта :

  • Једна од мојих фрустрација у мом процесу постављања питања „који програмски језик треба да научим?“ био је оно што сам осећао као недовољан одговор „па, шта желите да изградите?“ Много сам се сусретао са овим одговором и не мислим да је то прави начин да приступим учењу како програмирати ако већ не знате шта желите да урадите са њим. Почетник нема довољно контекста да зна шта може да изгради, а камоли пут до њега (осим ако нису тип особе која само жели да прави игре или само жели да нађе посао као веб програмер ).
  • Бољи одговор би био рећи: „испробајте неколико водича на различитим веб локацијама и на различитим језицима и погледајте да ли вам се нешто чини занимљивим. Ако јесте, држите се тога; ако не, одаберите један случајно и погледајте куда вас води. Ствари које ћете научити помоћи ће без обзира на то шта заправо завршите. "
  • Поред тога, ако се можете присилити да изађете из екосистема туторијала и направите било шта изван заштићеног окружења које вам је постављено, то ће вам помоћи да научите ствари које ћете на крају морати знати, као што је постављање ИДЕ, тражење одговора на питања и дељење вашег рада.

Надам се да је овај пост користан за друге који траже програмски језик или начин да побегну из чистилишта и да направе кул ствари. А волео бих да чујем и о вашим искуствима!

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

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