JavaRush /Java Blog /Random-IT /Una lingua per domarli tutti

Una lingua per domarli tutti

Pubblicato nel gruppo Random-IT
Esiste un linguaggio che si trova sotto ogni strato di codice, in qualsiasi linguaggio di programmazione. E aspetta di essere scoperto... Traduzione e adattamento di un articolo di Eric Girois della community di programmazione Better su Medium. Una lingua per domarli tutti - 1Quando ho scritto questo articolo, il numero di query di ricerca nello stile "quale linguaggio di programmazione imparare" ha superato i 517 milioni (!). Ogni pagina dell'elenco dei risultati di ricerca illustra i vantaggi di un particolare linguaggio rispetto ad altri e nel 90% dei casi ti verrà consigliata la stessa cosa, come Python, JavaSctipt (o qualcosa tra le 3 principali valutazioni autorevoli dei linguaggi linguistici. Il la valutazione attuale per luglio è qui ;) Permettimi di essere audace e di non essere ufficialmente d'accordo con tutti i 517 milioni di risultati e di dire che il primo linguaggio di programmazione che dovresti imparare è la logica . Non è sufficiente sapere semplicemente come scrivere il codice. Il mercato è sovraffollato di laureati di vari corsi, motivo per cui la posizione di sviluppatore junior ha sostanzialmente cessato di esistere. Per avere successo in queste realtà, non è necessario solo scrivere codice, ma anche avere una mente logica.

La mia prima lezione di informatica

La mia prima conoscenza con l'informatica è avvenuta in una classe facoltativa del decimo anno. Sono venuto in classe e ho provato una sensazione di gioia: in classe c'erano un mucchio di scatole di gelato e vasetti di sciroppi. Quando ci siamo seduti, l'insegnante ha annunciato: “Oggi faremo la domenica ( un dolce a base di gelato e sciroppi - ndr ). Ma a una condizione: tu scrivi le istruzioni esatte per preparare il dolce, e io le seguirò”. “ Non c’è dubbio ”, ho pensato, “ sarà facile ”. In appena un minuto, ho annotato le istruzioni perfette: Metti tre palline di gelato al lampone in una tazza Versa due cucchiai di sciroppo di cioccolato in quella tazza Aggiungi la panna montata nella tazza Aggiungi i confettini e una ciliegia in cima alla domenica Poi il mio l'insegnante, agendo come il "computer", ha seguito esattamente le istruzioni, ha eseguito la performance più caustica che abbia mai visto. Cominciò ad "attaccare" furiosamente la scatola di cartone del gelato, ma il coperchio resistente rimase illeso. "Va bene, prima togli il coperchio", dissi, sperando di prendere velocemente il dessert. "Non sei riuscito a scrivere correttamente le istruzioni per me, quindi sfortunatamente non ho potuto preparare la domenica PROSSIMA per te!"

Avanti veloce per tentare il n. 2

Aprire una confezione di gelato al lampone rimuovendo il coperchio Mettere tre palline di gelato al lampone in una tazza Aprire lo sciroppo di cioccolato e aggiungere due cucchiai nella tazza Aprire la panna montata e aggiungerne un po' nella tazza Aggiungere i confettini e una ciliegina in cima della domenica ero sicuro di averlo centrato una volta. L'insegnante tolse il coperchio, raccolse tre palline di gelato e le mise in una coppetta. Finalmente la mia domenica sta per essere pronta! Poi aprì lo sciroppo di cioccolato e ne mise due cucchiai nella tazza. Ma non due cucchiai di sciroppo: solo cucchiai, senza! Ancora una volta le mie istruzioni non erano abbastanza precise. Quando tutto finì, ricevetti una coppa di gelato, due cucchiai di metallo, una tonnellata di panna montata e circa 300 palline di confettini. Sembra che in quel momento tutto mi sia diventato chiaro: un computer è un'entità guidata dalla logica pura. Non capisce il contesto e non fa supposizioni. Segue una serie rigorosa di istruzioni e le segue alla lettera. Le istruzioni finali per preparare la domenica erano terribilmente prolisse, ma era necessario: Se non già aperta, aprire la confezione di tutti i seguenti articoli: Gelato al lampone, Sciroppo di cioccolato, Topping e Panna montata Prendere una tazza da ripiano e posizionatelo davanti a voi Prendete una pallina di gelato e, una alla volta, prelevate e mettete tre palline di gelato in una coppetta. Quando tutto è finito, metti il ​​cucchiaio sul tavolo. Prendi un cucchiaio di sciroppo di cioccolato se non ne hai già uno. Prendete quindi un cucchiaio di sciroppo di cioccolato e versatelo in una tazza. Esegui questa azione due volte. Al termine, posizionare lo sciroppo di cioccolato su uno scaffale. Capovolgi la bottiglia di panna montata e premi con il dito il pulsante vicino al beccuccio della bottiglia per tre secondi, quindi rimetti la bottiglia nella posizione originale. Cospargere 40 granuli di granelli sopra il gelato e lo sciroppo di cioccolato nella tazza, quindi riportare lo shaker per granelli nella sua posizione originale. Rimuovi una ciliegia dal barattolo di ciliegie e posizionala con cura sopra la domenica. Date allo studente il cucchiaio della domenica e del dessert. L'ultimo comando nelle istruzioni era molto importante, perché senza di esso l'insegnante cominciò a mangiare la domenica da sola. Questa è la realtà della programmazione: devi dare le istruzioni più precise al computer. In sostanza, tutti i linguaggi di programmazione sono costituiti da istruzioni.

