Le abilità di programmazione sono un elemento che può essere coltivato e migliorato nel tempo e con l'impegno del singolo sviluppatore. Oggi è possibile accedere ad una quantità di esempi, informazioni e dati enorme, anche gratuitamente. Ma esiste un modo per specifico per migliorare le proprie skill nel coding?
Acquisire nuove skill, anche se sembrano inutili
Molto spesso ci si chiede: "Perché dovrei apprendere linguaggio X se non lo userò nel mio lavoro?". Le nozioni apprese studiando linguaggi e Framework diversi da quelli che utilizziamo quotidianamente possono sempre tornare utili e aiutare a risolvere problemi sfruttando un punto di vista differente, permettendo di implementare soluzioni migliori e più sofisticate ad un problema che magari sembrava irrisolvibile con le logiche di un altro linguaggio.
Questo perché le conoscenze di programmazione non devono essere viste come "elementi isolati", i concetti di alto livello possono essere applicati facilmente in molteplici ambiti e linguaggi differenti.
Mappe mentali
Man mano che si apprendono nuove abilità, automaticamente nella nostra mente si inizia a generare una mappa non solo delle cose imparate, ma anche del panorama di conoscenze di cui si conosce l'esistenza ma si sa pochissimo. Questa mappa mentale diventerà utilissima quando si incontrano nuovi problemi, in modo da capire nel modo più semplice cosa studiare per risolverli o per implementare determinate funzionalità.
Meta-competenze
Ci sono delle abilità che consentono di apprende altre abilità. Capire quale sia il metodo di apprendimento più adatto a noi è un ottima base di partenza per migliorare le nostre capacità di sviluppare nuove skill. La mera ripetizione spesso non è sufficiente per apprendere nuove abilità, bisogna mettersi sempre alla prova ed uscire dalla propria confort zone. Se ad esempio si ha molta familiarità con una linguaggio di programmazione o con un framework, è bene iniziare a sperimentarne uno totalmente nuovo, pubblicare il codice online e aspettare feedback in modo da vedere dove si sbaglia, cosi da migliorare costantemente le proprie skill.
Errori comuni
Una buona strategia è quella di iniziare ad identificare i nostri errori più grossolani ed eliminarli uno ad uno dalle nostre abitudini. Molto spesso si sa già quali sono i nostri difetti e dunque è facile iniziare a lavorarci per evitare il ripetersi della cattive abitidini. Ad esempio si potrebbe rinunciare ad avviare sempre nuovi progetti e ad apprendere skill troppo velocemente, focalizzandosi maggiormente su quelli già aperti e su skill che ancora non padroneggiamo bene.
Inoltre è sempre un bene richiedere l'aiuto di una persona competente se si rimane incagliati in un problema troppo complesso, il punto di vista di persone più brave di noi può esserci sempre d'aiuto e non è un male chiedere assistenza o un consiglio.
Altro elemento da prendere in considerazione sono le ore di sonno, spesso un programmatore trascura questo aspetto, studiando e lavorando ben oltre gli orari di lavoro standard.
Deep work
Una delle più importati meta-skill che un programmatore dovrebbe apprendere è il Deep work. Si tratta di un altro modo per definire il lavoro concentrato o complesso, ad esempio le capacità di apprendimento o la deliberate practice sono ottimi esempi di Deep work. Si contrappone al lavoro superficiale, a quello che è tendenzialmente noioso e più semplice che solitamente viene richiesto in ogni lavoro e non aggiunge nessun valore al nostro bagaglio di competenze.
Ad esempio, rispondere alle email, controllare i messaggi, pianificare, sono varie cose per cui si viene pagati e fanno parte del nostro lavoro quotidiano, ma in genere non ci offrono la possibilità di apprendere nuove skill.
Il Deep work ci consente invece di migliorare noi stessi, solitamente i lavori di questo tipo sono una "palestra mentale" per avere una migliore consapevolezza delle nostre competenze e delle nostre debolezze o per migliorare le nostra attenzione. Le attività di Deep work possono essere la lettura di un libro, imporsi delle sessioni prolungate di assenza dai social media oppure dedicare qualche ora al giorno ad aiutare gli altri, magari sfogliando qualche pagina dei forum di supporto.
Via Henry Stanley