Kako odabrati programski jezik i pobjeći iz udžbenika Čistilište

Prije nekoliko tjedana objavio sam o svom iskustvu pokušavajući naučiti JavaScript, C #, Python i još mnogo toga od Codecademy, Udemy i freeCodeCamp, zajedno s bijegom iz čistilišta udžbenika i stvarnim napretkom kao programer.

Odluka o programskom jeziku može biti izuzetno izazovna i dugotrajna jer postoji na desetke opcija s puno proturječnih informacija. U ovom ću članku podijeliti neke opcije temeljene na vlastitom iskustvu učenja kodiranja, sa prijedlozima kako odabrati programski jezik, pobjeći iz čistilišta vodiča i napredovati kao programer.

Evo video verzije ovog posta ako želite (11-minutno gledanje):

Scenarij 1: Znate što želite izgraditi

Često se u člancima poput ovih (ili u infografici "Koji jezik kodiranja trebam naučiti?" S kojom ste vjerojatno blisko upoznati) kritički razmislite o tome što želite izgraditi nakon što naučite kodirati.

Ovaj je pristup koristan ako imate neku predodžbu o tome što želite raditi s programskim jezikom nakon što ste ga naučili, ali ne toliko ako samo želite naučiti kodirati , kao što je bilo moje iskustvo. U ovom ću članku pokriti oba scenarija.

Ako doista znate u kojem smjeru želite krenuti u karijeri kodiranja nakon učenja programskog jezika, najvjerojatnije ćete lakše provaliti koji jezik prvo naučiti. Evo nekoliko prijedloga u tom slučaju.

Prednji kraj: JavaScript (i HTML / CSS)

Ako već znate da želite raditi na "front endu" web stranica - što znači, na svemu što korisnik vidi kada dođe na web mjesto - trebali biste započeti putovanje kodiranjem učenjem JavaScript-a. Vjerojatno ćete započeti s učenjem HTML-a i CSS-a, koji čine okosnicu gotovo svake web stranice, a zatim početi dodavati JavaScript za poboljšanje funkcionalnosti i interaktivnosti vaših web stranica.

JavaScript je prilično sveprisutan kao programski jezik i ima lakšu rampu od ostalih jezika niže razine poput C ++. Izvrsna je skočna točka ako ne znate što želite naučiti ... ali o tome kasnije.

Razvoj pozadine: Python, C # ili JavaScript (i SQL)

Recimo da ste više zainteresirani za učenje o utrobi web stranica, upravljanje "pozadinom" i okušavanje u administraciji baze podataka. Ovdje imate puno opcija, a najjednostavniji put je Python, jezik koji je prilagođen početnicima i ima zrele okvire (npr. Django i Flask) za back end razvoj.

Također ne možete pogriješiti s C #, koji će vas izložiti Microsoftovu .NET ekosustavu i programskom jeziku koji će, kad jednom njime uđete u korov, zadovoljstvo raditi. A ako razmišljate o "full stacku" - što znači da želite razviti prednji i stražnji kraj - možda biste trebali razmisliti o učenju JavaScript-a, koji ima mlađe, ali vrlo cijenjene pozadinske okvire poput Expressa i Koe. To će vam olakšati proces učenja jer ćete koristiti isti jezik za kodiranje oba stoga.

Koji god jezik odabrali za back end razvoj, najvjerojatnije ćete i dodati SQL u svoj alat za upravljanje bazama podataka, pa ga stavite na svoj radar.

Razvoj 2D igara: JavaScript ili C #

Na drugom sam mjestu napisao o tome koji biste motor trebali koristiti za izradu 2D igara, ali evo mršavog.

Postoji puno 2D pokretača igara, od kojih mnogi mogu ili ne moraju odgovarati vašoj zamisli kao programera igara, a svaki sa svojim prednostima, idiosinkrazijama i krivuljom učenja. Neki od njih, poput Game Maker Studio 2, na primjer, koriste svoje vlastite jezike za pokretanje skripti, ali zapravo bih vam preporučio da prvo naučite JavaScript ili C #, čak i ako dugoročno razmišljate o upotrebi drugog mehanizma za igre .

S JavaScriptom možete koristiti okvire poput Phasera za izradu 2D igara ili potpuno opremljene motore poput Construct 3 (koji zapravo koristi povuci i ispusti razvoj s prostorom za prilagođene skripte). Ako umjesto toga odlučite naučiti C #, radit ćete s Unity 2D ili možda MonoGameom - ali zapravo bih preporučio da započnete s tutorialima bez motora (npr. .NET) kako biste prvo dobro razumjeli jezik.

Učenje JavaScripta ili C # dat će vam osnovno znanje kodiranja koje će vam trebati za rješavanje drugog pokretača igara, poput Game Makera, dok će vam istovremeno pružiti stvari poput najbolje prakse u programiranju i čiste organizacije koda.

Razvoj 3D igara: C # ili C ++

Postoji puno mogućnosti za učenje kodiranja za razvoj 3D igara, a ja bih vam predložio da započnete s C # ili C ++. Zapravo, osim ako niste supertehničar ili već imate iskustva u programiranju, preporučio bih vam da započnete s C # i krenete prema C ++. Imat ćete lakšu krivulju učenja i naučit ćete temeljne koncepte programiranja, a da se ne morate baviti stvarima poput upravljanja memorijom i koda niže razine.

