Hogyan menekültem meg az oktató purgatórium elől, és hogyan tanultam meg kódolni - és hogyan tudsz te is.

Kontextus: Asztali játékfejlesztő és digitális marketingszakember vagyok, és miután sokáig töltöttem a játékokat és a számítógépeket, úgy döntöttem, hogy körülbelül 3 évvel ezelőtt szeretnék megtanulni kódolni.

Úgy indultam el, ahogy sokan keresem, hosszasan keresem, hogy milyen nyelvet kell megtanulnom, és honnan honnan, és utam során többször visszatérek ehhez a témához. Számos szálra bukkantam, amelyek egyik nyelvet vagy tanulási platformot javasolják egy másikra, és gondoltam megosztani saját tapasztalataimat, hátha másnak is hasznos lehet ugyanabban a felismerési folyamatban.

Jogi nyilatkozat: Nem vagyok hivatásos programozó, és bár képességeimet a munkám javára használom (itt olvashat a prototípus keretről szóló keresésemről), a kódolás továbbra is inkább additív a fő munkámhoz, mint bevételi forrás. bármit is mond neked.

Szintén felelősség kizárása: Nem próbálok egyik nyelvet vagy tanulási platformot elhelyezni a másik felett, és nyilvánvalóan nem is próbáltam minden nyelvet megtanulni odakint, minden platformon. A következő csak az a tapasztalatom, hogy megpróbálom kitalálni a legésszerűbb utat egy elismerten zavaros környezetben.

A TL; DR aljára is átugorhat .

Prológus: C ++

Nem vagyok egészen biztos abban, hogy tudtam-e már, hogy a C ++ a videojátékok fejlesztésének sarokköve volt és továbbra is az. Talán a „Milyen programozási nyelvet kellene tanulnom” infografikák egyikében láttam. De többet akartam tudni arról, hogy miként készülnek a játékok, és hogyan kell beszélni a számítógéppel. Eléggé technikabarát vagyok, és saját számítógépeimet építettem, vagy gondoltam, gondolván, hogy ez alkalmas lehet a kódolás megtanulásának tapasztalatára.

Szent füstöl, ki tudtam-e menni mélységemből. Készítettem néhány oktatóanyagot az interneten (gondolom a learncpp-en vagy hasonlón keresztül), és hamarosan rájöttem, hogy több útmutatásra lesz szükségem az objektum-orientált programozási alapelvek megértéséhez, talán könnyebben elérhető nyelven, mint amit a C ++ tanulásakor tapasztaltam.

HTML, CSS, JavaScript és Python

Mielőtt nekivágtam ennek a kalandnak, már volt egy kis HTML-tapasztalatom, és rábukkantam a Codecademy-re. Nagyon tetszett az a lehetőség, hogy oktatóanyagokat készíthetek a böngészőben, és anélkül, hogy IDE-t kellett volna beállítanom (ez a C ++ számára való próbálkozás volt). Gyorsan elfogyasztottam a Codecademy HTML és CSS összes óráját. A természetes út ettől a ponttól a JavaScript tanfolyam elvégzése volt, amit élveztem. De hamarosan a "tutorial purgatóriumban" találtam magam (nem az én referenciám), ahol a Python tanfolyamot és másokat dolgozom át.

Azt is meg kell említenem, hogy a Codecademy tanfolyamait ingyenes felhasználóként végeztem el, nem akartam előfizetési díjat fizetni azért, amit akkoriban kínáltak, ami projekteket és mentori támogatást is tartalmazott.

Sok alapvető tudnivalót megtanultam a Codecademy-től és az általános OOP-elvektől, de nem sok mindent alkalmaztam egyértelmű út nélkül. Visszatértem a keresésemhez (akit vicceltem, SOK időt töltöttem egyidejűleg más nyelvek, tanulási platformok és bootcampek kutatásával az egész folyamat során) és úgy döntöttem, hogy többet akarok megtudni a játékfejlesztésről az Unity tanfolyamain keresztül.

C #

Megtaláltam Ben Tristem Unity tanfolyamát az Udemy egyik évelő, 10000% -os árengedménnyel, és szorgalmasan végigdolgoztam az oktatóanyagokat a 2D téglafeltörő és más játékok klónjainak építésén. Csak annyi C # -et tanultam meg, hogy kijussak, de nem annyira, hogy magabiztosnak érezzem magam bármi elkészítésében.

