Kuidas valida programmeerimiskeelt ja pääsemisõpetuse puhastustuba

Mõni nädal tagasi postitasin oma kogemused, kuidas proovida Codecademys, Udemys ja freeCodeCampis JavaScripti, C #, Pythoni ja muud õppida, koos põgenemisega õppepuhastusjaamas ja tegelikult arendajana edusammude tegemisel.

Programmeerimiskeele üle otsustamine võib olla äärmiselt keeruline ja aeganõudev, kuna seal on kümneid võimalusi, kus on palju vastuolulist teavet. Selles artiklis jagan mõningaid valikuid, mis põhinevad minu enda kodeerimise õppimisel saadud kogemustel, koos ettepanekutega, kuidas valida programmeerimiskeelt, pääseda õpetuste puhastustuppa ja teha arendajana edusamme.

Siin on selle postituse videoversioon, kui soovite (11-minutiline vaatamine):

Stsenaarium nr 1: tead, mida tahad ehitada

Sageli palutakse sellistes artiklites (või infograafikates "Millist kodeerimiskeelt peaksin õppima?", Millega olete ilmselt lähedalt tuttav) mõelda kriitiliselt selle üle, mida soovite pärast õppimist ehitada. kood.

See lähenemine on kasulik, kui teil on mõni ettekujutus selle kohta, mida soovite pärast selle õppimist programmeerimiskeelega teha , kuid mitte nii palju, kui soovite lihtsalt õppida kodeerimist , nagu oli minu kogemus. Ma käsitlen mõlemat stsenaariumi selles artiklis.

Kui teate, millises suunas soovite pärast programmeerimiskeele õppimist oma kodeerimiskarjääri teha, on teil tõenäoliselt lihtsam välja selgitada, millist keelt kõigepealt õppida. Siin on mõned ettepanekud sellisel juhul.

Esiosa arendus: JavaScript (ja HTML / CSS)

Kui teate juba, et soovite töötada veebisaitide "eesservas" - see tähendab kõike, mida kasutaja veebisaidile tulles näeb -, peaksite oma kodeerimisreisi alustama JavaScripti õppimisega. Tõenäoliselt alustate HTML-i ja CSS-i õppimisega, mis moodustavad peaaegu iga veebisaidi selgroo, ja hakkate seejärel lisama JavaScripti, et oma saitidel funktsionaalsust ja interaktiivsust parandada.

JavaScript on programmeerimiskeelena üsna üldlevinud ja sellel on kergem kaldtee kui teistel madalama taseme keeltel, nagu C ++. See on suurepärane hüppepunkt, kui te ei tea, mida soovite õppida ... kuid sellest hiljem.

Tagumise otsa arendus: Python, C # või JavaScript (ja SQL)

Oletame, et teid huvitab rohkem veebisaitide sisikonna tundmaõppimine, "taguotsa" haldamine ja kätt proovida andmebaasi haldamisel. Teil on siin palju võimalusi ja kõige sirgjoonelisem tee on Python, mis on algajatele sõbralik keel, millel on küpsed raamistikud (nt Django ja Flask) taguotsade arendamiseks.

Samuti ei saa valesti minna C # -ga, mis viib teid Microsofti .NET-ökosüsteemi ja programmeerimiskeele alla, mis on pärast seda, kui olete sellega umbrohtu sattunud, rõõm töötada. Ja kui te kavatsete minna "täis virna" juurde - see tähendab, et soovite teha arendusi esi- ja tagatipuks, võiksite kaaluda JavaScripti õppimist, millel on nooremad, kuid kõrgelt hinnatud taustraamistikud nagu Express ja Koa. See hõlbustab ka teie õppeprotsessi, kuna kasutate mõlema korstna kodeerimiseks sama keelt.

Ükskõik, millise keele te endi arendamiseks valite, lõpetate tõenäoliselt ka SQL-i lisamise oma tööriistakasti andmebaasi haldamiseks, nii et pange see oma radarisse.

2D mängu arendamine: JavaScripti või C #

Olen mujal kirjutanud, millist mootorit peaksite kasutama 2D-mängude tegemiseks, kuid siin on see kõhn.

Seal on palju 2D-mängumootoreid, millest paljud võivad sobida või mitte sobida teie kui mänguarendaja väljamõeldisega ning igal neist on oma eelised, eripärad ja õppimiskõver. Mõni neist, näiteks Game Maker Studio 2, kasutab skriptide käitamiseks omaenda varalisi keeli, kuid tegelikult soovitaksin teil kõigepealt õppida JavaScripti või C #, isegi kui kaalute pikemas perspektiivis mõne muu mängumootori kasutamist .

JavaScripti abil saate 2D-mängude loomiseks kasutada selliseid raamistikke nagu Phaser või täisfunktsionaalseid mootoreid nagu Construct 3 (mis tegelikult kasutab lohistamise ja lohistamise arendust koos kohandatud skriptide jaoks). Kui otsustate õppida hoopis C # -d, siis töötate Unity 2D-ga või võib-olla MonoGame'iga - kuid ma soovitaksin tegelikult alustada kõigepealt mootorivälistest õpetustest (nt .NET), et kõigepealt keelega hästi hakkama saada.

JavaScripti või C # õppimine annab teile põhiteadmised kodeerimisest, mida peate kasutama mõne muu mängumootori, näiteks Game Makeri, kasutamiseks, pakkudes teile ka selliseid asju nagu parimate tavade programmeerimine ja puhta koodi korraldamine.

3D-mängude väljatöötamine: C # või C ++

