Programmatore 101: Insegnati a codificare

Hai sempre voluto imparare a costruire software da solo – o semplicemente a montare uno script occasionale – ma non hai mai saputo da dove cominciare. Fortunatamente, il web è pieno di risorse gratuite che possono trasformarti in un programmatore in poco tempo.

Video recente

Questo browser non supporta l’elemento video.

Dall’invenzione di internet, i programmatori l’hanno usato per discutere le tecniche di sviluppo del software, pubblicare tutorial e condividere esempi di codice da cui altri possono imparare e usare online. Se sei curioso di sapere come diventare un programmatore, puoi iniziare a correre usando tonnellate di tutorial e risorse gratuite sul web.

Prima le cose importanti: Non fissarti sulla scelta di un linguaggio

G/O Media può ottenere una commissione

Pubblicità

Una trappola comune per i principianti è rimanere bloccati a capire quale linguaggio di programmazione è meglio imparare per primo. Ci sono un sacco di opinioni là fuori, ma non c’è un solo linguaggio “migliore”. Ecco il punto: alla fine, il linguaggio non conta così tanto. La comprensione dei dati e delle strutture di controllo e dei modelli di progettazione è molto importante. Ogni linguaggio – anche un semplice linguaggio di scripting – avrà elementi che userete anche in altri linguaggi e vi aiuterà ad imparare. Nei corsi che ho seguito per ottenere la mia laurea in Informatica, ho programmato in Pascal, Assembly e C-linguaggi che non sono mai stati pagati per programmare professionalmente. Ho imparato da solo ogni linguaggio che ho usato nella mia carriera, riutilizzando concetti che già conoscevo, e facendo riferimento alla documentazione e ai libri per imparare la sintassi. Quindi, non fissatevi su quale lingua imparare per prima. Scegliete il tipo di sviluppo che volete fare, e iniziate ad usarne uno che funziona.

Ci sono diversi tipi di sviluppo software che potete fare per varie piattaforme, dal web al vostro desktop al vostro smartphone alla linea di comando. In questo articolo, descriveremo alcuni dei nostri tutorial e risorse preferite per imparare a programmare per ogni piattaforma principale. Daremo per scontato che tu sia un utente esperto, ma un principiante quando si tratta di manipolare frammenti di codice, quindi manterremo le cose a livello di principiante. Anche solo seguendo un tutorial di programmazione per principianti, sarai felice di vedere fin dove puoi arrivare.

Pubblicità

Desktop Scripting

Il modo più semplice per provare la tua mano nella programmazione per il tuo desktop Windows o Mac è iniziare con un programma di scripting o macro come AutoHotkey (per Windows) o Automator (per Mac). In questo momento i codificatori hardcore tra i lettori di Lifehacker stanno urlando ai loro monitor, dicendo che AHK o AppleScript non sono “vera” programmazione. Questo può essere vero – tecnicamente questi tipi di strumenti fanno solo scripting di alto livello. Ma per chi è nuovo alla programmazione e vuole solo bagnarsi i piedi, automatizzando azioni sul proprio desktop, questi strumenti gratuiti sono un modo fantastico per iniziare, e sareste sorpresi di quanto potete fare con loro.

Pubblicità

Per esempio, Adam ha sviluppato l’applicazione standalone per Windows che tutti conosciamo e amiamo, Texter, usando AutoHotkey, quindi questo linguaggio di scripting è capace di molto di più che progetti di automazione su piccola scala. Per iniziare con AutoHotkey, date un’occhiata al tutorial di Adam su come trasformare qualsiasi azione in una scorciatoia da tastiera usando AutoHotkey. (Poi, date un’occhiata al codice sorgente di Texter per vedere le interiora di una vera e propria applicazione Windows basata su AHK.)

Pubblicità

Sviluppo Web

Invece di essere legati a specifici linguaggi di programmazione e al look and feel di un particolare sistema operativo, potete mettere la vostra applicazione killer nel browser ed eseguirla nel cloud, come una webapp. Benvenuto nel meraviglioso mondo dello sviluppo web.

Pubblicità

HTML e CSS: La prima cosa che devi sapere per costruire qualsiasi sito web è l’HTML (il markup che compone le pagine web) e i CSS (le informazioni di stile che rendono quel markup carino). L’HTML e i CSS non sono veri e propri linguaggi di programmazione: sono solo la struttura della pagina e le informazioni di stile. Comunque, dovresti essere in grado di scrivere semplici HTML e CSS a mano prima di iniziare a costruire applicazioni web, perché una pagina web è il frontend di ogni applicazione web. Questo tutorial sull’HTML è un buon punto di partenza.