Carriere nello sviluppo di software

Lo sviluppo del software è in una fase in cui parlarne come un settore separato sembra troppo generico. E alla luce di ciò la posizione di “sviluppatore di software” sembra vaga. Due sviluppatori con competenze diverse possono essere ugualmente richiesti nel mercato del lavoro, il che suggerisce che una carriera di successo nello sviluppo richiede qualcosa di più delle semplici competenze di programmazione. Gli sviluppatori esperti hanno una caratteristica comune che è separata dalla logica di programmazione . I migliori sviluppatori sono forti nel pensiero critico. Ciò è significativo perché la maggior parte dei progetti di sviluppo software sono incubi patchwork scarsamente documentati. Ci vorrà qualcuno dotato di pensiero critico per raccogliere tutti i dati e colmare le lacune. Pertanto, quegli specialisti che non sono in grado di collegare i fatti in un unico insieme restano indietro. Tutto ciò porta ad un’altra affermazione molto importante: i fondamenti dell’informatica – sia ora che in futuro – sono primari. Sono più importanti della capacità di scrivere codice. Le lingue popolari vanno e vengono. I framework stanno diventando obsoleti e le aziende stanno rispondendo alle mutevoli richieste del mercato combinando l’insieme delle tecnologie utilizzate. Cosa rimane invariato? Nozioni di base delle basi.

Come sviluppare il pensiero logico

La logica e il pensiero critico possono e devono essere sviluppati. Ti consiglio di prestare attenzione a quanto segue:

1. Studiare l'efficacia degli algoritmi negli ambienti runtime

La notazione Big-O viene utilizzata per descrivere la complessità degli algoritmi. Se sei in grado di valutare il tuo codice in termini Big O e di analizzare il numero di passaggi eseguiti rispetto al tempo impiegato, considera di aver fatto il primo passo nella giusta direzione.

2. Impara le strutture dei dati

La struttura dei dati è la base di ogni programma complesso. Sapere quale tipo è meglio usare in tal caso è un'abilità importante. Le strutture dati sono direttamente correlate alla complessità degli algoritmi, perché scegliere la struttura sbagliata può uccidere il programma.

3. Leggi/guarda/ascolta

Bene, per comprendere le nozioni di base, leggi libri sui concetti di design, sulle migliori pratiche e sullo stile di codifica. A coloro che stanno imparando la programmazione si consiglia vivamente di leggere:
  • “Tecniche di progettazione orientata agli oggetti. Design Patterns” (E. Gamma R. Helm R. Johnson J. Vlissides),
  • “Refactoring. Migliorare il codice esistente” (M. Fowler),
  • “Codice perfetto” (S. McConnell)
  • “Codice pulito” (B. Martin)
  • “Programmatore pragmatico” (E. Hunt)
  • “Algoritmi: costruzione e analisi” (T. Cormen, C. Leiserson, R. Rivest e K. Stein)

4. Pratica!

Non puoi diventare un buon violoncellista senza centinaia di ore di pratica. La pratica quotidiana è la chiave del successo della programmazione. Oggi ci sono molte piattaforme online dove puoi trovare migliaia di attività che richiedono la comprensione delle strutture dei dati e degli algoritmi (HackerRank, LeetCode, CodeWars e altri).
I problemi di programmazione Java, da semplici a complessi, sono disponibili su JavaRush. Nel corso ce ne sono più di 1200. E anche mini-progetti e giochi di attività .
Per me, il modo più efficace per lavorare con tali piattaforme è pensare a un approccio unico al problema e pubblicare la soluzione su Github. Quindi guarda le migliori soluzioni a un problema simile e analizza gli approcci di altri programmatori. Questo ci porta al nostro suggerimento finale:

5. Analizza il codice di altre persone

L'errore principale nell'apprendimento della programmazione e nelle fasi iniziali del lavoro è l'autoisolamento. Lo sviluppo di software è un campo che dipende in gran parte dal lavoro di squadra. Creiamo standard insieme, commettiamo errori e col tempo (di nuovo, attraverso tentativi ed errori) capiamo cosa funziona meglio. Prendersi il tempo per leggere il codice di sviluppatori esperti ripagherà. Assicurati solo che il codice sia effettivamente valido.

Conclusione

Consiglio personale: non vergognarti mai di ciò che non (ancora) conosci. Come accennato in precedenza, questo settore è enorme, il numero di lingue è incredibile e c’è un mare di informazioni. Ci vuole molto tempo e impegno per formare almeno un'idea generale della programmazione, ancora di più per acquisire esperienza e molte volte di più per diventare un vero professionista. Quando finalmente ci riuscirò, ti farò sapere :)
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION