Impara a programmare con l'open source

Naturalmente, chiunque abbia trascorso del tempo con Excel potrebbe farlo (e produrre un risultato migliore), ma questo illustra solo il problema, dato che le applicazioni che l'uso quotidiano diventa sempre più sofisticato, le abilità di programmazione necessarie per scriverle diventano sempre più complesse, e quindi la barriera per entrare nella professione si alza. C'era da aspettarselo, ma l'informatica rimane l'ultima professione aperta ai dilettanti.

Impara a programmare con l'open source

Probabilmente non voleresti su un aereo progettato da ingegneri aeronautici senza lauree, ma sicuramente hai volato su aerei il cui software è stato scritto da persone senza paragoni titoli di studio. Abbiamo urgente bisogno di trovare un modo per introdurre una programmazione che non provochi la risposta "e allora?", ma instilli qualcosa di utile.

Applicazione, stile o linguaggio?

Se qualcuno vuole imparare a programmare ci sono tre modi in cui potrebbe iniziare: potrebbe imparare a creare un particolare tipo di applicazione; o imparare un particolare stile di programmazione; oppure potrebbero imparare una lingua particolare. A volte, questi arrivano tutti mano nella mano: se voglio imparare a creare app per iPhone, questo mi impone praticamente di imparare l'Obiettivo C, che a sua volta significa imparare lo stile orientato agli oggetti.

A volte, tuttavia, interrompere tali collegamenti può essere utile. Se vuoi scrivere programmi per siti Web, le tue opzioni per lo stile e il linguaggio di programmazione sono piuttosto ampie, ma la scelta di un particolare stile di programmazione limiterà ciò che puoi fare con esso.

iPhoneAd esempio, la scelta di uno stile di programmazione puramente funzionale limiterà le applicazioni possibili creare (ci sono alcune persone là fuori che non saranno d'accordo) e restringere la scelta della lingua enormemente. La scelta del linguaggio di programmazione sbagliato per l'applicazione può portare a problemi: PHP è un ottimo linguaggio per le applicazioni web, ad esempio, ma sarebbe una scelta sbagliata per scrivere app per iPhone (perché non funziona su iPhone) o per simulare il flusso d'aria attorno alla fusoliera di un aereo di linea.

Quindi, dati tutti questi problemi, da dove dovremmo iniziare? Se questo fosse un corso universitario di informatica, inizieremmo con le basi della programmazione in uno stile particolare, e se quello stile fosse programmazione procedurale potremmo iniziare con le variabili, quindi passare a strutture di controllo come IF…THEN…ELSE e WHILE…DO, quindi a funzioni e procedure. Per la programmazione orientata agli oggetti potremmo iniziare allo stesso modo, quindi passare alle classi, oppure potremmo iniziare dalle classi, a seconda del linguaggio orientato agli oggetti che abbiamo scelto. In alternativa, potremmo voler creare un particolare tipo di applicazione, che è il modo in cui la programmazione viene spesso insegnata al di fuori dei dipartimenti di informatica.

A un matematico potrebbe essere insegnata la programmazione appena sufficiente per creare programmi per risolvere problemi particolari nell'analisi numerica. Qualunque approccio adottiamo, avremo bisogno dei seguenti elementi: alcuni materiali di studio; un'implementazione del nostro linguaggio di programmazione scelto; e un problema da risolvere.

Libri open source

Tendiamo a pensare sempre all '"open source" come applicato ai programmi per computer, ma c'è un mucchio di altre risorse aperte là fuori, che vanno dalle ricette per bevande contenenti caffeina ai libri. In termini di risorse di programmazione, molte università ora pubblicano tutti i loro materiali sul web, ma le diapositive delle lezioni possono essere difficili da seguire – ai docenti piace credere che il loro tocco personale aggiunga valore alle diapositive per incoraggiare gli studenti a frequentare effettivamente il loro classi. (Ero solito lasciare spazi vuoti deliberati nelle diapositive, quindi se non avessi assistito alla lezione i tuoi appunti avrebbero avuto lacune simili, ma ero un severo sorvegliante.)

Un buon sito da provare è Freetechbooks.com, che contiene una raccolta di libri che coprono molti argomenti tecnici, da vari aspetti dell'informatica teorica alla programmazione introduttiva in numerosi linguaggi. I libri sono presentati come collegamenti ad altri siti, quindi dovrai guardarli tu stesso.