JavaScript: Ora che puoi creare una pagina web statica con HTML e CSS, le cose si fanno divertenti, perché è il momento di imparare JavaScript. JavaScript è il linguaggio di programmazione del browser web, la magia che fa funzionare gli effetti dinamici nella pagina. JavaScript è anche il materiale dei bookmarklet, degli script utente Greasemonkey e di Ajax, quindi è la chiave per fare ogni sorta di chicche per il web. Inizia ad imparare JavaScript qui.

Pubblicità

Server-side scripting: Una volta che sei bravo a far accadere le cose all’interno di una pagina web, avrai bisogno di metterci dietro qualche azione dinamica del server, e per questo avrai bisogno di passare a un linguaggio di scripting lato server, come PHP, Python, Perl o Ruby. Per esempio, per fare un modulo di contatto basato sul web che invia un’e-mail da qualche parte in base a ciò che un utente ha inserito, è necessario uno script lato server. I linguaggi di scripting come PHP possono anche parlare con un database sul tuo server web, quindi se vuoi fare un sito dove gli utenti possono accedere e memorizzare informazioni, questa è la strada da seguire. L’eccellente sito di sviluppo web Webmonkey è pieno di tutorial per vari linguaggi di programmazione web. Vedi il loro PHP Tutorial for Beginners. Quando sei pronto, controlla come usare PHP per parlare con un database nel tutorial PHP e MySQL di WebMonkey. La documentazione online di PHP e il riferimento alle funzioni è il migliore sul web. Ogni voce (come questa sulla funzione strlen) include commenti degli utenti in fondo che spesso sono utili quanto la documentazione stessa. (Si dà il caso che io abbia un debole per PHP, ma ci sono molti altri linguaggi di scripting lato server che potreste decidere di usare.)

Pubblicità

I frameworks web: Nel corso degli anni, gli sviluppatori web hanno dovuto risolvere gli stessi problemi e riscrivere codice simile per costruire siti web dinamici. Per evitare di far reinventare a tutti la ruota per ogni nuovo progetto di sviluppo web, alcuni programmatori hanno ideato dei framework di sviluppo che fanno un po’ di lavoro ripetitivo per voi. Il popolare framework Ruby on Rails, per esempio, prende il linguaggio di programmazione Ruby e offre una struttura specifica per il web per svolgere i compiti comuni delle applicazioni web. Infatti, Adam ha usato Rails per costruire la sua prima seria (e impressionante!) applicazione web, MixTape.me. Ecco il suo punto di vista su come costruire un sito web da zero senza esperienza. Altri framework di sviluppo web popolari includono CakePHP (per programmatori PHP), Django (per programmatori Python), e jQuery (per JavaScript).

Pubblicità

Apipe web: Un’API (Application programming interface) è un modo programmatico per diversi pezzi di software di parlare tra loro. Per esempio, se vuoi mettere una mappa dinamica sul tuo sito web, vuoi usare una Google Map invece di costruire la tua mappa personalizzata. L’API di Google Maps rende facile includere programmaticamente una mappa in una pagina con JavaScript. Quasi ogni servizio web moderno che conosci e ami ha un’API che ti permette di includere dati e widget da esso nella tua applicazione, come Twitter, Facebook, Google Docs, Google Maps, e la lista continua. Integrare altre webapp nella vostra applicazione web tramite API è l’ultima frontiera del rich web development. Ogni buona, importante API di servizio web offre una documentazione completa e una sorta di guida rapida per provarla (ecco quella di Twitter, per esempio). Impazzite.

Pubblicità

Scripting a riga di comando

Se volete scrivere un programma che prenda un input testuale o un file e produca qualcosa di utile, la riga di comando è il posto giusto per farlo. Mentre la linea di comando non è così sexy o bella come una webapp o un’applicazione desktop, per lo sviluppo rapido di script veloci che automatizzano i processi, non si può battere.

Pubblicità

Diversi linguaggi di scripting che funzionano su un server web basato su Linux funzionano anche sulla linea di comando, come Perl, Python e PHP-per cui imparare uno di questi cattivi ti rende esperto in due contesti. Il mio percorso non mi ha mai portato troppo lontano lungo la strada di Perl, ma ho imparato da solo Python usando l’eccellente e gratuito libro online, Dive into Python.

Avviso

Se diventare un ninja di Unix è uno dei tuoi obiettivi di programmatore, devi assolutamente diventare bravo nello scripting di shell con bash. Bash è il linguaggio di scripting a riga di comando di un ambiente *nix, e può fare di tutto, dall’aiutarvi a impostare backup automatici del vostro database e dei vostri file alla costruzione di una vera e propria applicazione con interazione dell’utente. Senza alcuna esperienza nello scrivere script bash oltre una dozzina di righe, ho finito per sviluppare un vero e proprio gestore personale di liste di cose da fare in bash, Todo.txt CLI.

