Ricerca nel sito web

Diventa un programmatore migliore: 7 abitudini per crescere


Sei un programmatore principiante che vuole passare al livello successivo? Ecco alcune delle migliori abitudini che ho adottato e come mi hanno reso non solo un programmatore migliore, ma anche un professionista migliore.

7. Inizia con una base solida

Quando ho iniziato a programmare, sono caduto nella trappola di affrettare le basi e passare direttamente a cose più succose come framework e strumenti avanzati. Volevo creare subito app fantastiche e siti web brillanti. Quindi, ho cercato di saltare il più possibile le cose noiose.

Tuttavia, a un certo punto, ho capito una cosa. Potevo copiare e incollare il codice e farlo funzionare. Ma era tutto un codice a spaghetti, confuso insieme, che funzionava a malapena senza alcuna ottimizzazione. Non riuscivo a risolvere nessun problema da solo. Alla fine, sono stato costretto a rivisitare le basi ancora e ancora.

Un modo per costruire queste fondamenta è sfidare te stesso con semplici problemi prima di tuffarti in progetti più grandi. Piattaforme come HackerRank e CSES sono ottime per questo. Un'altra parte essenziale della costruzione di una base è l'apprendimento approfondito di un linguaggio di programmazione prima di espandersi.

6. Pensare più che scrivere codice

Ogni volta che si desidera creare qualcosa, è probabile che si apra l'editor di codice e si inizi a scrivere codice. Lo facciamo in modo da poter vedere rapidamente un risultato tangibile. Tuttavia, nella mia esperienza, ho visto che questo spesso porta a soluzioni disordinate, incomplete o talvolta del tutto sbagliate.

Un problema che ho dovuto affrontare spesso è stato quando ero a metà strada, mi sono reso conto che non avevo preso in considerazione un caso o l'altro durante la codifica della soluzione. Ho dovuto ricominciare da capo. Se avessi avuto una soluzione generale di alto livello prima di scrivere il codice, questo non sarebbe successo.

La programmazione non riguarda solo la scrittura di codice. Si tratta di creare una soluzione a un problema, spesso con alcuni vincoli. Come ogni problema complesso, la soluzione migliore deriva da un pensiero chiaro e deliberato. Questo è tratto da uno dei miei libri preferiti, The Pragmatic Programmer:

Per essere un programmatore pragmatico, ti sfidiamo a pensare a quello che stai facendo mentre lo stai facendo... Non eseguire mai con il pilota automatico. Pensa costantemente, critica il tuo lavoro in tempo reale.

Una cosa che mi ha reso un migliore risolutore di problemi è scrivere pseudocodice prima di scrivere il codice vero e proprio. Ad esempio, quando si progetta un algoritmo complesso, si disegna un piano logico approssimativo in un inglese semplice.

5. Impara dalla documentazione ufficiale

Quando ho iniziato a programmare, ho evitato come la peste la documentazione ufficiale. Sembrava travolgente, pieno di gergo e, onestamente, un po' noioso. Ho preferito attenermi ai tutorial e ai video di YouTube. Ma quando ho iniziato a lavorare su progetti del mondo reale, mi sono reso conto che i tutorial hanno solo scalfito la superficie. Se volevo comprendere appieno un linguaggio, un framework o uno strumento, la documentazione ufficiale era la mia migliore risorsa.

La documentazione ufficiale è un manuale utente scritto dalle persone che hanno creato la lingua o lo strumento che stai imparando. I tutorial tendono a concentrarsi su casi d'uso specifici, ma la documentazione mostra tutte le funzionalità di una tecnologia, incluse le funzionalità di cui non si sapeva l'esistenza.

Ad esempio, quando ho imparato Python per la prima volta, mi sono affidato molto ai tutorial per comprendere le basi. Ma quando ho iniziato a usare librerie come i panda, mi sono ritrovato ad aver bisogno di qualcosa di più di semplici esempi. La documentazione dei panda è diventata la mia ancora di salvezza.

4. Scrivi codice pulito

C'è una battuta ricorrente nella comunità dei programmatori. Se il programma è in esecuzione, non toccarlo. È solo uno scherzo, però.

