Sådan vælges et programmeringssprog og flugtvejsskærm

For et par uger siden sendte jeg indlæg om min erfaring med at forsøge at lære JavaScript, C #, Python og mere fra Codecademy, Udemy og freeCodeCamp sammen med at flygte fra tutorial skærsilden og faktisk gøre fremskridt som udvikler.

Beslutningen om et programmeringssprog kan være ekstremt udfordrende og tidskrævende, da der er snesevis af muligheder derude med en masse modstridende oplysninger. I denne artikel vil jeg dele nogle muligheder baseret på min egen erfaring med at lære at kode, med forslag til hvordan man vælger et programmeringssprog, undslipper skærsilden og gør fremskridt som udvikler.

Her er en videoversion af dette indlæg, hvis du foretrækker det (11 minutters overvågning):

Scenarie nr. 1: Du ved hvad du vil bygge

Ofte i artikler som disse (eller i infografikken "Hvilket kodningssprog skal jeg lære?", Som du sandsynligvis er fortrolig med), bliver du bedt om at tænke kritisk over, hvad du vil bygge, når du har lært at kode.

Denne tilgang er nyttig, hvis du har en idé om, hvad det er, du vil gøre med et programmeringssprog efter at have lært det, men ikke så meget, hvis du bare vil lære at kode , som det var min erfaring. Jeg dækker begge scenarier i denne artikel.

Hvis du ved, hvilken retning du vil tage din kodekarriere efter at have lært et programmeringssprog, har du højst sandsynligt lettere ved at finde ud af, hvilket sprog du skal lære først. Her er nogle forslag i så fald.

Front End Development: JavaScript (og HTML / CSS)

Hvis du allerede ved, at du vil arbejde på "frontend" på websteder - hvilket betyder alt, hvad brugeren ser, når de kommer til et websted - skal du begynde din kodningsrejse med at lære JavaScript. Du starter sandsynligvis med at lære HTML og CSS, som udgør rygraden på næsten ethvert websted, og derefter begynde at tilføje JavaScript for at forbedre funktionalitet og interaktivitet til dine websteder.

JavaScript er ret allestedsnærværende som programmeringssprog og har en lettere rampe end andre sprog på lavere niveau som C ++. Det er et godt startpunkt, hvis du ikke ved, hvad du vil lære ... men mere om det senere.

Back End Development: Python, C # eller JavaScript (og SQL)

Lad os sige, at du er mere interesseret i at lære om tarmene på websteder, styre "back end" og prøve din hånd til databaseadministration. Du har mange muligheder her, og den mest ligefremme vej er Python, som er et begyndervenligt sprog, der har modne rammer (f.eks. Django og Flask) til back-end-udvikling.

Du kan heller ikke gå galt med C #, som vil udsætte dig for Microsofts .NET-økosystem og et programmeringssprog, der, når du først kommer ind i ukrudtet med det, er en fornøjelse at arbejde med. Og hvis du overvejer at gå "full stack" - hvilket betyder, at du vil udvikle frontend og back-end - kan du overveje at lære JavaScript, som har yngre, men meget værdsatte back-end-rammer som Express og Koa. Dette gør det også lettere for din indlæringsproces, da du bruger det samme sprog til at kode begge stakke.

Uanset hvilket sprog du vælger til back-end-udvikling, vil du sandsynligvis også ende med at tilføje SQL til din værktøjskasse til databasestyring, så læg det på din radar.

2D-spiludvikling: JavaScript eller C #

Jeg har skrevet andetsteds om, hvilken motor du skal bruge til at lave 2D-spil, men her er den tynde.

Der er mange 2D-spilmotorer, hvoraf mange måske eller måske ikke passer til din fantasi som spiludvikler, og hver med deres egne fordele, idiosynkrasier og indlæringskurve. Nogle af dem, som f.eks. Game Maker Studio 2, bruger deres egne proprietære sprog til at køre scripts, men jeg vil faktisk anbefale, at du først lærer JavaScript eller C #, selvom du overvejer at bruge en anden spilmotor i det lange løb .

Med JavaScript kan du bruge rammer som Phaser til at lave 2D-spil eller fuldt udstyrede motorer som Construct 3 (som faktisk bruger træk-og-slip-udvikling med plads til brugerdefinerede scripts). Hvis du vælger at lære C # i stedet, arbejder du med Unity 2D eller måske MonoGame - men jeg vil faktisk anbefale at starte med ikke-motoriske tutorials (f.eks. NET) for først at få et godt håndtag på sproget.

At lære JavaScript eller C # vil give dig den grundlæggende kodningskendskab, du har brug for for at tackle en anden spilmotor, som Game Maker, samtidig med at du også får ting som programmering af bedste praksis og ren kodeorganisation.

3D-spiludvikling: C # eller C ++

Der er mange muligheder for at lære at kode til 3D-spiludvikling, og jeg vil foreslå, at du starter med C # eller C ++. Faktisk, medmindre du er superteknologisk eller allerede har en baggrund i programmering, vil jeg anbefale dig at starte med C # og arbejde dig ned til C ++. Du får en lettere indlæringskurve og lærer grundlæggende programmeringskoncepter uden at skulle beskæftige sig med ting som hukommelsesstyring og kode på lavere niveau.