Vjerojatno ćete u svakom slučaju završiti s učenjem, ali ako započnete s C #, možete se poigrati s Unity 3D-om, a zatim krenuti do C ++-a s Unreal Engine 4.

Znanost podataka / Strojno učenje: Python

Iako na drugim jezicima postoje mogućnosti za učenje znanosti / analize podataka i strojno učenje, Python je trenutno zlatni standard za ovo područje kodiranja. To je prilično jednostavan jezik za učenje i izložit će vas dobrim programskim navikama i široko korištenim okvirima, tako da ovdje ne možete pogriješiti.

Scenarij 2: Ne znate što želite izgraditi

Postoji jasna mogućnost da ste dane, tjedne ili čak mjesece proveli pretražujući članke, videozapise, postove na Reddit-u i Stack Overflow pitanja čitajući o programskim jezicima, a da još uvijek nemate pojma gdje uložiti svoje vrijeme jer ne znate što želite izgraditi.

Bio sam ondje. Dosadno je.

Moja preporuka vama, koliko god se činilo otmeno, je da samo odaberete jednu. Doslovno bilo koji od njih, čak i ako ovdje nije naveden. Idite učiti JavaScript. Ili Python. Ili Rust. Ili Haskell.

OK, možda ne Haskell. Ali odaberite nešto i držite se toga dovoljno dugo da naučite osnove i provjerite postoji li mogućnost da biste možda željeli koristiti taj jezik za izgradnju s njim. I pritom imajte na umu dvije stvari:

  1. Odredite si vremensko ograničenje. Kao, "Idem u sljedeća tri mjeseca da naučim JavaScript koristeći tutorial tutorial za freeCodeCamp." Ako se na kraju tog razdoblja osjećate kao da napredujete i zanimljivo vam je, nastavite! Ako ne, možda je vrijeme da preispitate svoj jezik i provjerite postoji li nešto što bi vam možda više odgovaralo.
  2. Izgradite nešto što nije u vašim vodičima. Ovo je presudan korak u vašem razvoju kao programera. Objasnit ću to u sljedećem odjeljku.

Scenarij 3: Zaglavili ste u Tutorial Čistilištu

Ako ste se našli na udžbenicima na istim ili različitim web lokacijama, a da se nikada niste osjećali kao da napredujete, možda ćete biti stvarno frustrirani iskustvom učenja kodiranja. Bio sam tamo i mogu vam pomoći.

Prvi je korak razmotriti za što su tutorijali iz programiranja dobri, a za što nisu. Većina mrežnih vodiča - posebno onih koji vam omogućuju kodiranje izravno u pregledniku - izvrsni su za podučavanje programiranju.

S druge strane, oni nisu dobri za to što će vas naučiti kako biti programer.

Najbolji vodiči izložit će vas temeljnim konceptima kodiranja i zahtijevati da to znanje primijenite za rješavanje zagonetki i projekata. Izvrsni su alati za učenje koji, ako se koriste izvan njihovog opsega, mogu postati štake koje će vam prigušiti učenje.

Programer, na primjer, ne sjedi po cijele dane i drži tutorijale. Programer programira , a to je upravo ono što trebate učiniti da biste napredovali nakon što savladate osnove.

Najbolji način da napredujete kao programer je odabrati projekt na vašem jeziku i odabrati to učiniti. Na primjer, ako učite JavaScript, možete odabrati izgradnju jednostavne web stranice s HTML / CSS-om i dodati neku interaktivnost s jQueryjem. Vjerojatno ćete započeti postavljanjem integriranog razvojnog okruženja, odmah zaboravljajući kako napraviti nešto što ste naučili u svojim tutorijalima, frustrirati se, uputiti se na Google, pronaći odgovor i nastaviti dalje. Tada ćete napredovati, zapeti, pretražiti Stack Overflow, počešati se po službenoj dokumentaciji, možda podijeliti svoj kôd s nekim i ponoviti cijeli postupak.

I radit ćete točno ono što programeri rade prilikom izrade novog projekta.

Napokon, doista ne možete pogriješiti s odabranim programskim jezikom, čak i ako nije na ovom popisu. Ako na kraju odaberete jedan, naučite osnove, izradite projekt i odlučite da to nije za vas, to će vam iskustvo dugoročno i dalje pomoći. Informacije koje ćete naučiti u procesu bit će korisne, bez obzira na jezik koji na kraju koristite za svoje projekte.

Možeš ti to!

Ako vam se svidio ovaj članak, razmislite o provjeri mojih igara i knjiga, pretplati se na moj YouTube kanal ili se pridružite Entromancy Discord .

MS Farzan, dr. Sc. napisao je i radio za istaknute tvrtke za video igre i uredničke web stranice kao što su Electronic Arts, Perfect World Entertainment, Modus Games i MMORPG.com, a služio je i kao upravitelj zajednice za igre poput Dungeons & Dragons Neverwinter i Mass Effect: Andromeda . Kreativni je direktor i vodeći dizajner igara Entromancy: Cyberpunk Fantasy RPG i autor knjige The Nightpath Trilogy . Pronađite MS Farzan na Twitteru @sominator.