Imparare a programmare

di Lorenzo Neri
0 commento 465 visualizzazioni

Imparare a programmare.

È una cosa molto complessa e intricata, ma facile.

Ma ti risponderò nel modo più completo possibile.

Innanzitutto, cerchiamo di capire cosa significa “programmare”.

Se guardiamo una delle definizioni classiche, “programmare” significa:

“Organizzare il lavoro secondo criteri stabiliti in vista di un fine”

Certo, tutto molto bello e poetico, ma questo cosa mai avrà a che vedere con la programmazione? 

Se sei su questa pagina, è perchè vuoi sapere come imparare a programmare: ovvero scrivere codice per realizzare software.

Per codice, intendo quell’insieme di parole strane, simboli criptici e tante parole in #tecnichese da far venire un mal di testa incredibile a chiunque.

Partiamo dalla base quindi: la definizione di prima è più che giusta, ma non basta.

Programmare, nel caso dell’informatica, significa senza dubbio organizzare il lavoro secondo criteri stabiliti in vista di un fine, ma dobbiamo aggiungere qualcosa.

Prima di tutto, questo lavoro deve essere automatico.

Ma ancora prima di tutto, bisogna voler risolvere un problema.

Se prendiamo la definizione di “programmare” e la uniamo a quello che si fa effettivamente quando si scrive codice, otteniamo il vero significato di programmare, quindi scrivere codice davanti a un computer:

“Risolvere un problema grazie a un lavoro automatico organizzato secondo criteri stabiliti in vista di un fine”.

Convieni con me che questa frase è veramente cacofonica e usa un linguaggio veramente #tecnichese?

Rendiamola comprensibile, così che anche mio nonno possa capire, ma aggiungiamo un pezzo.

“La programmazione è la scienza che permette di risolvere problemi e creare soluzioni in maniera automatica, tramite delle regole che scriviamo noi stessi.“

Le regole non sono nient’altro che il codice. Il codice, è l’insieme di parole strane e simboli di cui parlavamo prima:

public class Hello {

   public static void main(String[] args) {

      System.out.println("Hello, World!");

   }
}

Un esempio di codice: ci capisci qualcosa tu?

Ovviamente, non esiste soluzione se non va a risolvere un problema

Le soluzioni sono il software: quando creiamo un programma, un’applicazione, un software, un videogioco, un sito web, noi stiamo creando una soluzione a un problema specifico.

Non solo: stiamo cercando di renderlo automatico: il codice che scrivi funziona da solo (a meno che tu non abbia un montagna di bug da risolvere), non serve l’intervento umano.

… a meno che il tuo collega non abbia realizzato un foglio Excel come questo:

Risultato immagini per huge excel files
In tal caso serve eccome un bell’intervento, di pugni.

Chi è il programmatore

Perciò, possiamo dire che l’informatico, in particolare il programmatore rientra in questa definizione:

“Il programmatore è quella persona che attraverso ragionamenti e un linguaggio di programmazione trova una soluzione che risolve in modo automatico un problema.”

Ora che sappiamo cosa significa programmare e chi è il programmatore, voglio rispondere alla domanda fatidica che ti ha portato a leggere questo articolo:

“È difficile imparare a programmare?”

La risposta si trova tra qualche riga, ma non avrebbe senso risponderti sin da subito.

Nella mia vita da informatico (quella sottospecie di umano che trasforma caffè, birra e insulti contro le divinità in codice) ho sempre avuto una grande curiosità per altre scienze quali: psicologia, sociologia, comunicazione, marketing, per non parlare della finanza… 

No, non quella che ti viene a controllare con il cane se hai le bustine dietro la libreria!

… Sto divagando, torniamo a noi.

Non ho potuto fare a meno di notare in questi anni che le persone si spaventano molto di fronte all’uso di un computer: figuriamoci se gli si propone di imparare a programmare.

Si viene costantemente bombardati da mille messaggi legati al mondo del lavoro: 

Al contempo, uno dei misteri su cui voglio indagare, è perché gli informatici in molti casi sono figure arroganti, piene di odio e disprezzo verso il prossimo.

Risultato immagini per how it sees users
Ecco come un informatico vede più o meno i suoi amici e colleghi


…Sì appunto, non bisogna fare di tutta l’erba un fascio.