Maga az Unity valószínűleg inkább útlezáró volt, mint Tristrem és társai utasítása, ami valójában nagyon jó volt. A Unity szerkesztő egy motor fenevadja, rengeteg jó eszközzel, amelyek áthatolhatatlanok egy kezdő felhasználó számára (itt is olvashat bővebben a Unity-vel kapcsolatos tapasztalataimról).

Még mindig úgy érzem, hogy sokat tanultam a tanfolyamokból és az egyszerű cselekedetről, hogy ki voltam téve a C # és a Unity kívánt munkafolyamatának, de nem kaptam eleget a tapasztalatból a folytatáshoz. Egy barátom tippelt, hogy vessen egy pillantást a freeCodeCamp-ra, ahová mentem tovább.

Vissza a JavaScript-hez

Első piruláskor a freeCodeCamp kevésbé mutatós Codecademy vagy Treehouse kinézetű. De tetszett, hogy milyen egyszerűek voltak az oktatóanyagok, és nem kellett túljutnom a fizetésen, hogy haladjak. A HTML és CSS elsajátításával ott folytattam, ahol abbahagytam, és jó eredményeket értem el, amíg el nem jutottam az olyan reszponzív webdesign projektekhez, amelyek az első szakasz befejezéséhez és tanúsítás megszerzéséhez szükségesek.

Biztosan mondhatom, hogy ez volt az a pillanat (vagy pillanatsorozat), amikor kilöktem a tutorial purgatóriumból. Egy kezdő nincs igazi profi web design tapasztalat, és a hajlandóság, hogy kitaláljuk, a saját megoldások nélkül Googling a választ, a projektek kemény . Végül nyertem, és készítettem néhány buta oldalt, amelyek kielégítették a követelményeket, de a tapasztalatok arra késztettek, hogy még több freeCodeCamp oktatóanyagot dolgozzak át a JavaScript front end könyvtárakban és a back end keretrendszerekben.

Ennél is fontosabb, hogy elkezdtem dolgozni saját webes projektjeimen a CodePen-en és játékprojekteken, sok különféle motor segítségével. Elkezdtem használni a Pythont néhány alapvető szociális elemzés elvégzésére a napi munkám során, és hasznosnak találtam.

Tanítás utáni tisztítóhely

Gyors előrelépés sok idő múlva, és most számos játékkal kapcsolatos projekten dolgozom a Phaser és a Unity-n (főleg az általam fejlesztett asztali kártyajáték digitális prototípusán). Egy csomó sok időt töltöttem a keretrendszer dokumentációjában és a Stack Overflow-ban, hogy a dolgokra válaszokat és bevált gyakorlatokat keressek (ezt a bejegyzést még egyszer összekapcsolom a jó mérés érdekében). Barátságokat is kialakítottam néhány kollégával, akik maguk is programozók, és hasznos volt kódot futtatniuk tanácsok és visszajelzések céljából.

Egy dolog, ami hasznos volt a saját projektjeimmel kapcsolatban, csak a munkafolyamat beállításának alapvető tapasztalata. A parancssor és a Git együttes használatának megtanulása például az NPM és a kódszerkesztő beállításával szemet nyitott (különösen a CodePen-től származik, amely csak mindent megtesz az Ön számára). Jobb vagy rosszabb, hogy a legtöbb oktatóanyag nem teszi ki téged azoknak a szerszámoknak, amelyekre a munkád elvégzéséhez szükséged lesz, és sok mindent meg kell tanulni.

Ha ezt olvassa és azt keresi, hogy "és most kaptam az első munkámat programozóként!" nyilatkozat, sajnálom, hogy csalódást okoztam! Ez nem volt a célom (legalábbis eddig), de van néhány alapvető TL; DR-ismeretem, amelyeket meg lehet osztani, és amelyek hasznosak lehetnek mindazok számára, akik szintén keresnek egy programozási nyelvet, vagy hogyan menekülhetnek el a tutorial purgatóriumtól.

TL; DR

JavaScript:

  • Pro: Nagyon jó belépés a tanulási objektum-orientált programozásba, különösen, ha bármilyen webes fejlesztés érdekel (elülső vagy hátsó). Ezt megtanulhatja a legtöbb platformon, de a tapasztalataimat a freeCodeCamp szolgálta ki a legjobban.
  • Con: Sok webhely azt fogja mondani, hogy "csak a böngészőben fut", így "nem kell IDE-t beállítania", és így könnyebben elsajátítható, de ez a gondolkodásmód csak ennyire visz el. Ha meg akarsz csinálni érdemi fejlesztés népszerű JavaScript keretrendszerek (reagálj, Vue, Express, stb), akkor a szél akár felállítása valami IDE szomszédos kóddal szerkesztő, csomagkezelő, függőségek, stb, anélkül, az a fajta támogatás, amelyet mondjuk a .NET vagy hasonló beállításával kapna.

