Imparare un linguaggio di sviluppo web permette di avere in mano degli strumenti per scrivere non solo dei semplici siti per pubblicizzare una determinata attività, ma anche applicazioni web consistentiin veri e propri programmi in grado di fare le cose più disparate: calcolare i tributi locali come l’IMU, videogiochi semplici fruibili online e altri tipi di pagine interattive.
Per fare siti dinamici abbiamo a disposizione diverse piattaforme di sviluppo, come WordPress o Joomla, che ci permettono di inserire diversi contenuti in un sito e dotarlo di diverse funzioni mediante l’installazione di estensioni o plugin, sia gratuiti che a pagamento.
Tuttavia, potremmo avere bisogno di personalizzare ulteriormente il nostro sito aggiungendo funzioni che nessun plugin offre, per lo meno gratuitamente.
In questo caso è necessario conoscere un linguaggio di sviluppo web server-side.
Premessa
Se la nostra è un’applicazione web, o un intero sito, sicuramente dobbiamo saper sviluppare il front-end, ossia l’interfaccia tramite cui l’utente ne usufruisce. Per questo è necessario conoscere tre linguaggi: HTML, CSS, Javascript. A differenza di HTML e CSS, Javascript ha molte strutture simili a un linguaggio di programmazione; quindi se non lo si conosce si può cominciare ad applicare i consigli che seguono per apprenderlo per poi, o contemporaneamente, imparare un linguaggio server-side, utile a produrre un front-end in modo dinamico, per esempio in base a dei dati estrapolati da un database.
Scegliere un linguaggio
Ci sono diversi linguaggi di sviluppo per le applicazioni web: abbiamo l’imbarazzo della scelta!
È quindi importante sceglierne uno che faccia al caso nostro, in base ai nostri scopi e alle competenze che abbiamo. Se, ad esempio, abitualmente usiamo una piattaforma e vogliamo produrre delle estensioni ovviamente studieremo il linguaggio con cui è scritto il nostro ambiente; se vogliamo fare un sito con dei dati altamente sensibili dovremo basarci su linguaggi robusti.
Allo stesso tempo alcuni linguaggi, specie quelli che non lavorano in profondità della macchina, come PHP, sono più semplici, mentre altri più complessi. Se abbiamo delle buone basi informatiche possiamo cimentarci su qualcosa di difficile, altrimenti è meglio optare su altri linguaggi più semplici, senza vietarci in futuro di avventurarci su qualcosa di più tosto.
Qui ci sono due link utili per capire quali linguaggi di sviluppo web si usano oggi:
- http://www.navigaweb.net/2011/11/principali-linguaggi-di-programmazione.html
- http://webinserzionista.altervista.org/n/inf/corso-web/linguaggi-programmazione-per-creare-siti-web.html
Si comincia!
Installare i software necessari
Per sviluppare un’applicazione occorrono un editor testuale, che non metta le formattazioni al testo, e un software che esegua il nostro programma.
Come editor testuali consiglio notepad++ per Windows e Textmate per Mac, mentre per testare i nostri script dipende dal linguaggio in questione: se stiamo scrivendo in Javascript il browser è il software deputato all’esecuzione, quindi lo utilizzeremo insieme alla console di debug, mentre per i linguaggi server-side esistono diversi server virtuali da installare, aventi l’interprete adatto.
In alternativa è possibile scaricare ed installare Eclipse che è dotato sia dell’editor che dell’interprete.
Imparare i concetti e i costrutti fondamentali
Quando ci si affaccia alla programmazione è importante apprendere alcuni concetti comuni a tutti i linguaggi, che sono:
- Variabili: porzioni di memoria in cui vengono registrati dei dati utili all’esecuzione del programma;
- Espressioni e strutture di controllo: servono ad eseguire determinate istruzioni qualora si verifichi una particolare condizione;
- Funzioni: a volte definite metodi, contengono una serie di istruzioni da eseguire ogni volta che vengono chiamate. Una sorta di programma nel programma;
- Array: variabile contenente più variabili;
- Oggetto: una variabile con diverse proprietà, ossia variabili proprie, e metodi, funzioni appartenenti strettamente all’oggetto o a una determinata classe d’appartenenza.
In tutti i linguaggi, o quasi, ritroviamo questi costrutti, anche se con caratteristiche diverse. Imparati una volta sarà più semplice apprendere altri linguaggi.
Una cosa alla volta
Come molte discipline anche la programmazione web si apprende facendo un passo per volta.
Si comincia con un mini programma che stampa a video il classico “Hello World” per poi aumentare la difficoltà man mano che si apprendono concetti nuovi. È fondamentale imparare un concetto alla volta, senza proseguire finché non si è capito quanto studiato fino a li; è come realizzare una piramide: senza una base completata non si può salire in alto nella costruzione.
Vale di più la pratica della grammatica
La teoria è relativamente semplice da comprendere, anche se fondamentale per studiare un linguaggio in modo esaustivo. Però ciò che conta è l’applicazione dei principi teorici. Pertanto l’approccio allo studio non deve essere libresco; una volta capito il principio si deve subito testarne l’applicazione, consultando anche degli esempi che si trovano online. Una volta capito il meccanismo dell’esempio è bene provare a riprodurlo, facendo delle modifiche per capire il funzionamento e il risultato di quel codice.
Ogni volta che si è appreso qualcosa di nuovo si crea un mini programma sull’argomento, successivamente un altro per combinare le nuove nozioni con quelle apprese in precedenza. Ogni costrutto è fatto per interagire con altri, quindi è bene mettersi subito nell’ottica di combinare con criterio tutte le conoscenze.
Gli esercizi che via via si fanno è bene che si riferiscano a casi potenzialmente reali, a situazioni in cui ci si troverà quando si svilupperanno applicazioni web per eventuali clienti.
Imparare la sintassi
Ogni linguaggio prevede una serie di istruzioni, di termini da riprodurre senza il minimo errore.
È quella che si chiama sintassi e il suo rispetto è indispensabile per evitare errori che causano un non corretto funzionamento del nostro programma.
Il software che interpreta le istruzioni non è in grado di leggerne una scritta nel modo diverso dal previsto. Studiare la sintassi è quindi una priorità per chi è alle prime armi con qualsiasi linguaggio.
Per agevolare l’apprendimento è buona cosa disabilitare nell’editor, se abilitata, la funzione di autocompletamento e ridurre quanto più possibile l’uso del copia e incolla: non conta il tempo impiegato per fare un esercizio ma è fondamentale assimilare bene i concetti che si stanno applicando.
Imparare a fare il debug
Non tutte le ciambelle escono col buco, specie le prime che si fanno! Lo stesso principio vale per i progetti web sviluppati: è impossibile non compiere mai un errore! Purtroppo, però, la macchina non perdona: gli errori nel codice, piuttosto che nella logica che ci sta dietro, non consentono l’esecuzione corretta del programma. A volte è visibile un messaggio di errore e si blocca tutto, altre volte si ottiene un risultato diverso da quello sperato. In questi casi siamo in presenza di un bug, cioè di un errore. Imparare a scovarlo e, quindi, a usare la logica per capire la causa del malfunzionamento, è un’abilità fondamentale per uno sviluppatore. Questa attività prende in nome di debugging, o debug. A volte l’errore viene scoperto subito, altre volte più tardi con maggiori sforzi.
Programmi come Eclipse aiutano a prevenire questo incidente evidenziando gli errori di sintassi o di logica. Anche qui è meglio disabilitare tali funzioni per abituarsi a rilevare gli errori in modo autonomo.
Abituarsi a commentare il codice
I commenti consistono in parti testuali, ignorati dell’interprete, che servono allo sviluppatore per capire le operazioni previste in un pezzo di codice. Inserirli è fondamentale perché non è ottimale dover rileggere il codice per capire le operazioni svolte dal programma, specialmente se ripreso in mano dopo parecchio tempo da chi l’ha fatto, oppure da un altro sviluppatore per implementare altre parti se si lavora in team.
Rafforzare le abilità acquisite
Esercitarsi quotidianamente
Non c’è alcun dubbio che la chiave per apprendere qualcosa stia nell’esercizio quotidiano. Ogni giorno bisogna sempre trovare il tempo per scrivere e sperimentare codice: se una giornata è particolarmente piena basta anche mezz’ora, nelle giornate più libere si arriva all’ora/ora e mezza.
Ma più che il tempo in se conta la qualità dell’apprendimento. Meglio una cosa imparata bene che tre capite a metà.
Creare le prime applicazioni
Una volta capiti i concetti base si possono creare le prime applicazioni web, partendo da qualcosa di semplice ma potenzialmente utile per gli altri, nell’ambito di quello che ci interessa. È importante curare bene il nostro prodotto non trascurando i particolari: vanno previsti tutti i comportamenti di chi potenzialmente usa la nostra applicazione e gestire opportunamente tutti i casi possibili.
La difficoltà dei nostri programmi aumenterà di volta in volta in una sorta di sfida sana a se stessi, in cui l’unico obiettivo è accrescere le proprie abilità; tuttavia è altamente sconsigliato fare il passo più lungo della gamba.
Imparare a cercare quello che ci serve
Ogni linguaggio prevede una serie di istruzioni e funzioni predefinite, di cui le principali e le più usate vanno sapute. È però impossibile ricordarle tutte, specie quelle meno usate. Questo richiede di saper cercare su internet la funzione o l’algoritmo utile in una determinata situazione: ci sono diversi articoli, nonché discussioni su vari forum, dove si può trovare quello che ci serve di volta in volta. L’abilità sta nel fare una ricerca efficace.
Essere metodici
Quando si scrive codice è bene seguire un metodo standard, in modo costante, al fine di garantire una facile leggibilità dello script e una buona performance del programma, rispettando le convenzioni solitamente usate.
Le variabili si definiscono con dei sostantivi, le funzioni con dei verbi, usando le lettere minuscole. L’iniziale maiuscola si usa per il nome della classe o per una parola che compone il nome di una variabile, come miaVariabile. Le costanti si scrivono con tutte le lettere maiuscole, come MIA_COSTANTE. Un’altra buona abitudine è utilizzare termini in lingua inglese, escludendo accuratamente quelli già previsti dal linguaggio stesso (tra i più comuni ci sono function, delete, array, for, while, new, in).
I pezzi di codice contenuti in altri vanno indentati, cioè scritti con una tabulazione in più rispetto al codice contenitore.
Allo stesso tempo bisogna cercare di far compiere alla macchina il minor numero di operazioni possibile per arrivare a un risultato.
Per saperne di più puoi leggere l’articolo Come scrivere bene codice Javascript e Php, di cui molte regole valgono per tutti i linguaggi.
Insistere di fronte agli insuccessi
Gli insuccessi e le sconfitte sono del tutto naturali: di fronte a queste mai arrendersi e insistere finché non si raggiunge l’obiettivo sperato. L’importante è arrivare a capire cosa non funziona e come risolverlo. È anche attraversando queste difficoltà che si migliora giorno per giorno.
Approfondire ed espandere le conoscenze
Non si finisce mai di imparare: la conoscenza di un linguaggio richiede un approfondimento su temi specifici e un aggiornamento continuo sulle innovazioni che vengono via via apportate. Possiamo:
- Frequentare dei corsi specifici. Un insegnate e dei compagni di corso più esperti saranno utili per comprendere meglio quello che hai imparato e darti nuove nozioni e nuovi spunti. Il supporto a compagni meno esperti sarà per loro un aiuto importante e per te un modo per ripassare e affrancare meglio la tua conoscenza in materia.
- Procurarsi libri specifici. Su questi manuali puoi trovare una serie di esempi e di principi teorici che possono aiutarti.
- Consultare forum. Leggere i casi particolari, posti da utenti come te, e leggere le soluzioni, proposte da altri partecipanti, torna utile per prendere confidenza con casi reali.
Mettere in campo le proprie competenze
È giunto ora il momento di mettersi in gioco con le competenze acquisite.
Crea qualcosa di tuo
Per iniziare e dimostrare, al momento opportuno, quello che si sa fare è bene cominciare a creare qualcosa di proprio.
- Puoi creare siti di qualsiasi natura: applicazioni per calcolare Imu o quant’altro, siti e-commerce, siti su hobby che coltivi: l’importante è che possano interessare altri utenti e siano posizionati bene su Google.
- Puoi anche sviluppare framework e librerie che consentano di velocizzare lo sviluppo di un programma, per poi diffonderle su portali come gitHub.
- Quando hai sviluppato un po’ di siti crea un portfolio con tutti i lavori da te fatti: potrai metterlo su un tuo sito, su un tuo profilo social e sul tuo curriculum vitae.
Puoi essere utile agli altri
La tua esperienza e le tue conoscenze possono aiutare gli altri e, allo stesso tempo, dimostrare il tuo livello di competenza.
- Produci articoli su quanto hai approfondito: dalle innovazioni sul linguaggio di tua competenza a semplici tutorial con esempi, utili a capire l’applicazione di uno o più concetti.
- Iscriviti e partecipa a forum tematici: potrai richiedere consigli quando sei in difficoltà e aiutare altri quando lo sono loro. In ogni caso ti sarà utile per rafforzare quanto hai imparato.
- Cerca qualche collaborazione con altri sviluppatori che abbiano competenze compatibili con le tue: lavorare in squadra ti darà l’opportunità di perfezionare il tuo modo di sviluppare e testare sul campo il tuo livello di competenza. L’unione fa la forza!