Gli errori che fanno tutti quando iniziano a programmare: evitali per evitare il disastro

di Lorenzo Neri
0 commento 125 visualizzazioni

Nel corso dei miei studi e delle mie esperienze lavorative, ho avuto modo di fare un sacco di errori e sbagliare un numero infinite di volte.

Durante la realizzazione di un progetto, quando dovevo aggiungere funzionalità nuove, mentre ascoltavo un cliente convinto di aver capito tutto e trovarmi completamente fuori strada, nel momento in cui volevo imparare un linguaggio di programmazione, ma soprattutto… Quando dovevo iniziare.

Queste righe ho cominciato a scriverle nel Dicembre 2019: sono passati esattamente 11 anni dalla mia prima riga di codice.

Sono sempre stato una persona molto curiosa e alquanto fuori dal classico schema: studio, università, lavoro, pensione.

Giusto o sbagliato sono solo parole: ciò che conta è trovare quello che ci rende più felici.

Nel corso di questi anni infatti, tra un esame universitario e l’altro, ho avuto modo di espandere me stesso tramite differenti esperienze lavorative, inclusa quella che sto facendo con questo blog.

Ho fatto stage, lavorato per piccole imprese, una multinazionale, come esercitatore in università, come docente per scuole private e insegnante privato, da freelance per conto di diversi clienti, da infoimprenditore (grazie a quest’ultima attività stai leggendo queste righe), insomma… Ne ho viste di cotte e di crude, di ogni colore possibile.

Nel mondo italiano non è affatto comune vedere di buon occhio un 26enne che dispensa consigli, ma in generale si ha sempre la concezione che ciò che viene insegnato a scuola sia sufficiente per affrontare la realtà che ci aspetta una volta ottenuto “il foglietto di carta”.

Vorrei ardentemente che fosse così, ma finché non si sarà raggiunto quel livello sarò ben felice di aiutare tutte le persone che, come te, hanno deciso di non restare con le mani in mano e migliorare se stesse!

Arriviamo al dunque.

Focalizzarsi sul linguaggio di programmazione

Non smetterò mai di ripeterlo: non c’è cosa più sbagliata di focalizzarsi su un linguaggio di programmazione per imparare a programmare.

Non fraintendermi: non c’è niente di sbagliato nell’approfondire un linguaggio di programmazione per conoscerne tutte le potenzialità e sfruttarle al 100%.

Ciò che c’è di sbagliato, è focalizzarsi solo sul linguaggio, per perdere totalmente di vista quello che significa veramente imparare a programmare.

Imparare a programmare ha ben poco a che vedere con imparare un linguaggio di programmazione: posso certamente imparare a scrivere codice in Java, sapere ogni dettaglio possibile e inimmaginabile, ma se mi focalizzo solo su quello succede una cosa abbastanza brutta.

Ci si trova completamente spaesati di fronte a un nuovo linguaggio di programmazione.

Se sei agli inizi del tuo viaggio in questo mondo fatto di parole strambe e simboli poco comprensibile, focalizzarti su un linguaggio di programmazione sarà la tua prima rovina.

Imparare a programmare è tutt’altro.

Programmare non è nient’altro che un metodo, uno strumento, un sistema, per creare soluzioni automatiche a fronte di un problema.

Il problema, è che i problemi (scusa, non ho resistito per questo gioco di parole) sono di natura differente.

Può succedere che tu debba realizzare un sito web: in tal caso ti servirà sapere JavaScript e magari PHP.

Capita che ti venga chiesto di realizzare degli script leggeri per un server Linux: Python diventa un ottimo alleato.

Salta fuori la richiesta di fare un videogioco per smartphone: Unity, che si basa su C#, è uno strumento veramente potente.

Ma sai cosa c’è in comune a tutti questi scenari?

La risoluzione di un problema e la creazione di una soluzione.

E no, non ha importanza il linguaggio di programmazione, ciò che conta davvero sono le tue abilità di problem solving.

E queste, le ottieni semplicemente utilizzando carta e penna: ne ho parlato in modo più approfondito nel mio articolo “Con quale linguaggio iniziare a programmare”.

Ma per farla breve: se sai ragionare come un informatico, se sai come si struttura un programma, posso assicurarti che potrai imparare qualsiasi linguaggio di programmazione in pochi giorni o settimane.

Usarlo e diventare una figura professionale ben qualificata è un altro discorso: lì, ci vuole tempo, dedizione e sudore.

Utilizzare sempre i soliti ragionamenti

Sei riuscito a creare un programma: sei felice tu e probabilmente lo è il tuo cliente, il tuo datore di lavoro, oppure il professore di turno.

Magicamente ti viene posto un altro problema da risolvere e ti accorgi che le strategie usate fino ad oggi non funzionano.