3D-mängude arendamiseks on palju võimalusi kodeerimise õppimiseks ja soovitaksin alustada tähtedega C # või C ++. Tegelikult, kui te pole ülimalt tehnikatehnik või kui teil pole juba programmeerimise tausta, soovitaksin teil alustada tähega C # ja liikuda edasi C ++ -ni. Teil on lihtsam õppimiskõver ja õpite põhilisi programmeerimiskontseptsioone, ilma et peaksite tegelema selliste asjadega nagu mäluhaldus ja madalama taseme kood.

Tõenäoliselt lõpetate mõlema õppimise igal juhul, kuid kui alustate tähemärgiga C #, saate nokitseda Unity 3D-ga ja seejärel liikuda Unreal Engine 4 abil C ++ juurde.

Andmeteadus / masinõpe: Python

Ehkki teistes keeltes on võimalusi andmeteaduse / analüüsi ja masinõppe õppimiseks, on Python praegu selle kodeerimisala kullastandard. Selle õppimiseks on üsna lihtne keel ja see pakub teile häid programmeerimisharjumusi ja laialt kasutatavaid raamistikke, nii et te ei saa siin valesti minna.

Stsenaarium nr 2: te ei tea, mida soovite ehitada

On selge võimalus, et olete päevi, nädalaid või isegi kuid otsinud artiklite, videote, redditi postituste ja virnade ületäitumise küsimuste kohta programmeerimiskeeltest lugedes ja teil pole endiselt aimugi, kuhu oma aega investeerida, sest te ei tea mida soovite ehitada.

Ma olen seal olnud. See on tüütu.

Minu soovitus teile, nii tõepärane kui see ka ei tundu, on lihtsalt üks valida. Sõna otseses mõttes keegi neist, isegi kui neid pole siin loetletud. Minge õppima JavaScripti. Või Python. Või Rooste. Või Haskell.

OK, võib-olla mitte Haskell. Kuid valige midagi ja pidage seda piisavalt kaua, et õppida põhitõdesid ja näha, kas on olemas võimalus, et võiksite seda keelt selle ehitamiseks kasutada. Ja pidage seda tehes meeles kahte asja:

  1. Pange endale tähtaeg. Nagu näiteks: "Võtan järgmised kolm kuud JavaScripti õppimiseks freeCodeCampi õpetuste abil." Kui selle perioodi lõpus tunnete, et teete edusamme ja see on teile huvitav, jätkake! Kui ei, siis võib olla aeg oma keelevalik üle vaadata ja vaadata, kas seal on midagi, mis võiks teile paremini sobida.
  2. Ehitage midagi, mida pole teie õpetustes. See on oluline samm teie kui arendaja kasvus. Ma kajastan seda järgmises osas.

Stsenaarium nr 3: Oled kinni juhendajapuhastuses

Kui olete avastanud, et teete õpetuse pärast õpetust samadel või erinevatel veebisaitidel, tundmata tegelikult, et teete edusamme, võite kodeerimise õppimise kogemusest tõesti pettuda. Olen seal käinud ja saan aidata.

Esimene samm on kaaluda, milleks programmeerimise õpetused sobivad ja millised mitte. Enamik veebijuhendeid - eriti neid, mis võimaldavad teil otse brauseris kodeerida - sobivad programmeerimise õpetamiseks suurepäraselt.

Teisalt pole need head programmeerijaks õpetamiseks.

Parimad õpetused pakuvad teile põhilisi kodeerimiskontseptsioone ja nõuavad nende teadmiste rakendamist mõistatuste ja projektide lahendamiseks. Need on suurepärased õppevahendid, mis võivad väljaspool oma ulatust kasutada karkudeks, mis lämmatavad teie õppimise.

Näiteks programmeerija ei istu terve päeva õpetusi tehes. Programmeerija programmeerib ja see on just see, mida peate tegema, et pärast põhitõdesid omandada edu.

Parim viis arendajana edasiliikumiseks on valida projekt oma valitud keeles ja asuda seda tegema. Näiteks kui õpite JavaScripti, võite valida lihtsa HTML / CSS-i veebisaidi loomise ja lisada jQueryga interaktiivsust. Tõenäoliselt alustate integreeritud arenduskeskkonna loomisest, unustades koheselt, kuidas teha midagi, mida õppematerjalides õppisite, pettumust valmistama, Google'i poole pöörduma, vastuse leidma ja jätkama. Siis teete edusamme, jääte jänni, otsite Stack Overflow'st, kraabite oma pead ametliku dokumentatsiooni kallal, võib-olla jagate oma koodi kellelegi ja korrake kogu protsessi.

Ja teete uue projekti ehitamisel täpselt seda, mida programmeerijad teevad.

Lõpuks ei saa te tõesti valesti valida, millise programmeerimiskeele valite, isegi kui see pole selles loendis. Kui lõpetate selle valimise, õpite põhitõdesid, koostate projekti ja otsustate, et see pole teie jaoks, aitab see kogemus teid ikkagi pikas perspektiivis. Protsessi käigus õpitav teave on kasulik, olenemata sellest, millist keelt oma projektides lõpuks kasutate.

Sa saad sellega hakkama!

Kui teile see artikkel meeldis, kaaluge palun minu mängude ja raamatute vaatamist, minu YouTube'i kanali tellimist või ühinemist Entromancy Discordiga .

MS Farzan, Ph.D. on kirjutanud ja töötanud kõrgetasemelistes videomängufirmades ja toimetuste veebisaitidel nagu Electronic Arts, Perfect World Entertainment, Modus Games ja MMORPG.com ning olnud kogukonnadirektorina selliste mängude jaoks nagu Dungeons & Dragons Neverwinter ja Mass Effect: Andromeda . Ta on filmi Entromancy: A Cyberpunk Fantasy RPG loovjuht ja juhtmängu kujundajaning The Nightpath Trilogy autor. Leidke MS Farzan Twitterist @sominator.