Du vil sandsynligvis afslutte med at lære begge steder under alle omstændigheder, men hvis du starter med C #, kan du rode rundt med Unity 3D og derefter komme dig til C ++ med Unreal Engine 4.

Datalogi / maskinindlæring: Python

Selvom der er muligheder på andre sprog til læring af datavidenskab / analyse og maskinindlæring, er Python i øjeblikket guldstandarden for dette kodningsområde. Det er et ret ligetil sprog at lære og udsætter dig for gode programmeringsvaner og udbredte rammer, så du kan ikke gå galt her.

Scenarie nr. 2: Du ved ikke, hvad du vil bygge

Der er den tydelige mulighed for, at du har brugt dage, uger eller endda måneder på at søge gennem artikler, videoer, reddit-indlæg og Stack Overflow-spørgsmål, der læser om programmeringssprog, og stadig ikke har nogen idé om, hvor du skal investere din tid, fordi du ikke ved hvad du vil bygge.

Jeg har været der. Det er irriterende.

Min anbefaling til dig, så kort som det kan synes, er at bare vælge en. Bogstaveligt talt en af ​​dem, selvom de ikke er angivet her. Gå og lær JavaScript. Eller Python. Eller rust. Eller Haskell.

OK, måske ikke Haskell. Men vælg noget , og hold fast ved det længe nok til at lære det grundlæggende og se, om der er en mulighed for, at du måske vil bruge det sprog til at bygge med det. Og husk to ting, mens du gør det:

  1. Angiv en tidsfrist for dig selv. Som "Jeg tager de næste tre måneder at lære JavaScript ved hjælp af gratisCodeCamp-selvstudier." Hvis du i slutningen af ​​denne periode har lyst til at gøre fremskridt, og det er interessant for dig, så fortsæt! Hvis ikke, kan det være tid til at genoverveje dit valg af sprog og se, om der er noget derude, der måske passer bedre til dig.
  2. Byg noget, der ikke er i dine tutorials. Dette er et afgørende skridt i din vækst som udvikler. Jeg dækker det i næste afsnit.

Scenarie # 3: Du sidder fast i Tutorial Furgatory

Hvis du har fundet dig selv i at lave tutorial efter tutorial på de samme eller forskellige hjemmesider uden nogensinde at føle, at du gør fremskridt, kan du blive virkelig frustreret over oplevelsen af ​​at lære at kode. Jeg har været der og kan hjælpe.

Det første trin er at overveje, hvilke programmeringsvejledninger der er gode til, og hvad de ikke er. De fleste online tutorials - især dem, der giver dig mulighed for at kode lige i browseren - er fremragende til at lære dig at programmere.

De er på den anden side ikke gode til at lære dig, hvordan du skal være programmør.

De bedste tutorials udsætter dig for grundlæggende kodningskoncepter og kræver, at du anvender den viden til at løse gåder og projekter. De er vidunderlige læringsværktøjer, der, hvis de bruges uden for deres anvendelsesområde, kan blive krykker, der vil kvæle din læring.

En programmør sidder for eksempel ikke hele dagen og laver selvstudier. En programmerer programmerer , og det er netop det, du skal gøre for at gøre fremskridt, når du har mestret det grundlæggende.

Den bedste måde at gøre fremskridt på som udvikler er at vælge et projekt på dit sprog og vælge at gøre det. Hvis du f.eks. Lærer JavaScript, kan du vælge at opbygge et simpelt websted med HTML / CSS og tilføje noget interaktivitet med jQuery. Du starter sandsynligvis med at oprette et integreret udviklingsmiljø og straks glemme, hvordan du gør noget, som du lærte i dine tutorials, bliver frustreret, gå til Google, find svaret og fortsæt. Derefter vil du gøre fremskridt, sidde fast, søge i Stack Overflow, klø dig i hovedet på den officielle dokumentation, måske dele din kode med nogen og gentage hele processen.

Og du gør præcis, hvad programmører gør, når de bygger et nyt projekt.

Endelig kan du virkelig ikke gå galt med, hvilket programmeringssprog du vælger, selvom det ikke er på denne liste. Hvis du ender med at vælge en, lære det grundlæggende, lave et projekt og beslutte, at det ikke er noget for dig, vil den oplevelse faktisk stadig hjælpe dig i det lange løb. De oplysninger, du lærer i processen, vil være nyttige, uanset hvilket sprog du ender med at bruge til dine projekter.

Du kan gøre det!

Hvis du kunne lide denne artikel, kan du overveje at tjekke mine spil og bøger, abonnere på min YouTube-kanal eller deltage i Entromancy Discord.

MS Farzan, Ph.D. har skrevet og arbejdet for højt profilerede videospilvirksomheder og redaktionelle websteder som Electronic Arts, Perfect World Entertainment, Modus Games og MMORPG.com og har fungeret som Community Manager for spil som Dungeons & Dragons Neverwinter og Mass Effect: Andromeda . Han er Creative Director og Lead Game Designer af Entromancy: A Cyberpunk Fantasy RPG og forfatter af The Nightpath Trilogy . Find MS Farzan på Twitter @sominator.