Quando ho iniziato a programmare, ho provato la programmazione competitiva. Anche se mi piaceva, ne ho adottato molte cattive abitudini. Nella maggior parte dei casi, far funzionare il programma era l'unica cosa che contava. Se il codice girava senza errori, lo consideravo un successo, anche se era un groviglio di variabili e numeri magici. Ma quando ho iniziato a lavorare su progetti più reali, mi sono reso conto di quanto sia cruciale il codice pulito.

Il codice pulito semplifica la lettura, il debug e la manutenzione dei programmi. Ci sono molte best practice, principi e convenzioni che entrano in questo senso. Ad esempio, nomi descrittivi per variabili e funzioni, una buona documentazione, uno stile di codifica coerente e altro ancora. Diamo un'occhiata a un esempio di codice brutto.

        def pro(s, x):
   i = 0
   for k in range(len(s)):
       i += s[k] * x[k]
   return i
    

Funziona. Ma si può ricavare qualcosa da esso? Probabilmente no. Ora dai un'occhiata alla versione più pulita:

        def calculate_dot_product(vector_a, vector_b):
   dot_product = 0
   for index in range(len(vector_a)):
       dot_product += vector_a[index] * vector_b[index]
   return dot_product
    

Questa versione è molto più significativa. Ecco come scrivere codice pulito può trasformare completamente i tuoi progetti.

3. Sviluppa forti capacità di debug

Non importa quanta esperienza acquisisci come programmatore, il debug è una parte inevitabile del processo. Ho passato innumerevoli ore a rintracciare insetti subdoli che sembravano nascondersi in bella vista. All'inizio, il debug sembrava frustrante. Con il tempo, ho imparato ad affrontarlo in modo strategico.

Il primo passo per il debug consiste nel rallentare e osservare. Ero solito precipitarmi nel mio codice, cambiando ciecamente le righe, sperando che qualcosa funzionasse. Lo faceva raramente. Invece, inizia facendo domande. Cosa dovrebbe fare il programma? Che cosa sta facendo? Dove diverge il comportamento?

Esistono diversi strumenti e tecniche che rendono il debug meno scoraggiante. L'istruzione print() è spesso la prima linea di difesa. Un'altra tecnica utile è il debug dell'anatra di gomma, in cui spieghi il tuo codice, passo dopo passo, a un oggetto inanimato o a una persona. Spesso, la semplice articolazione del problema ad alta voce rivela la soluzione. Ho risolto i bug semplicemente spiegandoli a me stesso.

2. Rete con altri programmatori

Quando ho iniziato a programmare, lo pensavo come un viaggio in solitaria. Sebbene la programmazione richieda spesso una concentrazione solitaria, i momenti in cui sono cresciuto di più sono venuti dal contatto con altri programmatori.

Mi sono unito a molti gruppi Facebook di programmazione, server Discord e subreddit (dai un'occhiata a r/learnprogramming.) Quando mi trovo di fronte a dei problemi, posso chiedere aiuto. Nel mio tempo libero, cerco di contribuire anche alla comunità, in modo che i principianti possano ricevere aiuto proprio come facevo io.

Una volta ho ottenuto un ingaggio di programmazione esclusivamente attraverso il networking. È stato uno dei progetti più grandi a cui ho lavorato e ho imparato molto nel processo. Ho anche incontrato grandi programmatori partecipando agli hackathon e ho imparato da loro cose e strategie.

1. Costruisci qualcosa che risolva un problema della vita reale

Uno degli aspetti più gratificanti della programmazione è la capacità di trasformare le idee in strumenti che semplificano la vita. Puoi guardare tutorial o leggere libri all'infinito, ma niente è paragonabile all'apprendimento che acquisisci quando affronti un problema del mondo reale. È allora che le teorie, la sintassi e gli algoritmi prendono davvero vita.

Puoi trovare progetti di vita reale in molti modi. Quali problemi devi affrontare? Riesci a risolverli creando un'app? Chiedi ai tuoi amici e parenti quali sono i loro problemi. Puoi anche andare su GitHub e trovare progetti open source.

Quando ho iniziato a imparare il backend Java utilizzando Spring Boot, ho deciso di creare un sistema agricolo per automatizzare molte delle attività. Ho imparato molte cose che non avrei avuto dai tutorial.


Quando si è alle prime armi con la programmazione, è facile cadere nelle trappole e commettere errori. Adottando ottime abitudini e imparando dall'esperienza, puoi avere un vantaggio. Questo ti renderà un programmatore migliore.