Kuinka pakenin opetusohjelman puhdistamosta ja opin koodaamaan - ja kuinka sinäkin voit.

Konteksti: Olen pöytäpelien kehittäjä ja digitaalinen markkinoija, ja vietettyään pitkään pelien ja tietokoneiden ympärillä päätin, että halusin oppia koodaamaan noin 3 vuotta sitten.

Lähdin niin monien tavoin etsimällä pitkälti mitä kieltä minun pitäisi oppia ja mistä palata tähän aiheeseen useita kertoja matkan aikana. Törmäsin useaan ketjuun, jotka ehdottivat yhtä kieltä tai oppimisalustaa toiselle, ja ajattelin jakaa tietyn kokemukseni siltä varalta, että siitä olisi hyötyä jollekin muulle samassa arvosteluprosessissa.

Vastuuvapauslauseke: En ole ammattimainen ohjelmoija, ja vaikka käytän taitojani työni hyödyttämiseksi (voit lukea etsinnästäni prototyyppikehyksen täältä), koodaus on edelleen lisäys pääteokseeni eikä tulolähde mitä se sinulle kertoo.

Myös vastuuvapauslauseke: En yritä sijoittaa yhtä kieltä tai oppimisalustaa toisen päälle, enkä ole ilmeisesti yrittänyt oppia kaikkia kieliä siellä, kaikilla alustoilla. Seuraava on vain kokemukseni yrittää selvittää järkevin tie eteenpäin tosin hämmentävässä ympäristössä.

Voit myös hypätä alareunaan TL; DR .

Prologi: C ++

En ole aivan varma, tiesinko jo, että C ++ oli ja on edelleen videopelien kehityksen kulmakivi. Ehkä näin sen yhdessä niistä "Mitä ohjelmointikieliä minun pitäisi oppia" -infografiikoista. Halusin kuitenkin tietää enemmän pelien tekemisestä ja kuinka puhua tietokoneen kanssa. Olen melko teknologiaystävällinen ja olen rakentanut tai koonnut omia tietokoneitani ajattelemalla, että se saattaa soveltaa kokemusta koodaamisen oppimisesta.

Pyhä tupakoi, olinko tie ulos syvyydestäni. Tein muutaman opetusohjelman verkossa (mielestäni oppimissovelluksen tai vastaavan kautta) ja tajusin pian, että tarvitsen enemmän opastusta olio-ohjelmoinnin perusperiaatteiden ymmärtämiseksi, kenties helpommin saatavilla olevalla kielellä, kuin mitä löysin oppimalla C ++.

HTML, CSS, JavaScript ja Python

Ennen kuin aloitin tähän seikkailuun, minulla oli jo pieni HTML-kokemus ja törmäsin Codecademyn. Pidin kovasti kyvystä tehdä opetusohjelmia selaimesta ja ilman, että tarvitsen asettaa IDE: tä (niin tekeminen C ++: lle oli ollut kokeileva kokemus). Kulutin nopeasti kaikki Codecademyn HTML- ja CSS-oppitunnit. Luonnollinen polku siitä pisteestä oli tehdä JavaScript-kurssi, josta nautin. Mutta pian löysin itseni "tutorial purgatorysta" (ei viitteeni), työskentelemällä läpi Python-kurssin ja muita.

Minun on myös mainittava, että olen suorittanut Codecademyn kurssit ilmaisena käyttäjänä, enkä halunnut maksaa liittymismaksua heidän tarjoamastaan ​​tuolloin, joka sisälsi projekteja ja mentoritukea.

Olen oppinut paljon Codecademyn perusteita ja yleisiä OOP-periaatteita, mutta en päätynyt soveltamaan suurta osaa ilman selkeää polkua eteenpäin. Palasin hakuihini (kenellä olen tosissani, olen viettänyt PALJON aikaa samanaikaisesti muiden kielten, oppimisalustojen ja käynnistyskampusten tutkimiseen koko prosessin ajan) ja päätin, että halusin oppia lisää pelinkehityksestä Unityn kurssien avulla.

C #

Löysin Ben Tristemin Unity-kurssin yhdestä Udemyn monivuotisesta 10000%: n alennuksesta myynnistä, ja työskentelin ahkerasti opetusohjelmien läpi rakentaakseni kloonien 2D-tiilimurtoja ja muita pelejä. Olen oppinut vain tarpeeksi C #: tä selviytymiseen, mutta ei tarpeeksi, jotta voisin luottaa tekemään itse mitään.