Tutta questa serie di motivi, porta a pensare che sia veramente difficile imparare a programmare, una delle cose più criptiche al mondo.

È tutta una farsa

Facciamo un grande esempio: pensiamo a guidare.

Se ti piazzo davanti una Ford Fiesta WRC e ti dico: “Hai 5 minuti per attraversare questa strada in mezzo al bosco, buona fortuna”.

Come la prenderesti?

Animated GIF
Ecco un chiaro esempio di quello che dovresti fare con una Ford Fiesta WRC: velocità media, circa 180Km/h

Ho la vaga idea che la tua prima reazione sia questa:

Risultato immagini per messi italian gesture

E mi stupirebbe il contrario: se così fosse avvisami, adoro il rally.

È necessario fare qualche passo indietro.

Se hai la patente da 10 anni, non dovrebbe essere un problema affrontare un viaggio di 3000km, sei abituato a guidare.

Se ce l’hai da un anno, forse è meglio limitarsi ad andare fino alla città limitrofa: hai interiorizzato i concetti, ma devi renderli un automatismo.

Se non ce l’hai, devi fare scuola guida.

E qui possono succedere un bel po’ di cose:

  • Hai un insegnante che ti fa capire i tuoi errori, ma soprattutto come non ripeterli e migliorare di volta in volta;
  • Hai un insegnante che ti cazzia di continuo, non ti spiega dove sbagli e ha provato più volte a lanciarti fuori dal finestrino in corsa;
  • Hai dei compagni con i quali non si riesce a fare lezione e ti mettono un sacco di dubbi. Non riesci nemmeno a capire se scriva “STOP” o “SOTP”;
  • Pur avendo a che fare con una classe incasinata, un istruttore di guida che sarebbe meglio gettare nel tritacarne, puoi fare affidamento su qualcun altro che ti possa rendere la strada verso l’obiettivo quanto più lineare possibile;
  • Lasci stare, mandi tutti al diavolo e continui a usare la bicicletta;

La stessa cosa succede con la programmazione.

Per rispondere finalmente alla domanda:

Imparare a programmare non è difficile

Può essere strano, può essere insolito all’inizio, ma se vuoi imparare a fare qualcosa di complesso nella vita, che sia programmare, che sia suonare la chitarra con i denti, o come dicevo prima, portare una macchina da rally a 200Km/h e rotti in mezzo ai boschi finlandesi… Ci sono un po’ di cose da fare prima.

Innanzitutto, bisogna partire dalle basi.

Siccome tutti quanti lo studiano, si trova lavoro subito e si viene pure pagati bene, allora decidi anche tu di partire in quarta con uno dei linguaggi più brutali (e secondo me più brutti) del mondo:

public class Hello {

   public static void main(String[] args) {

      System.out.println("ciao");

   }
}

Quello che hai di fronte a te è il linguaggio di programmazione Java e tutto questo blocco di codice serve a mostrare a video la parola “ciao”.

Che spreco, non è vero?

Forse è meglio partire da un linguaggio di programmazione più semplice, come Python:

print("ciao")

Una sola riga di codice per mostrare a video la parola “ciao”: semplice, no?

Sto correndo troppo: 

Cos’è un linguaggio di programmazione?

In base ai nostri obiettivi, in base alle famose soluzioni da creare di cui parlavamo all’inizio, esistono tanti linguaggi di programmazione. 

I computer per fortuna e per sfortuna non sono così intelligenti: per creare un software, dobbiamo scriverlo in un linguaggio di programmazione.

Per tornare alla super definizione di prima così che lo capisca anche vostro nonno:

“Un linguaggio di programmazione, è una lingua con la quale scriviamo le regole della nostra soluzione per risolvere un problema in automatico”

Infatti, l’ostacolo numero uno per chi vuole imparare a programmare, è il linguaggio di programmazione stesso: ne viene scelto uno complicato.

Anche se… 

Per imparare a programmare, non serve imparare un linguaggio di programmazione.

Infatti, la miglior arma di un informatico non è il linguaggio di programmazione, ma la sua testa.

A seguire, vediamo il secondo motivo per cui imparare a programmare non è difficile.

Avere un obiettivo.

Hai in mente un’applicazione supermega figa che ti renderà milionario?

