Come scegliere un linguaggio di programmazione e Escape Tutorial Purgatory

Qualche settimana fa, ho pubblicato la mia esperienza nel tentativo di imparare JavaScript, C #, Python e altro da Codecademy, Udemy e freeCodeCamp, oltre a fuggire dal purgatorio dei tutorial e fare effettivamente progressi come sviluppatore.

Decidere su un linguaggio di programmazione può essere estremamente impegnativo e dispendioso in termini di tempo poiché ci sono dozzine di opzioni là fuori, con molte informazioni contrastanti. In questo articolo, condividerò alcune opzioni basate sulla mia esperienza di apprendimento del codice, con suggerimenti su come scegliere un linguaggio di programmazione, sfuggire al purgatorio del tutorial e fare progressi come sviluppatore.

Se preferisci, ecco una versione video di questo post (visualizzazione di 11 minuti):

Scenario n. 1: sai cosa vuoi costruire

Spesso, in articoli come questi (o nell'infografica "Quale linguaggio di programmazione dovrei imparare?" Con cui probabilmente hai familiarità), ti viene chiesto di pensare in modo critico a ciò che vuoi costruire dopo aver imparato a codice.

Questo approccio è utile se hai un'idea di cosa vuoi fare con un linguaggio di programmazione dopo averlo appreso, ma non tanto se vuoi solo imparare a programmare , come è stata la mia esperienza. Tratterò entrambi gli scenari in questo articolo.

Se sai in che direzione vuoi prendere la tua carriera di programmatore dopo aver imparato un linguaggio di programmazione, molto probabilmente ti sarà più facile capire quale lingua imparare per prima. Ecco alcuni suggerimenti in tal caso.

Sviluppo front-end: JavaScript (e HTML / CSS)

Se sai già di voler lavorare sul "front-end" dei siti web, ovvero tutto ciò che l'utente vede quando accede a un sito web, dovresti iniziare il tuo viaggio di codifica imparando JavaScript. Probabilmente inizierai imparando HTML e CSS, che costituiscono la spina dorsale di quasi tutti i siti Web, quindi inizierai ad aggiungere JavaScript per migliorare la funzionalità e l'interattività dei tuoi siti.

JavaScript è abbastanza onnipresente come linguaggio di programmazione e ha una rampa di accesso più semplice rispetto ad altri linguaggi di livello inferiore come C ++. È un ottimo punto di partenza se non sai cosa vuoi imparare ... ma ne riparleremo più avanti.

Sviluppo back-end: Python, C # o JavaScript (e SQL)

Supponiamo che tu sia più interessato a conoscere il coraggio dei siti web, a gestire il "back-end" e a cimentarti nell'amministrazione del database. Hai molte opzioni qui, e il percorso più semplice è Python, che è un linguaggio adatto ai principianti che ha framework maturi (ad esempio Django e Flask) per lo sviluppo back-end.

Inoltre, non puoi sbagliare con C #, che ti esporrà all'ecosistema .NET di Microsoft e a un linguaggio di programmazione che, una volta entrato nelle erbacce con esso, è un piacere con cui lavorare. E se stai pensando di diventare "full stack", ovvero vuoi fare sviluppo front-end e back-end, potresti prendere in considerazione l'apprendimento di JavaScript, che ha framework di back-end più giovani ma molto apprezzati come Express e Koa. Ciò faciliterà anche il tuo processo di apprendimento poiché utilizzerai la stessa lingua per codificare entrambi gli stack.

Qualunque lingua tu scelga per lo sviluppo back-end, molto probabilmente finirai anche per aggiungere SQL alla tua casella degli strumenti per la gestione del database, quindi mettilo sul tuo radar.

Sviluppo di giochi 2D: JavaScript o C #

Ho scritto altrove su quale motore dovresti usare per creare giochi 2D, ma ecco lo skinny.

Esistono molti motori di gioco 2D, molti dei quali possono o non possono soddisfare la tua fantasia di sviluppatore di giochi, e ognuno con i propri vantaggi, idiosincrasie e curva di apprendimento. Alcuni di loro, come Game Maker Studio 2, ad esempio, utilizzano i propri linguaggi proprietari per eseguire gli script, ma in realtà ti consiglio di imparare prima JavaScript o C #, anche se stai pensando di utilizzare un motore di gioco diverso a lungo termine .

Con JavaScript, puoi utilizzare framework come Phaser per creare giochi 2D o motori con funzionalità complete come Construct 3 (che in realtà utilizza lo sviluppo drag-and-drop con spazio per script personalizzati). Se invece scegli di imparare C #, lavorerai con Unity 2D, o forse MonoGame, ma in realtà ti consiglio di iniziare con esercitazioni non basate sul motore (ad esempio .NET) per ottenere prima una buona conoscenza del linguaggio.

L'apprendimento di JavaScript o C # ti fornirà le conoscenze fondamentali di codifica necessarie per affrontare un altro motore di gioco, come Game Maker, fornendo anche cose come le migliori pratiche di programmazione e un'organizzazione pulita del codice.

Sviluppo di giochi 3D: C # o C ++

Ci sono molte opzioni per imparare a programmare per lo sviluppo di giochi 3D e ti suggerisco di iniziare con C # o C ++. In effetti, a meno che tu non sia un super esperto di tecnologia o abbia già un background nella programmazione, ti consiglio di iniziare con C # e lavorare fino a C ++. Avrai una curva di apprendimento più semplice e imparerai concetti fondamentali di programmazione senza dover affrontare cose come la gestione della memoria e il codice di livello inferiore.

Probabilmente finirai per imparare entrambi in ogni caso, ma se inizi con C #, puoi armeggiare con Unity 3D e poi passare a C ++ con Unreal Engine 4.

Data Science / Machine Learning: Python

Sebbene ci siano opzioni in altri linguaggi per l'apprendimento della scienza / analisi dei dati e dell'apprendimento automatico, Python è attualmente il gold standard per questo regno della codifica. È un linguaggio abbastanza semplice da imparare e ti esporrà a buone abitudini di programmazione e framework ampiamente utilizzati, quindi non puoi sbagliare qui.

Scenario n. 2: non sai cosa vuoi costruire

C'è la chiara possibilità che tu abbia passato giorni, settimane o addirittura mesi a cercare articoli, video, post di reddit e domande su Stack Overflow leggendo sui linguaggi di programmazione e non hai ancora idea di dove investire il tuo tempo perché non lo sai cosa vuoi costruire.

Ci sono stato. È fastidioso.

Il mio consiglio per te, per quanto banale possa sembrare, è di sceglierne uno. Letteralmente uno qualsiasi di loro, anche se non sono elencati qui. Vai a imparare JavaScript. O Python. O ruggine. O Haskell.

OK, forse non Haskell. Ma scegli qualcosa e mantienilo abbastanza a lungo da imparare le basi e vedere se c'è la possibilità che ti piaccia usare quel linguaggio per costruire con esso. E tieni a mente due cose mentre lo fai:

  1. Stabilisci un limite di tempo per te stesso. Ad esempio, "Nei prossimi tre mesi imparerò JavaScript utilizzando i tutorial di freeCodeCamp". Se, alla fine di quel periodo, ti senti come se stessi facendo dei progressi ed è interessante per te, continua! In caso contrario, potrebbe essere il momento di riconsiderare la scelta della lingua e vedere se c'è qualcosa là fuori che potrebbe essere più adatto a te.
  2. Crea qualcosa che non è nei tuoi tutorial. Questo è un passaggio cruciale nella tua crescita come sviluppatore. Lo tratterò nella prossima sezione.

Scenario 3: sei bloccato nel Purgatorio del tutorial

Se ti sei trovato a fare tutorial dopo tutorial, sullo stesso sito o su siti diversi, senza mai sentirti davvero come se stessi facendo progressi, potresti essere davvero frustrato dall'esperienza di imparare a programmare. Ci sono stato e posso aiutarti.

Il primo passo è considerare a cosa servono i tutorial di programmazione e cosa non lo sono. La maggior parte dei tutorial online, in particolare quelli che ti consentono di programmare direttamente nel browser, sono eccellenti per insegnarti a programmare.

D'altro canto, non sono utili per insegnarti a essere un programmatore.

I migliori tutorial ti esporranno a concetti fondamentali di codifica e ti richiederanno di applicare tale conoscenza per risolvere enigmi e progetti. Sono meravigliosi strumenti di apprendimento che possono, se usati oltre il loro scopo, diventare stampelle che soffoceranno il tuo apprendimento.

Un programmatore, ad esempio, non si siede tutto il giorno a fare tutorial. Un programmatore programma , ed è esattamente quello che devi fare per fare progressi dopo aver imparato le basi.

Il modo migliore per fare progressi come sviluppatore è scegliere un progetto nella lingua che preferisci e iniziare a farlo. Se stai imparando JavaScript, ad esempio, potresti scegliere di creare un semplice sito web con HTML / CSS e aggiungere un po 'di interattività con jQuery. Probabilmente inizierai configurando un ambiente di sviluppo integrato, dimenticando immediatamente come fare qualcosa che hai imparato nei tutorial, ti sentirai frustrato, vai su Google, trova la risposta e vai avanti. Quindi farai progressi, ti bloccherai, cercherai Stack Overflow, grattati la testa alla documentazione ufficiale, magari condividi il tuo codice con qualcuno e ripeti l'intero processo.

E farai esattamente quello che fanno i programmatori quando costruiscono un nuovo progetto.

Infine, non puoi davvero sbagliare con il linguaggio di programmazione che scegli, anche se non è in questo elenco. Se finisci per sceglierne uno, imparare le basi, realizzare un progetto e decidere che non fa per te, quell'esperienza ti aiuterà comunque a lungo termine. Le informazioni che apprenderai durante il processo saranno utili, indipendentemente dalla lingua che finirai per utilizzare per i tuoi progetti.

Puoi farlo!

Se ti è piaciuto questo articolo, considera di dare un'occhiata ai miei giochi e libri, iscriverti al mio canale YouTube o unirti a Entromancy Discord.

MS Farzan, Ph.D. ha scritto e lavorato per società di videogiochi di alto profilo e siti web editoriali come Electronic Arts, Perfect World Entertainment, Modus Games e MMORPG.com, ed è stato il Community Manager per giochi come Dungeons & Dragons Neverwinter e Mass Effect: Andromeda . È il Direttore Creativo e Lead Game Designer di Entromancy: A Cyberpunk Fantasy RPG e autore di The Nightpath Trilogy . Trova MS Farzan su Twitter @sominator.