Come imparare a programmare
8 minuti di lettura
Per imparare a programmare non basta acquistare un buon libro o scriversi a un corso.
Questo articolo ti spiegherà il metodo vincente che ho sempre adottato, da autodidatta, per imparare a programmare in diversi linguaggi, fin dagli anni '80, con il linguaggio macchina e il BASIC per lo ZX Spectrum, poi il Commodore 64 e successivamente, per lavoro, con HP BASIC (RMB), Visual Basic, HP-UX e Linux Shell scripting, HTML e CSS (che non sono linguaggi di programmazione), PHP, SQL, Javascript, jQuery, eccetera...
Ti avviso subito che questo
In questo articolo:
La programmazione
Diciamo subito che ho sempre seguito le Scienze e la Tecnologia con grande curiosità e passione ma, proprio a causa della mia grande curiosità in diversi settori, non mi sono mai specializzato in uno in particolare, perché amo
Essenzialmente, io sono "
Il problema è che questo le aziende lo scoprono soltanto
Quindi, il primo consiglio è:
Negli anni ho scritto centinaia di migliaia di righe di codice di programmazione, in tanti linguaggi diversi e per questo dico che so programmare ma...
Ciò premesso, imparare a programmare, secondo la mia opinione, consiste essenzialmente nell'
Questo approccio, infatti, è indispensabile per riuscire ad arrivare al punto d'immaginare immediatamente una sorta di algoritmo quando ci troviamo di fronte a un problema.
Vorrei fare un esempio: immagina di dover scrivere la sequenza di azioni necessarie per
Per come siamo abituati a pensare, questa
Se proviamo a suddividere quest'apparentemente unica azione, cioè
Infatti, per guardare il telegiornale, è necessario:
- Controllare l'ora: sono le 13:00?
- Se non sono le ore 13:00 ritornare al punto
1 - Se sono le ore 13:00 allora dovremo avvicinarci alla TV (o al telecomando)
- Premere il tasto di accensione
- Sintonizzarci sul canale giusto
- Regolare il volume
- Sederci in poltrona
- Guardare il telegiornale
- Spegnere la TV
Inoltre, ciascuno di questi passi potrebbe essere suddiviso in ulteriori micro-azioni.
Per esempio, il punto
- Ascoltare la TV
- Se il volume è giusto vai al punto
5 - Se il volume è troppo basso premi il pulsante per alzare e torna al punto
1 - Se il volume è troppo alto premi il pulsante per abbassare e torna al punto
1 - Regolazione del volume conclusa
Insomma, dopo anni di pratica in questo esercizio, s'impara a fare la stessa cosa anche con i problemi della vita... ma non sono sicuro che sia una buona notizia!
Quelli che abbiamo appena visto sono esempi di algoritmi che, in pratica, rappresentano l'essenza della programmazione.
I linguaggi
Abbiamo appena visto come un problema complesso possa essere suddiviso in tanti piccoli passi elementari, sviluppando così un algoritmo e abbiamo descritto il problema
I computer non parlano l'italiano. In realtà non parlano neanche l'inglese ma "parlano" soltanto
Però, negli anni, sono nati gli interpreti, cioè dei programmi che si occupano di tradurre il
Sono stati sviluppati interpreti per molti linguaggi come, per esempio, COBOL, PASCAL, BASIC, C e poi PHP, ASP, Java e tanti altri.
Ogni linguaggio è più o meno adatto alle diverse applicazioni. Per esempio, per il Web i più usati sono PHP, ASP, Java e Javascript.
Quindi, la scelta del linguaggio da imparare è fortemente legata al campo di applicazione in cui vorresti lavorare.
Per esempio, se vuoi sviluppare per il Web, allora sicuramente investirai bene il tuo tempo imparando:
Indispensabili: - HTML (Hyper Text Markup Language): indispensabile per realizzare pagine web. Non è un linguaggio di programmazione ma un sistema di markup, cioè un insieme di istruzioni che servono per comunicare al browser le informazioni necessarie per costruire la pagina.
Difficoltà:bassa - CSS (Cascading Style Sheets): neanche i "fogli di stile" sono un linguaggio di programmazione ma, insieme all'HTML, costituiscono la base irrinunciabile per realizzare pagine Web, delle quali curano principalmente gli aspetti estetici.
Difficoltà:bassa
- HTML (Hyper Text Markup Language): indispensabile per realizzare pagine web. Non è un linguaggio di programmazione ma un sistema di markup, cioè un insieme di istruzioni che servono per comunicare al browser le informazioni necessarie per costruire la pagina.
A scelta: - PHP (Personal Home Page poi diventato Hypertext Preprocessor): è il linguaggio di programmazione lato server
open source gratuito per il Webpiù diffuso , anche grazie alla vastissima documentazione disponibile. Èmultipiattaforma , cioè gira su praticamente tutti i sistemi operativi.
Difficoltà:alta - ASP.NET (successore di ASP: Active Server Pages): è il linguaggio di programmazione lato server di casa Microsoft, anch'esso molto diffuso ma ormai sempre meno preferito rispetto al PHP. La sua più grande limitazione è di non essere multipiattaforma e di girare esclusivamente su server Windows (molto costosi) ma, anche dal punto di vista delle prestazioni, più fonti confermano che PHP è di gran lunga migliore.
Difficoltà:alta - Java: è un linguaggio di programmazione progettato essenzialmente per essere il più possibile indipendente dalla piattaforma di esecuzione ma, proprio per questo motivo, non è molto "prestante" rispetto ad altri linguaggi.
Ha avuto una certa rilevanza nel mondo Web e oggi mantiene alto il suo prestigio grazie al fatto che è uno dei linguaggi più utilizzati per lo sviluppo di App per dispositivi mobile.
Difficoltà:alta
- PHP (Personal Home Page poi diventato Hypertext Preprocessor): è il linguaggio di programmazione lato server
Inoltre: - Javascript: linguaggio di programmazione
lato client . Serve essenzialmente a far eseguire delle operazioni al browser come, per esempio, creare o riposizionare oggetti sulla pagina, cambiare dei valori nei campi e altro.
Difficoltà:media - jQuery: è una libreria Javascript che ha lo scopo di semplificare la selezione, la manipolazione, la gestione degli eventi e l'animazione di elementi nelle pagine HTML. In pratica è una libreria di "macro", cioè gruppi d'istruzioni Javascript che svolgono compiti specifici.
Difficoltà:media - AJAX (Asynchronous JavaScript and XML): permette lo scambio di dati in background fra web browser e server, consentendo l'aggiornamento dinamico di una pagina web senza esplicito ricaricamento da parte dell'utente.
Difficoltà:media - SQL (Structured Query Language): è il linguaggio utilizzato dai database, cioè i "motori" che memorizzano dati in modo organizzato e ne permettono l'estrazione, quasi sempre utilizzati nella creazione di
siti Web dinamici .
Difficoltà:alta
- Javascript: linguaggio di programmazione
Come puoi vedere, le cose da imparare per diventare uno sviluppatore Web non sono poche. Però, se mai inizi mai finisci e, in questo campo, non si finisce mai veramente perché le tecnologie sono in continua evoluzione!
Quindi, se hai voglia e passione, inizia con lo studio dell'
Poi, se son rose fioriranno e se ti piacerà creare delle pagine Web, ti verrà voglia d'imparare a programmare veramente e questo vale per qualunque linguaggio in ogni campo d'applicazione.
Il metodo
Qualunque sia il linguaggio di programmazione che sceglierai d'imparare ti troverai di fronte a una domanda:
Il mio metodo per studiare tutti i linguaggi è sempre stato quello
Questo metodo permette di affrontare e risolvere problemi, anche complessi, senza la fretta imposta da molte situazioni reali e permette di costruire con calma una "solida libreria" di soluzioni che ci saranno utili in futuro.
Per esempio, quando studiavo il PHP per il Web, ipotizzavo ogni giorno un diverso panorama, una ipotetica richiesta di un ipotetico cliente (o collega) e la realizzavo.
Quindi, richieste ipotetiche come
Sì, perché ritengo che la pratica con problemi reali, ancorché ipotetici, sia
Quindi, dai libero sfogo alla fantasia, inventa ogni giorno un nuovo problema (anche piccolo) da risolvere e non aver paura di sperimentare e di fallire, perché ogni fallimento è un'occasione per imparare un "pezzetto" di quella affascinante, vastissima Scienza che è l'Informatica.
Potresti essere interessato a leggere anche il mio articolo Macchine virtuali: un modo per sperimentare.
Se vuoi chiedere ulteriori spiegazioni o se vuoi esprimere la tua opinione non esitare a
Grazie per avermi letto fin qui!
Ann.
127,26 €
Il prezzo, se indicato, è sincronizzato ogni 6 ore. Verificarlo SEMPRE su Amazon PRIMA dell'acquisto!
Motorola Edge 40 Neo (Ip68, Doppia Camera 50+13Mp, Display 6.55" Poled Fhd+ 144Hz, Mediatek Dimensity 1050, Batteria 5000 mAh, 12/256 Gb, Dual Sim, Android 13, Cover Inclusa), Nero (Black Beauty)
- Utilizza il tuo smartphone senza preoccupazioni. Edge 40 neo è resistente all'acqua fino a 1,5m di profondità per 30 minuti grazie al suo design idrorepellente IP68.
- Schermo pOLED Full HD+ da 6,55" straordinariamente nitido e fluido grazie all'elevato refresh rate da 144 Hz. Offre una qualità delle immagini cristallina per film, serie, giochi e videochiamate.
- Doppia fotocamera da 50+13MP. Scatta foto incredibilmente nitide in qualsiasi condizione di luce, realizza foto di gruppo comodamente con un semplice gesto e avvicinati al soggetto con l'obiettivo Macro Vision dedicato per catturate tutti dettagli.
- Esprimi il tuo stile con tutte le varianti colore realizzate in collaborazione con Pantone e fatti conquistare dall'elegante design di edge 40 neo.
- Goditi ore di autonomia con pochi minuti di ricarica grazie alla ricarica TurboPower da 68W e alla capiente batteria da 5000 mAh.
259,99 €
Il prezzo, se indicato, è sincronizzato ogni 6 ore. Verificarlo SEMPRE su Amazon PRIMA dell'acquisto!