giovedì 24 marzo 2011

Imparare un linguaggio di programmazione. Alcune considerazioni e microrecensione degli Head First della O'Reilly

Volete ampliare il vostro bagaglio di linguaggi di programmazione. Che fate? La prima mossa è solitamente cercare un tutorial. Se quello non basta si cerca una bella guida. Alla fine andate in libreria a comprare il tomo sull'argomento.
Qualsiasi supporto voi usiate la struttura è sempre la stessa:
  • variabili e operatori principali
  • vettori e stringhe
  • loop e istruzioni condizionali
  • ...
Solo alla fine, se il linguaggio è orientato agli oggetti, vengono spiegate l'implementazione delle classi e degli oggetti. Se fate un corso, sempre per quanto ho visto io, la faccenda non cambia di molto.
Finché il linguaggio è esclusivamente procedurale come il buon vecchio C, non è un grosso problema. Ma quando è un OOPL come il Java o il C++, allora diventa un macello. Prima si impara il linguaggio in modo procedurale, poi in modo orientato agli oggetti. Considerato che sono due modi completamente diversi di pensare il codice, diventa uno scoglio enorme passare da uno all'altro.
Fortunatamente qualche caso isolato che ci viene incontro c'è. Tempo fa avevo trovato per il Python "Pensare da informatico. Impara con Python", che utilizza la scaletta di cui sopra, ma fa molto bene la parte orientata agli oggetti, anche dal punto di vista prettamente teorico.
Ma c'è qualcuno che ha fatto di meglio. La mitica casa editrice O'Reilly ha pubblicato qualche anno fa un'intera collana chiamata Head First, che usa un approccio assolutamente informale e giocoso, ma altamente efficace, per insegnare gli argomenti proposti. I prezzi non sono molto esosi (su Amazon.com si trovano usati a poco), ma meritano di essere provati. Con un misto di scherzi, giochini, immagini buffe e situazioni comiche spiegano molti argomenti: dal web design al Java, dal Project Management al networking.
Io ho iniziato quello sul Java (linguaggio da me non proprio amato, ma il più richiesto sul mercato) e mi è piaciuta molto l'impostazione. Soprattutto per il fatto che insegna subito a programmare ad oggetti, caratteristica comoda ed essenziale di questo come di altri linguaggi. L'approccio informale fa venire voglia di leggerlo e di studiarlo, molto di più che uno sterile tomo bianco e grigio con tanti termini, tanto codice e tanta noia.
Solitamente non sono propenso a consigliare spese per imparare qualcosa, tantomeno un linguaggio di programmazione, ma devo ammettere che i libri di questa collana sono un valido aiuto, soprattutto per chi inizia.
Qualcuno di voi ha provato a leggere questo o altri libri di questa collana? Che ne pensate?