Una lingua per domarli tutti

Nascosta sotto uno strato di codice, una lingua langue, desiderosa di essere appresa.

Una lingua per domarli tutti

Al momento della stesura di questo articolo, la query “programmare quale lingua imparare per prima” restituisce 517 milioni di risultati di ricerca. Ciascuno di questi siti elogierà un linguaggio specifico e il 90% di essi finirà per consigliare Python o JavaScript.

Senza ulteriori indugi, vorrei dichiarare apertamente che tutti questi 517 milioni di siti web sono sbagliati e che la lingua che dovresti imparare per prima è logica fondamentale.

Sapere solo come programmare non è sufficiente. Il mercato è così saturo di diplomati di istituti e corsi che la posizione junior ha praticamente cessato di esistere*. Per avere successo nel mondo di oggi, devi programmare e possedere un pensiero logico fondamentale avanzato.

*di seguito, tieni presente che questa è una traduzione e che la situazione sul mercato del lavoro per l'autore e nel tuo paese potrebbe essere diversa (così come altre sfumature), il che, tuttavia, di per sé non peggiora l'articolo originale - ca. traduzione

La mia prima lezione di informatica

Il mio primo contatto con l'informatica è stato un corso facoltativo che ho seguito in terza media. Il primo giorno, entrando in classe, sono stato felice di vedere davanti a me un gran numero di secchi di gelato e guarnizioni varie. Dopo che tutti si furono seduti, l'insegnante annunciò:

“Oggi assaggeremo i gelati preparati in casa. Ma con una condizione: devi fare un elenco di istruzioni precise su come preparare il dolce, e io le seguirò».

“Nessun problema”, ho pensato, “questa lezione non sarà lunga”. Nel giro di un minuto circa avevo annotato la ricetta perfetta per il gelato dei miei sogni:

  1. Raccogliere e mettere tre palline di gelato al lampone in una ciotola
  2. Apri la salsa al cioccolato e aggiungi due cucchiai nella stessa ciotola
  3. Aggiungi la panna montata nella ciotola
  4. Cospargete il tutto con bastoncini di zucchero e mettete sopra una ciliegina

Il mio insegnante - il "computer" in quella simpatica metafora - ha messo in scena una performance più sarcastica e letterale di quanto avessi mai visto prima. Iniziò a frugare con zelo il secchiello del gelato con una paletta senza nemmeno toccare il coperchio.

"Va bene, va bene, ma prima devi aprirlo!" - esclamai, cercando di ottenere il dolcetto il più velocemente possibile.

"Non l'hai scritto nelle istruzioni e non potevo farti il ​​gelato. PROSSIMO!"

Andiamo avanti velocemente per tentare il n. 2

  1. Aprire il gelato al lampone rimuovendo il coperchio
  2. Raccogliere e mettere tre palline di gelato al lampone in una ciotola
  3. Apri la salsa al cioccolato e aggiungi due cucchiai nella stessa ciotola
  4. Aggiungi la panna montata nella ciotola
  5. Cospargete il tutto con bastoncini di zucchero e mettete sopra una ciliegina

Bene, ora sicuramente non dovrebbero esserci problemi. Per ogni evenienza, mi sono assicurato che tutti gli ingredienti per realizzare il mio capolavoro culinario fossero aperti.

L'insegnante tolse il coperchio, raccolse e mise tre palline di gelato in una ciotola. “Finalmente il mio bellissimo gelato ha cominciato a diventare realtà!” Poi aprì la salsa al cioccolato e ne aggiunse due cucchiai nella ciotola. Non ha "aggiunto la salsa di cioccolato da due cucchiai" - non la penso così - ovviamente ha messo i cucchiai stessi nella ciotola. Nessuna salsa in loro. Ancora una volta, non mi sono preso la briga di scrivere tutto esattamente. Dopo aver fatto il resto con lo stesso spirito, ho ricevuto una coppa di gelato e due cucchiai, appena percettibili sotto il mare di panna montata. Sopra c'erano un paio di bastoncini di zucchero.

Sembra che in questo momento mi sia finalmente reso conto: un computer è logica nel vuoto. Non è a conoscenza delle circostanze circostanti e non fa ipotesi. Esegue solo istruzioni chiaramente formulate e le segue parola per parola.

Il mio risultato finale è stato il risultato di una lunga ma necessaria serie di tentativi ed errori:

  1. Se non lo hai ancora fatto, apri ognuna delle seguenti confezioni: gelato al lampone, salsa al cioccolato, panna montata, bastoncini di zucchero.
  2. Prendi una ciotola e mettila davanti a te
  3. Prendi una pallina di gelato e metti tre palline di gelato al lampone una alla volta in una ciotola. Rimetti a posto la pallina del gelato.
  4. Prendete un barattolo di salsa al cioccolato, raccogliete la salsa e versate il contenuto di un cucchiaio in una ciotola. Ripeti il ​​processo di raccolta e versamento ancora una volta. Rimetti a posto il cucchiaio e il barattolo.
  5. Capovolgere la confezione di panna montata e, tenendola sopra la ciotola, versarla sul gelato per 3 secondi, quindi rimettere la confezione al suo posto.
  6. Prendete un barattolo di bastoncini di zucchero, versatene una quarantina in una ciotola e rimettete a posto il barattolo.
  7. Prendi una ciliegia dalla ciotola delle ciliegie e posizionala sopra il gelato.
  8. Dai allo studente una ciotola con il gelato finito e un cucchiaio.