È cosa molto comune, soprattutto se sei ai tuoi primi passi, focalizzarsi su un unico metodo per risolvere i problemi e scrivere programmi.

Non c’è niente di più sbagliato in tutto ciò: un problema, sia esso un esame universitario, una verifica in classe, una feature da aggiungere al software a cui stai lavorando coi tuoi colleghi, ha sempre e comunque mille strade diverse per essere risolto.

L’errore infatti, è essere convinti che se una strada funziona, allora funzionerà sempre.

Tieni a mente questo concetto: se la soluzione numero 1 non ha funzionato, è perché non hai ancora utilizzato le altre 99.

Non sperimenti mai

Penso che la figura di Thomas Alva Edison sia stata sfruttata in modo indecente per spiegare questo concetto: quindi, lo farò anche io.

Se non ti fa scattare niente quel nome, eccolo qui:

Risultato immagini per thomas edison

Sì, Edison è l’uomo che ha donato all’umanità la lampadina.

Un’opera di ingegno, intelletto, audacia, ma soprattutto… Frutto di errori, sbagli, schifezze e testa sbattuta mille volte contro il muro.

Edison ha fatto migliaia di esperimenti prima di inventare la lampadina e sai qual è il suo pensiero a riguardo?

Non ho fallito, ho solamente trovato 10.000 metodi che non funzionavano.

E vorrei che facessi altrettanto tu.

Se stai imparando a programmare grazie ai miei contenuti, a un libro, alle lezioni in università o in qualche corso online, ti invito a non fare questo. 

Ovvero: fermarti sugli esempi e il materiale che ti viene fornito.

Prendi quegli esercizi ed esempi: stravolgili. Mettici del tuo. Modificali, ribaltali.

Chiediti sempre “Cosa succede se faccio questo? E se tolgo quest’altro? E se modifico queste tre righe?”

Sii come un bambino con uno scatolone di pezzi LEGO a sua disposizione: giocaci. Senza alcun limite.

Fai generare errori, crea interfacce grafiche inguardabili, arriva persino a bruciare 1 milione di righe di un database (magari non quello di un tuo cliente, eh…).

Parola d’ordine: sperimenta, sperimenta, sperimenta.

Non sei curioso

Molte persone una volta che ottengono un lavoro o imparano con dedizione e amore totale un linguaggio di programmazione in particolare… Fanno la muffa.

Ti sei mai chiesto se il linguaggio di programmazione che stai usando oggi, sarà valido per i prossimi 10 anni?

Hai mai pensato se ci sono state delle evoluzioni di rilievo nel mondo in cui vorresti o ti stai specializzando?

Non lo dirò mai abbastanza: il mondo della programmazione è talmente vasto che non basterebbe una vita per studiarlo tutto (purtroppo).

Non ha niente a che vedere con lo stare al passo coi tempi, ma con la propria evoluzione personale.

Ci sono un sacco di nuovi framework, librerie, ambienti di sviluppo, nuovi linguaggi la fuori che aspettano solamente te.

Sai cos’hai da perdere? Il tuo stesso tempo.

L’unico rischio che corri, è questo:

  • Trovare strumenti nuovi che possano migliorare i tuoi stessi lavori e servizi
  • Ridurre i tuoi tempi di sviluppo
  • Integrare nuove funzionalità
  • Affacciarti a novità che stimolano la tua stessa curiosità.

Stare alla larga da strumenti e metodi diversi

Così come per il concetto delle soluzioni, in questo mondo esistono un sacco di strumenti e metodologie di lavoro che ci permettono di migliorare notevolmente la qualità del nostro stesso lavoro.

Va bene essere scettici, non va bene essere restii ad ogni cambiamento.

Usare GIT, sistemi di condivisione del codice, leggere libri sui metodi di lavoro faranno una differenza abissale nella tua carriera.

I motivi sono essenzialmente questi:

  • Risparmi tempo
  • Capisci sin da subito che errori fai e come non ripeterli
  • Metti in dubbio i tuoi stessi metodi di lavoro: questo punto, è il più importante.
    Mettere in dubbio i tuoi stessi metodi di lavoro, ti fa capire quali sono le tue debolezze e i tuoi punti di forza.

Non posso che consigliarti il testo “Scrum: Doing twice work at the half of time

E se la parola “GIT” ti ha fatto illuminare gli occhi o ti ha lasciato perplesso, fai un salto qui!

Non ragionare sui propri errori

Capita anche ai migliori: stiamo sviluppando un codice e ci fermiamo per un sacco di ore sullo stesso errore.
Siamo fermamente convinti che quello che abbiamo scritto sia giusto al 100% e non c’è verso di cambiare idea.