Add-ons

Al giorno d’oggi, le moderne webapp e i browser sono estensibili con pezzi di software che li collegano e aggiungono funzionalità. Lo sviluppo di add-on sta guadagnando popolarità perché sempre più sviluppatori guardano al software esistente, come Firefox o WordPress, e pensano “Ma se solo potesse fare QUESTO…”

Pubblicità

Si possono fare un sacco di cose in qualsiasi browser web con solo una padronanza di HTML, JavaScript e CSS. Bookmarklets, Greasemonkey user scripts, e Stylish user styles sono creati con gli stessi pezzi di codice che fanno le normali pagine web, quindi vale la pena imparare anche se si vuole solo modificare un sito esistente con un piccolo snippet di codice.

I componenti aggiuntivi del browser più avanzati, come le estensioni di Firefox, permettono di fare di più. Sviluppare estensioni per Firefox, per esempio, richiede che tu sia pratico di JavaScript e XML (markup simile all’HTML, ma molto più rigoroso nel formato). Nel 2007 ho spiegato come costruire un’estensione per Firefox, un’abilità che ho acquisito dopo essermi imbattuto in un tutorial gratuito.

Pubblicità

Anche molte applicazioni web gratuite e molto amate offrono un framework di estensione, come WordPress e MediaWiki. Entrambe queste applicazioni sono scritte in PHP, quindi il comfort con PHP è un prerequisito per iniziare. Ecco come scrivere un plug-in per WordPress. Gli sviluppatori che vogliono cavalcare l’avanguardia di Google Wave possono iniziare a scrivere gadget e bot in HTML, JavaScript, Java e Python. Ho scritto il mio primo bot per Wave seguendo questo tutorial rapido in un pomeriggio.

Pubblicità

Sviluppo Web per il Desktop

La parte migliore di iniziare a programmare in un contesto è quando puoi prendere quelle abilità e applicarle altrove. Imparare prima lo sviluppo web è un ottimo modo per iniziare, perché ora ci sono modi per mettere queste abilità al lavoro su applicazioni desktop, anche. Per esempio, Adobe AIR è un ambiente di esecuzione multipiattaforma che ti permette di costruire la tua applicazione una volta e rilasciarla per essere eseguita sul desktop per ogni sistema operativo su cui gira AIR. Le applicazioni AIR sono scritte in HTML, Flash, o Flex, quindi vi permette di applicare le vostre abilità di sviluppo web in un contesto desktop. AIR è una grande opzione per distribuire applicazioni desktop come una delle nostre 10 migliori applicazioni per cui vale la pena installare Adobe AIR.

Pubblicità

Sviluppo di app mobili

Applicazioni mobili come quelle che girano sul tuo iPhone o smartphone Android sono di gran moda ora, quindi potresti sognare di diventare ricco sull’iTunes App Store con la prossima killer app. Tuttavia, per i nuovi programmatori, tuffarsi a capofitto nello sviluppo mobile può essere una curva di apprendimento difficile, dal momento che richiede comfort con linguaggi di programmazione avanzati come Java e Objective C. Tuttavia, vale la pena controllare come è lo sviluppo di iPhone e Android. Dai un’occhiata a questo semplice esempio di sviluppo di un’applicazione iPhone per avere un assaggio di ciò che fanno gli sviluppatori iPhone. Le applicazioni Android sono scritte in Java, e qui c’è un simpatico video tutorial di come sia il flusso di lavoro di un’applicazione “Hello Android”.

Pubblicità

Pazienza, grasso di gomito, prova ed errore

I buoni programmatori sono una razza speciale di persistenti risolutori di problemi che sono dipendenti dalle piccole vittorie che arrivano lungo un lungo percorso di prove ed errori. Imparare a programmare è molto gratificante, ma può anche essere un’esperienza frustrante e solitaria. Se potete, prendete un compagno che lavori con voi lungo la strada. Diventare davvero bravi nella programmazione, come in qualsiasi altra cosa, è una questione di perseverare, provare le cose e fare esperienza man mano che si va avanti.

Pubblicità

Questo articolo è solo una raccomandazione di un programmatore autodidatta per i principianti. Programmatori esperti: Cosa mi sono perso? Non importa il vostro livello di abilità, aggiungete i vostri pensieri e raccomandazioni per i principianti nei commenti.

Gina Trapani, editore fondatore di Lifehacker, pensa che i migliori programmatori siano autodidatti. La sua rubrica settimanale, Smarterware, appare ogni mercoledì su Lifehacker. Iscriviti al tag feed di Smarterware per ricevere le nuove puntate nel tuo newsreader.

Pubblicità

Lascia un commento