FYI.

This story is over 5 years old.

Tecnologia

Imparare a programmare deve essere difficile

Oggi imparare a programmare è semplice, ma farlo nella maniera più difficile è importante e deve continuare a esserlo.

È arrivato l'anno nuovo, ciò significa che molti di noi si stanno riempieno di buoni propositi per rendere il 2016 migliore, più salutare e ancora più ricco di esseri umani di valore.

Uno dei propositi più diffusi è (ancora) imparare a programmare. Con la crescente popolarità dei siti dedicati all'e-learning, bootcamp per sviluppo web e altre istituzioni for-profit impegnate a insegnare la programmazione, si è creato un ciclo continuo che si rinnova di anno in anno—ma l'occasione dell'Anno Nuovo è un momento speciale per la crescita di questi novelli appassionati. Impara a programmare: è facile!

Pubblicità

Dal sito di edX: "Diventa il genio che progetta e controlla i dispositivi digitali, i siti web, le app e tutto ciò con cui interagiamo ogni giorno." Affascinante, vero?

Ho partecipato a diversi corsi di informatica e di programmazione dell'edX, di solito per rinfrescare qualche concetto o approfondire qualche lezione fatta all'università (raramente completandoli, i corsi), ed erano tutti piuttosto buoni. Ho anche partecipato a corsi di Coursera, Udacity, Stanford's Lagunita (basato sulla piattaforma di edX), e del MIT OpenCourseWare (che sembra più una piattaforma aperta a tutti, che un vero e proprio corso). Tutti ottimi punti di partenza, e accessibili al comodo costo di 0 dollari (anche se spesso puoi pagare per ottenere lezioni più approfondite e per effettuare test necessari a ottenere certificati o "nanolauree").

È tutto pronto, quindi, per essere appreso. Dovresti farlo? Dovresti imparare a programmare? No. Mi spiego, sì, dovresti imparare a programmare, ma non con un corso che ti vuole insegnare le basi del linguaggio JavaScript e la sua sintassi. Ci sono davvero molti corsi così, e se scrivessi su Google "imparare a programmare" probabilmente uno dei primi risultati corrisponderebbe ad una introduzione al JavaScript.

Non fare quel corso. Se vuoi creare dei siti web a un certo punto sarà necessario imparare il JavaScript, ma non cominciare con quello. Una volta che avrai capito come funziona la programmazione e come i linguaggi di programmazioni interagiscono con le macchine e con il web, imparare il JavaScript sarà una cosa da nulla.

Pubblicità

La differenza tra imparare a programmare e imparare che cos'è la programmazione è abbastanza evanescente. Bisogna utilizzare il codice per conoscerlo, ma ci sono vie migliori e peggiori per farlo. Quelle migliori sono ovviamente più difficili, meno immediate e richiedono più tempo. Mi dispiace, ma, alla fine, ti daranno molte più soddisfazioni. Ho imparato a programmare in C presso un community college, e non avrei potuto farlo in altro modo. Come è solito fare nei programmi di laurea in informatica, questa introduzione è stata spalmata su due corsi consecutivi in due quadrimestri accademici consecutivi. All'inizio non m interessava granché l'argomento—ero lì per una laurea in ingegneria elettronica, e quei corsi erano richiesti—ma ho finito per appassionarmi all'argomento, scegliendo, infine, di seguire la laurea in informatica fino ad essere accettato in un vero e proprio corso di laurea.

Se vuoi creare dei siti web dovrai imparare il JavaScript prima o poi, ma non cominciare con quello.

Non ero un grande fan della sintassi di programmazione o della manipolazione delle librerie e dei framework. Non ero fan nemmeno del jQuery o del Bootstrap. Adoravo risolvere problemi, e gli algoritmi. Questo è un fattore unico alla programmazione: l'immediato e continuo bisogno di risolvere problemi. Per me, programmare era un po' come risolvere un puzzle (o meglio, programmare è risolvere un puzzle), o una battaglia finale con un boss in un videogioco. A un certo punto ci finisci così dentro che la programmazione comincia a invadere anche i tuoi sogni. È strano: finisci per sognare gli algoritmi.

Pubblicità

Per imparare a programmare, per comprendere la programmazione, dovresti imparare linguaggi sulla falsariga del C—idealmente, il C stesso, ma anche il C++, il Java o il Python andranno benissimo. Il punto è imparare a programmare sin dallo scheletro dei software stessi, ignorando, almeno all'inizio, tutta la fuffa che vi sta attorno.

Questo è ciò che è il C—un linguaggio di programmazione duro e puro e ancora attualissimo. Il C è un linguaggio facilmente eludibile, e molti dei "figli" del C esistono proprio per tappare le falle lasciate dal C stesso.

Il problema è che questo tipo di problemi non spariscono se programmi con un linguaggio più user-friendly, semplicemente, si nascondono meglio. Col tempo, quando la programmazione diventerà sempre meno "imparare" e sempre più "fare", questo tipo di concetti torneranno decisamente utili.

Il punto è che molti aspetti della programmazione sono progettati a partire da costrutti fondamentali: le strutture di controllo, i meccanismi di loop e ripetizione, le strutture dati. Anche se i tuoi piani corrispondono soltanto al programmare il template migliore del mondo per il tuo sito web, dovresti poter comprendere come mettere assieme una lista concatenata (un costrutto che nel JavaScript non esiste).

Per fare ciò è necessario sapere che questi concetti esistono, e che il tuo template si costruisce proprio su di essi. Non deve necessariamente essere il C.

Il mio consiglio, in generale, è di seguire un'introduzione per qualunque corso di informatica, che sia su edX o da qualunque altra parte. Probabilmente si parlerà di Python, che va benissimo (il Python è un ottimo linguaggio). Una volta finito quel corso difficilmente avrai le conoscenze per creare un bel template, più probabilmente avrai un programmino da linea di comando che ti permetterà di sapere se un numero è primo o meno.

Segui questa strada e, alla fine, avrai conoscenze mille volte più utili di quelle che avresti ottenuto seguendo qualsiasi altra strada. Imparare a programmare è importante, farlo nella maniera più difficile ancora di più.