L'ultimo punto è stato particolarmente importante, perché senza di esso, la penultima volta l'insegnante ha semplicemente iniziato a mangiare il mio gelato.

Ma questa è programmazione. Lo stress di creare un accurato insieme di istruzioni per un computer. In sostanza, questo è ciò a cui si riduce ogni linguaggio di programmazione: scrivere istruzioni.

Carriera nella programmazione

La programmazione è arrivata al punto in cui è difficile discuterla come un unico settore, così come è difficile usare la sola parola “programmatore” come descrizione del lavoro. Due sviluppatori possono essere ugualmente richiesti dal mercato, conoscendo lingue completamente diverse, il che significa che la capacità di sviluppo è più importante della conoscenza di una lingua specifica. Un attributo universale condiviso da tutti gli sviluppatori di successo è logica fondamentale.

Il miglior programmatore è colui che è in grado di guardare il codice da una nuova prospettiva. E questo è di fondamentale importanza, perché la maggior parte dei prodotti software sono una raccolta di frammenti non documentati di codice errato. Hanno costantemente bisogno di essere riuniti, colmando le lacune se necessario. Le persone che non sono in grado di collegare punti disparati con un’unica linea dovranno restare per sempre in disparte.

Tutto ciò mi porta ad un’altra dichiarazione, questa volta in grassetto: la conoscenza fondamentale è sempre stata e sarà fondamentale per un programmatore.

Le lingue vanno e vengono. I framework stanno diventando obsoleti e le aziende stanno rispondendo alla domanda modificando lo stack tecnologico che utilizzano. C'è una cosa che non cambierà mai? Sì, la conoscenza fondamentale, che si chiama fondamentale perché è alla base di tutto!

Come migliorare le conoscenze fondamentali

Una lingua per domarli tuttiFoto di Cristoforo Jeschke su Unsplash

Se stai cercando un punto di partenza per migliorare il tuo pensiero logico fondamentale, prova a iniziare da qui:

Conosci la complessità del tuo programma

Chiamato anche grande oh La “complessità dell’algoritmo” si riferisce alla dipendenza del tempo necessario per eseguire un programma dalla dimensione dei suoi dati di input (N). Essere sempre aggiornati sugli algoritmi utilizzati è un passo importante.

Conosci le tue strutture dati

Le strutture dati sono il cuore di ogni programma moderno. Sapere quale struttura utilizzare in ciascun caso è una disciplina a sé stante. Le strutture dati sono direttamente correlate alla complessità del runtime e la scelta della struttura sbagliata può portare a problemi di prestazioni fondamentali. Trovare un elemento in un array è O (n), che indica il costo elevato dell'utilizzo degli array come dati di input. Ricerca nella tabella hash − O (1), il che significa che in questo caso il tempo per la ricerca di un valore non dipende dal numero di elementi.

Le persone sono venute da me per un colloquio e hanno affermato che la ricerca in un array era più veloce della ricerca in una tabella hash. Questo era il segno più sicuro che non dovresti assumerli: conosci le tue strutture dati.

Leggi/guarda/ascolta

Siti come UdemyPluralsight и Codecademy - Una scelta eccellente per imparare nuovi linguaggi di programmazione. Ma per le nozioni di base, consulta libri sui principi generali, sulle pratiche e sugli stili di codifica. I libri più consigliati sono “Design Patterns”, “Refactoring. Miglioramento del codice esistente", "Codice perfetto", "Codice pulito" e "Programmatore pragmatico". Infine, ogni sviluppatore dovrebbe conservare una copia del "Algoritmi" a mano.

Pratica!

Non puoi cucinare le uova strapazzate senza romperle. Siti come Hacker ClassificaCode WarsCoderByte, TopCoder и LeggiCodice offri migliaia di enigmi interessanti per testare la tua conoscenza delle strutture dati e degli algoritmi. Tenta la fortuna risolvendo un problema che ti piace, pubblica la tua soluzione su Github e poi guarda come gli altri l'hanno affrontato. Il che ci porta all'ultimo punto:

Leggi il codice degli altri

L’errore più grande che puoi commettere quando percorri il percorso di sviluppo è farlo da solo. Lo sviluppo del software è in gran parte un lavoro di squadra. Creiamo standard insieme, commettiamo errori insieme e, nonostante tutti i fallimenti, diventiamo migliori insieme. Il tempo trascorso a leggere il codice di altre persone verrà ripagato profumatamente. Assicurati solo che sia un buon codice.

Bene, il miglior consiglio che posso darti è di non vergognarti mai di non sapere ancora qualcosa. Come è già stato detto, la nostra industria è enorme e la quantità di tecnologia è infinita. Ci vuole molto tempo e impegno per costruire un quadro generale, ancora di più per diventare un professionista in qualcosa di specifico e un ordine di grandezza in più per affinare le tue capacità nel tuo campo. Ti farò sapere quando ci riuscirò io stesso.

Fonte: habr.com

Aggiungi un commento