In questi casi, per quanto la frustrazione possa impossessarsi di noi: c’è un solo ed unico trucco.

Alzati dalla scrivania.

Fatti una camminata.

Svuota la mente, bastano cinque minuti.

Rimanere fermo sullo stesso problema senza avere una soluzione ti fa perdere tempo, ti fa innervosire e abbassa l’autostima.

Hai bisogno di sgombrare la mente: solo dopo, potrai tornare a ragionare sugli errori che hai di fronte a te.

Imparare cose troppo difficili

Se hai appena iniziato a programmare e già da subito vuoi realizzare un gioco di ruolo multiplayer online o un’applicazione che sia in grado di teletrasportarti dall’ufficio a casa tua… 

…Devo proprio dirlo?

Non c’è verso: ci sono dietro troppe cose da sapere e se non hai mai scritto un programma succederà solo una cosa.

Getterai la spugna immediatamente.

Non sto dicendo che sia impossibile: ma non è di certo la strada migliore.

Lo stesso criterio vale per i linguaggi di programmazione: Java ad esempio, così come C#, per quanto possano farti fare un sacco di roba non sono adatti a un principiante assoluto.

Evitare il confronto con chi è più bravo

Se vuoi imparare davvero come si programma, trovati un mentore.

Se non ti piaccio io (non posso piacere a tutti), trova qualcuno che sappia davvero il fatto suo e ti possa aiutare a capire meglio questo mondo.

Può capitare di essere impacciati, si può essere timidi, a volte un po’ arroganti, ma il parere di un esperto, vale più di ogni altra cosa.

Confrontarsi con una persona dotata di competenze ed esperienze più grandi delle vostre può darvi molto più di quanto crediate.

Per un semplice motivo: è quasi sicuro che abbia fatto gli errori che dovreste evitare.

No, ce n’è un secondo ancora più importante: vi potrà offrire la sua ricetta per il successo.

Invitatelo a bere un caffè, a mangiare una pizza, chiedetegli di passare un pomeriggio assieme.

Io stesso lo faccio con altri colleghi del settore e ogni volta imparo qualcosa di nuovo.

Fare copia-incolla su Stackoverflow

Diciamocelo: Stackoverflow torna molto comodo se non ci si ricorda come si fa un ciclo in TypeScript oppure una chiamata asincrona in Java.

Allo stesso tempo, molte persone non addette ai lavori sono convinte che noi informatici non facciamo altro che copia-incollare codice.

La realtà è molto diversa: non possiamo ricordarci a memoria ogni singolo possibile pezzo di codice esistente, sarebbe impossibile.

Tuttavia, non è saggio copiare il codice su Stackoverflow e renderci conto che funziona.

Sì, funziona: ma tu hai capito cosa c’è scritto in quello che hai appena incollato nel tuo codice?

Questo è il vero problema: non c’è niente di sbagliato se non ti ricordi come si fa una cosa e vai a “rubarla” su Stackoverflow o altri siti (come il mio).

Quello che è sbagliato, è copiare senza capire.

Rischi solo di fare danni a te stesso e chi userà il tuo codice.

Perchè se vanno risolti dei bug o qualcosa non funziona, devi sapere come risolvere: la responsabilità è tua.

Passare da un video YouTube all’altro o consultare migliaia di forum

Tante persone credono di essere furbe dicendo “Mi seguo due/tre lezioni su YouTube oppure intaso di domande questo forum, tanto è gratis!”.

Non c’è niente di sbagliato nello sfruttare materiale gratuito, o non staresti leggendo questa guida!

C’è solo una serie di piccoli problemi.

Una volta che ti sei guardato i video su YouTube, ma hai dei dubbi, cosa fai? Aspetti diecimila anni prima che l’autore ti risponda?

E se non hai tempo per aspettarlo, intasi di mille post il forum o il gruppo Facebook di turno?

A questo punto succedono due cose, di solito:

  • Vieni bannato per spam
  • Diventi vittima di mille persone che ti propinano la loro soluzione facendosi la guerra a vicenda screditando gli altri

Questo, è un brutto risvolto delle community.

Non fraintendermi: puoi senza dubbio trovare la persona che si mette a disposizione e ti aiuta con interesse genuino, ma è raro.

In questi anni, e me ne rammarico tantissimo, succede proprio quello che dicevo prima.

Diventerai bersaglio di molte persone che, o devono far vedere che ne sanno più degli altri o devono sfogare la propria frustrazione dandoti dell’incapace.

Nel primo caso assisterai a discussioni che non hanno nulla da invidiare a un’arena dell’antica Roma, nel secondo caso… Pacca sulla spalla amico: di gente frustrata ne è pieno il mondo.