Itse ykseys oli luultavasti enemmän tiesulku täällä kuin Tristrem ja hänen ohjeet, mikä oli oikeastaan ​​varsin hyvä. Unity-editori on moottorin peto, jossa on paljon hyviä työkaluja, jotka ovat läpäisemättömiä aloitteleville käyttäjille (voit jälleen lukea lisää kokemuksistani Unityn kanssa täältä).

Minusta tuntuu silti, että olen oppinut paljon kursseilta ja yksinkertaisen altistumisen C #: lle ja Unityn halutulle työnkululle, mutta en saanut tarpeeksi irti kokemuksesta jatkaaksesi. Ystäväni antoi minulle vinkin katsomaan freeCodeCampia, missä menin seuraavaksi.

Takaisin JavaScriptiin

Ensimmäisellä poskipunalla freeCodeCamp näyttää vähemmän räikeältä Codecademylta tai Treehouselta. Pidin kuitenkin siitä, kuinka suoraviivaiset opetusohjelmat olivat, eikä minun tarvinnut ohittaa voittoseinää edistyäkseen. Jatkoin siellä, missä jäin oppimaan HTML: n ja CSS: n, edistyen hyvin, kunnes pääsin Responsive Web Design -projekteihin, jotka vaaditaan ensimmäisen osan loppuun saattamiseksi ja sertifikaatin saamiseksi.

Voin sanoa varmuudella, että tämä oli hetki (tai sarja hetkiä), kun poistuin opetusohjelman puhdistamosta. Aloittelijalle, jolla ei ollut todellista ammattimaista verkkosuunnittelukokemusta ja halukkuus selvittää omat ratkaisuni ilman Googlen vastausta, projektit olivat vaikeita . Lopulta voitin ja tein pari typerää sivustoa, jotka täyttivät vaatimukset, mutta kokemus kannusti minua työskentelemään useiden muiden freeCodeCamp-opetusohjelmien kanssa JavaScript-käyttöliittymäkirjastoissa ja taustakehyksissä.

Vielä tärkeämpää on, että aloin työskennellä omien web-projektiini CodePenissä ja peliprojekteissa joukolla erilaisia ​​moottoreita. Aloin myös käyttää Pythonia tekemään joitain sosiaalisia perustutkimuksia päivätyössäni ja pidin siitä hyödyllisenä.

Tutorialin jälkeinen puhdistus

Nopeasti eteenpäin paljon myöhemmin, ja työskentelen nyt useissa peleihin liittyvissä projekteissa Phaserissa ja Unityssä (erityisesti digitaalinen prototyyppi kehitettävälle pöytäkortille). Olen viettänyt paljon helvettiä paljon aikaa puitedokumentaatiossa ja Stack Overflow -sovelluksessa etsimällä vastauksia ja parhaita käytäntöjä tavaroille (linkittämällä tämän viestin vielä kerran hyväksi). Minulla on myös ollut ystävyyssuhteita muutaman kollegan kanssa, jotka itse ovat ohjelmoijia, ja heidän on ollut hyödyllistä käyttää koodia neuvojen ja palautteen saamiseksi.

Yksi asia, josta on ollut hyötyä omien projektieni parissa, on vain peruskokemus työnkulun määrittämisestä. Esimerkiksi komentorivin ja Gitin käytön oppiminen yhdessä NPM: n ja koodieditorin asettamisen kanssa avasi silmät (etenkin CodePeniltä, ​​joka vain tekee kaiken puolestasi). Hyvältä tai pahemmalta, useimmat opetusohjelmat eivät altista sinua työkalujen tyydyttävyydelle, ja sinun on opittava paljon.

Jos luet tätä ja etsit "ja sain juuri ensimmäisen työpaikkani ohjelmoijana!" lausunto, olen pahoillani pettää! Se ei ole ollut tavoitteeni (ainakin toistaiseksi), mutta minulla on joitain perustavanlaatuisia TL; DR-oppimisia, joista voi olla hyötyä kaikille, jotka ovat myös hakemassa ohjelmointikieliä tai kuinka paeta opetusohjelman puhdistamosta.

TL; DR

JavaScript:

  • Pro: Erittäin hyvä lähtökohta oppimiseen olio-ohjelmointiin, varsinkin jos olet kiinnostunut kaikesta verkkokehityksestä (etu- tai takapää). Voit oppia tämän useimpien alustojen kautta, mutta kokemukseni palveli parhaiten freeCodeCamp.
  • Huijaus: Monet sivustot kertovat sinulle, että se "toimii vain selaimessasi", joten sinun ei tarvitse määrittää IDE: tä ja on siten helpompi oppia, mutta tämä ajattelutapa vie sinut vain niin pitkälle. Jos aiot tehdä mielekästä kehitystä suosituilla JavaScript-kehyksillä (React, Vue, Express jne.), Lopetat jotain IDE-vieressä olevan koodieditorin, paketinhallinnan, riippuvuuksien jne. Kanssa ilman sellaista tukea, jonka saisit esimerkiksi .NET: n tai vastaavan määrittämisestä.