Ti hanno detto che chi fa l’ingegnere viene pagato un botto e quindi ti sei iscritto a ingegneria informatica?

Ti stai facendo trascinare dai giornali che continuano a dirti che fare l’informatico è la professione meglio pagata al mondo e lo sarà per i prossimo 20 anni?

Hai passato talmente tante ore davanti alla PlayStation che il contatore sul tuo account PSN ha sforato il limite massimo e quindi vuoi realizzare videogiochi?

Ecco, la frase che sto per dire, è per il tuo bene:

“Questi non sono obiettivi: sono stronzate.”

Permettimi di dirlo: quelli non sono obiettivi, sono desideri e alcuni di questi molto pericolosi.

Se stai cercando di imparare a programmare solo perchè tuo cuggino ti ha detto che pagano bene ed è per questo che stai tirando bestemmie su ogni singolo esame che devi affrontare in università… Fermati un momento a riflettere sul perché lo stai facendo.

E di fatto vorrei portarti a leggere questo articolo: Perchè imparare a programmare

Vediamo il terzo motivo per cui imparare a programmare non è difficile:

Hai insegnanti formidabili

Non smetterò mai di ripeterlo: se la programmazione ti sembra di una noia mortale, significa che l’insegnante che hai di fronte non è degno di essere chiamato tale.

Naturalmente esistono differenti percorsi nel mondo che ti permettono di imparare a programmare.

Qual è il miglior percorso? La risposta non è facile e tantomeno scontata, ma di certo, puoi trovare in questo articolo molte risposte.

Quarto motivo:

Circondati di persone con cui confrontarti genuinamente

Parliamoci chiaro: “Non tutti i maghi sono buoni Harry”

Rubeus Hagrid

Esistono tanti forum, gruppi Facebook dove le persone meno esperte in materia sono il bersaglio preferito dei più… Saccenti, esatto non “esperti”, saccenti.

Non aspettano altro che vomitare la propria frustrazione addosso al prossimo:

  • “La tua domanda è stupida”
  • “Leggi quel libro”
  • “Let me Google that for you”
  • “Ecco il prossimo cogli1 che manderà a rotoli l’azienda”
  • “Cambia lavoro”

…Non credere sia tanto differente in università, ma specialmente al lavoro.

Ebbene sì, se sei in un ambiente tossico, dove le persone attorno a te che possono esserti di aiuto e potrebbero contribuire alla tua crescita personale sono in realtà una manica di… stronzi, allora c’è veramente qualcosa che non va.

E no, non sei tu.

E finalmente, arriviamo al motivo più importante di tutti:

Essere curiosi e voler sempre imparare cose nuove

Un vecchio detto recita “Trova il lavoro che ami e non lavorerai un giorno della tua vita”.

In questo mondo le cose cambiano un po’:

“Innamorati dell’informatica e della programmazione, la studierai fino alla fine dei tuoi giorni, non per obbligo, non per guadagno, ma per tuo stesso diletto”

Ebbene sì: l’informatica, ma in particolar modo la programmazione, è un mondo in costante evoluzione e c’è sempre qualcosa di nuovo da imparare. 

No, se te lo stai chiedendo non è un discorso di “pura evoluzione tecnologica”, ma di curiosità.

Certo, questo mondo è frenetico e si evolve a velocità disumane, ma ti posso assicurare che se davvero hai passione, la tua curiosità sarà maggiore della velocità evolutiva di questo mondo.

Non solo: ci sono anche differenti strumenti secondari da scoprire che ti renderanno unico rispetto a tanti altri informatici e possono fare la differenza nel mondo del lavoro.

Ovviamente arrivato a questo punto dell’articolo, è altamente probabile che nella tua testa riecheggi questa domanda:

Lorenzo ma io che ca… devo fare per imparare a programmare?

Puoi iniziare con il mio corso completamente gratis: 

Impara a programmare portando il gatto a far la spesa.

Anche se parti da zero.

Ovviamente, se non ti bastasse, voglio lasciarti tutte le linee guida possibili dopo 10 anni di esperienza:

Non sei ancora sazio? Ho diversi contenuti gratuiti che possono aiutarti a fare la differenza nella tua carriera!

Potrebbero interessarti

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più