E chi ci rimette in tutto questo?

Ma naturalmente tu, mia cara vittima!

Dicevo all’inizio che è raro trovare una persona che si metta a disposizione per aiutarti al 100%.

Il motivo è uno solo: danno il massimo di sé per offrirti una soluzione funzionante, ti offrono una garanzia.

E di solito, chi sa offrirti una soluzione funzionante, ha studiato e si è rimboccato le maniche sudando sette camicie per offrirtela.

Tutto questo, va a braccetto con un unico concetto:

Se pensi che l’istruzione sia costosa, prova l’ignoranza.

Una persona istruita, con una certa esperienza alle spalle, che gode di ottime recensioni sa che il suo tempo e il suo cervello sono preziosi.

E non li svende. 

Non investire su se stessi

Quest’ultimo errore va a braccetto con il precedente.

È una cosa fin troppo comune nel panorama italiano.

Io stesso ero vittima di questo pensiero: tutto gratis è meglio, perchè mai devo spendere?

Questo retaggio culturale è fin troppo radicato nel nostro paese: guarda caso gli italiani non leggono.

Non lo dico io, ma lo dice l’ISTAT.  

Da ormai tre anni a questa parte, ho preso la sana abitudine di leggere non meno di tre libri al mese.

No, non parlo di romanzi fantasy, tantomeno di riviste di moda.

Libri del mio settore (programmazione, informatica, ecc.), di psicologia, di marketing, di finanza, insomma: libri che mi possano far migliorare come persona.

Non mi voglio limitare solo ai libri: anche i corsi.

Io stesso, nonostante abbia frequentato l’università, ho comprato diversi corsi tenuti dal vivo e online.

Ho perso il conto, ma tra libri, università e corsi secondari dovrei essere intorno ai 15.000€ di spesa negli ultimi sei anni.

Sono tanti soldi? Dipende.

A conti fatti quella cifra mi ha permesso di generarne circa 5 volte tanto da quando mi sono diplomato.

In altre parole: un investimento che mi ha generato il 500% in sei anni.

Cifre del genere sono da capogiro, eppure è la verità.

Vorrei che ti fermassi un momento per rispondere a questa domanda:

Quante cose inutili compri ogni mese per poi puntualmente lamentarti che i libri o i corsi costano troppo?

Scarpe che non metterai mai, ninnoli per la casa che prendono polvere, 10 cover per il cellulare che sono persino scomode, 5 drink in discoteca ogni weekend per puntualmente stare in coma sul divano tutto il giorno successivo… 

Devo andare avanti?

No, non sono qua a farti la morale e lo so: “Lorenzo io i miei soldi li spendo come ca… voglio!”

Nulla togliere a questa tua libertà: ma il mio messaggio è un altro.

Riflettici: spenderesti mai 100€ in un corso sapendo che ti permette di ottenerne 1000?

Solo uno sciocco direbbe “no”.

Naturalmente non sei obbligato a spendere migliaia di euro in formazione, soprattutto se non puoi permettertelo.

Esistono soluzioni per tutte le tasche.

Puoi comodamente spendere 30€ al mese per migliorare le tue conoscenze grazie a dei libri, ad esempio ho stilato una lista dei libri migliori (secondo me) sulla programmazione.

Oppure, se vuoi fare veramente il salto di qualità, scoprire dei corsi di formazione che possano migliorare davvero la tua situazione attuale.

Voglio concludere quest’ultimo punto di questa guida con un altro aspetto della mentalità italiana che purtroppo si unisce al precedente: si è convinti che, una volta finiti gli studi, non si debba più studiare niente.

Permettimi di dirlo: non c’è niente di più sbagliato e più triste di tutto ciò.

Vedo persone lamentarsi costantemente ogni giorno di non avere un lavoro, eppure le loro competenze non sono sufficienti per averlo, oppure non vanno più bene per ciò che è richiesto nel mercato del lavoro.

Al contempo, spendono e spandono per… Minchiate.

Si è convinti fin troppo che siccome si ha un diploma o una laurea allora il lavoro è dovuto per sempre: dal momento della proclamazione fino alla morte.

Il mondo cambia, ogni giorno.

Non solo: se ti innamorerai di questo mondo, stai pur certo che imparare cose nuove non sarà un obbligo o un’angoscia perenne per evitare di essere licenziato.

Sarà solo l’hobby migliore della tua esistenza.

Augurandomi che questa guida ti abbia aiutato al meglio, fammi sapere cosa ne pensi sul mio sito web con un commento!

Se invece usi Facebook, ti invito a condividere il tuo pensiero sulla mia pagina: le tue parole valgono molto e potresti aiutare non poche persone!

Io ti saluto e ti auguro il meglio! 🙂

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ù