Python:

  • Pro: Erittäin ystävällinen uusille tulokkaille, jos muilla kielillä olevat kiharat ovat aluksi pelottavia, ja hyvä lähtökohta, jos olet kiinnostunut pääsemään ohjelmistoon tai tietojenkäsittelyyn. Minulla oli hyvä alustava kokemus Codecademyn kautta.
  • Con: Vaihtoehtosi ovat hieman rajoitetut, jos haluat päästä käyttöliittymään tai pelikehitykseen. On esimerkiksi kehyksiä, joiden avulla voit tehdä pelejä (esimerkiksi PyGame), mutta jos etsit pelikehitystä, sinua palvelisi paremmin muualla.

C #:

  • Pro: Erittäin miellyttävä kieli, jota Microsoft ja avoimen lähdekoodin yhteisö tukevat hyvin. Sen avulla voit tehdä taustakehitystä, tehdä työpöytäsovelluksia, luoda pelejä (enimmäkseen Unityn kanssa, mutta siellä on muita moottoreita, kuten Monogame). Se voi olla epäsuosittu mielipide, mutta suosittelen ensin C #: n oppimista Microsoftin opetusohjelmien tai muualla ja sitten Unityn oppimista helpottamaan joitain toimittajan monimutkaisuuden aiheuttamia kognitiivisia kuormia.
  • Con: Ei paljon puhua täällä, ellet todella eivät kuten Microsoft tai oikeastaan eivät halua työskennellä etupään Web-kehitys (Taisit voisi tutkia Blazor, mutta en suosittelisi alkaa täältä). Voisin puhua paljon siitä, kuinka Unity voi parantaa esimerkiksi käyttökokemustaan, mutta itse C # on loistava.

Yleisiä ajatuksia oppimisesta ja pakenemisesta opetusohjelman puhdistamossa :

  • Yksi turhautumisistani kysymyksessäni "mitä ohjelmointikieliä minun pitäisi oppia?" oli mielestäni riittämätön vastaus "No, mitä haluat rakentaa?" Huomasin tämän vastauksen paljon, enkä usko, että se on oikea tapa lähestyä ohjelmoinnin oppimista, jos et vielä tiedä, mitä haluat tehdä sen kanssa. Aloittelijalla ei ole tarpeeksi kontekstia tietääkseen, mitä he voivat rakentaa, puhumattakaan reittiä sinne pääsemiseksi (paitsi jos he ovat sellaisia ​​henkilöitä, jotka haluavat vain tehdä pelejä tai haluavat vain saada työpaikan web-kehittäjänä ).
  • Parempi vastaus olisi sanoa: "kokeile muutama opetusohjelma eri sivustoilla ja eri kielillä ja katso jos jokin tuntuu mielenkiintoiselta. Jos pidät, pidä kiinni siitä; jos ei, valitse yksi satunnaisesti ja katso mihin se vie. Oppimasi aineistot auttavat riippumatta siitä, mitä todella päätät tehdä. "
  • Lisäksi, jos voit pakottaa itsesi poistumaan opetusohjelman ekosysteemistä ja tehdä vain mitä tahansa sinulle perustetun suojatun ympäristön ulkopuolella, se auttaa opettamaan sinulle asioita, jotka sinun on lopulta tiedettävä, kuten IDE, vastausten etsiminen kysymyksiin ja työn jakaminen.

Toivon, että tämä viesti on hyödyllinen muille siellä oleville, jotka etsivät ohjelmointikieliä tai tapaa paeta opetusohjelman puhdistamosta ja rakentaa hienoja juttuja. Ja haluaisin kuulla myös kokemuksistasi!

Jos pidit tästä artikkelista, harkitse pelejeni ja kirjojeni tarkastamista, YouTube-kanavani tilaamista tai liittymistä Entromancy Discordiin.

MS Farzan, Ph.D. on kirjoittanut ja työskennellyt korkean profiilin videopeliyrityksissä ja toimituksellisilla verkkosivustoilla, kuten Electronic Arts, Perfect World Entertainment, Modus Games ja MMORPG.com, ja toiminut yhteisöpäällikkönä peleille, kuten Dungeons & Dragons Neverwinter ja Mass Effect: Andromeda . Hän on Entromancy: A Cyberpunk Fantasy RPG: n luova johtaja ja johtava pelisuunnittelijaja Nightpath-trilogian kirjoittaja . Etsi MS Farzan Twitteristä @sominator.