Piton:

  • Pro: Szuper barátságos az újonnan érkezők számára, ha a más nyelvű göndör zárójelek eleinte félelmetesek, és jó belépési pont, ha érdekel a háttérprogramozás vagy az adattudomány. Jó kezdeti tapasztalattal rendelkeztem a Codecademy révén.
  • Con: A lehetőségeid kissé korlátozottak, ha a kezelőfelület vagy a játék fejlesztésére törekszel. Vannak például olyan keretrendszerek, amelyek lehetővé teszik játékok készítését (például PyGame), de ha kifejezetten játékfejlesztéssel foglalkozik, akkor jobban szolgálná máshol.

C #:

  • Pro: Nagyon kellemes nyelv, amelyet a Microsoft és a nyílt forráskódú közösség jól támogat. Ezzel háttér-fejlesztést végezhet, asztali alkalmazásokat készíthet, játékokat készíthet (főleg a Unity-vel, de vannak olyan motorok, mint a Monogame). Lehet, hogy népszerűtlen vélemény, de azt javaslom, hogy először a C # -et tanulja meg a Microsoft oktatóprogramjai vagy másutt, majd az Unity-t tanulja meg, hogy megkönnyítse a szerkesztő bonyolultsága által előidézett kognitív terhelés egy részét.
  • Con: Nem sokat beszélnek itt, kivéve, ha tényleg nem , mint a Microsoft vagy tényleg nem akar munkát kezelőfelületen webfejlesztés (Gondolom, Ön is megvizsgálhatja Blazor, de én nem ajánlom kezdő itt). Beszélhetnék sokat arról, hogy az Unity hogyan javíthatja például felhasználói élményét, de maga a C # nagyszerű.

Általános gondolatok a tanulásról és az oktatótisztító kórház megúszásáról :

  • Az egyik csalódásom, amikor feltettem a kérdést: "milyen programozási nyelvet tanuljak?" azt éreztem, hogy nem volt elég válasz a "nos, mit akarsz építeni?" Sokat találkoztam ezzel a válasszal, és nem gondolom, hogy ez a helyes módszer a programozás elsajátításához, ha még nem tudja, mit akar vele kezdeni. A kezdőnek nincs elég kontextusa ahhoz, hogy tudja, mit tudnak felépíteni, pláne az odaérkezés útvonaláról (hacsak nem olyan típusú emberről van szó, aki csak játékokat akar készíteni, vagy csak webfejlesztőként szeretne munkát vállalni ).
  • Jobb válasz az lenne, ha azt mondanánk: "próbáljon ki néhány oktatóanyagot különböző webhelyeken és különböző nyelveken, és nézze meg, hogy valami érdekesnek tűnik-e. Ha mégis, ragaszkodjon hozzá; ha nem, válasszon egyet véletlenszerűen, és nézze meg A megtanult dolgok segítséget nyújtanak, függetlenül attól, hogy valójában mit csinálsz. "
  • Ezenkívül, ha kényszerítheti magát arra, hogy kilépjen az oktató ökoszisztémából, és bármit elkészítsen a védett környezeten kívül, ami az Ön számára fel van állítva, ez segít megtanítani olyan dolgokra, amelyeket végül tudnia kell, például egy IDE, kérdésekre adott válaszok keresése és munkájának megosztása.

Remélem, hogy ez a bejegyzés másoknak is hasznos lehet, akik programozási nyelvet keresnek, vagy módot keresnek a tutorial purgatórium elől, és remek dolgokat építenek. És szívesen hallanék a tapasztalataidról is!

Ha tetszett ez a cikk, kérjük, fontolja meg a játékaim és könyveim megtekintését, a YouTube-csatornámra való feliratkozást vagy a csatlakozást az Entromancy Discord-hoz.

Farzan MS, Ph.D. írt és dolgozott olyan nagy horderejű videojáték-társaságoknál és szerkesztőségi weboldalakon, mint az Electronic Arts, a Perfect World Entertainment, a Modus Games és az MMORPG.com, valamint közösségi vezetőként dolgozott olyan játékoknál, mint a Dungeons & Dragons Neverwinter és a Mass Effect: Andromeda . Az Entromancy: A Cyberpunk Fantasy RPG kreatív igazgatója és vezető játéktervezője,valamint a The Nightpath Trilogy szerzője. Keresse meg MS Farzant a Twitteren @sominator.