Imparare a Programmare Imparare a Programmare
  • Capitoli
    • 1. Introduzione a Python
    • 2. Velocità di apprendimento: 10/10
    • 3. Applicazioni: 6/10
    • 4. Richiesto nel lavoro: 5/10
    • 5. Risorse: 9/10
    • 6. La mia modesta opinione
  • 1. Introduzione a Python
  • 2. Velocità di apprendimento: 10/10
  • 3. Applicazioni: 6/10
  • 4. Richiesto nel lavoro: 5/10
  • 5. Risorse: 9/10
  • 6. La mia modesta opinione
  • 1. Introduzione a Python
  • 2. Velocità di apprendimento: 10/10
  • 3. Applicazioni: 6/10
  • 4. Richiesto nel lavoro: 5/10
  • 5. Risorse: 9/10
  • 6. La mia modesta opinione
Programmare in Python

Programmare in Python

Tutto quello che avresti voluto sapere su Python
(ma non hai mai osato chiedere)

Python ha la fama di essere un linguaggio semplice da imparare e per questo viene consigliato come primo linguaggio di programmazione, ma è veramente la scelta giusta? Python è il miglior linguaggio con cui iniziare a programmare?

In questo articolo affronto i dubbi più comuni di chi vuole iniziare a studiare Python:

  • È veramente così semplice da imparare?
  • Cosa si può creare con Python? (un gioco, un intelligenza artificiale, un software)
  • Il fatto che sia facile da imparare è davvero cosi importante per il lavoro?
    Da quali aziende viene richiesto e per quali ruoli?
  • Come iniziare a studiarlo? (corsi, manuali, tutorial, ecc.)

Sei pronto?

Iniziamo!

Alberto OllaAlberto Olla
Capitolo 1

Introduzione a Python

Introduzione al linguaggio di programmazione Python

Cos'è Python e come iniziare ad usarlo

Parliamo finalmente di Python: è il linguaggio che, forse, merita più di tutti di essere in questa lista dei migliori linguaggi per iniziare a programmare (ma non dimentichiamo Javascript).

Quando si chiede: “Qual è il miglior linguaggio per iniziare?”

Molti rispondono valutando le specifiche tecniche e interpretando, così, in modo sbagliato la domanda.

Chi valuta solo le specifiche tecniche ignora completamente di dover rivolgersi a dei neofiti.

Per chi non ha mai programmato prima, non ha così tanta importanza se sia un linguaggio di alto o basso livello, se supporti o meno la programmazione ad oggetti o se sia il più veloce del mondo.

Per chi è nuovo nell’ambito della programmazione, la priorità numero uno è sedersi davanti allo schermo e imparare a programmare il più in fretta possibile!

Idealmente si tende a cercare il minor numero possibile di “distrazioni”, tra lo scrivere il codice per la prima volta ed eseguirlo con successo.

Qualunque cosa si frapponga tra queste due operazioni è una perdita di tempo, e crea frustrazione. Il fatto che un linguaggio sia stabile, universale e scalabile, non è importante se chi ha appena iniziato a programmare quando trova dei problemi che non riesce a risolvere abbandona la programmazione.

Ci sarà tempo in futuro per imparare il valore di queste cose ma al momento la priorità è un'altra: cercare di catturare l’attenzione dell’aspirante programmatore per far crescere in lui la voglia di continuare.
Questa è la filosofia con la quale Python è stato ideato!
Python è un linguaggio molto semplice da eseguire, ed è anche nativo su Mac e Linux (per esempio Ubuntu).

Se usi uno di questi due sistemi operativi puoi subito creare un file .py (my_file.py) e lanciare nella console il comando:
python my_file.py

Fatto! Facilissimo. Faccia sorridente

Su Windows invece puoi scaricarlo dal sito ufficiale ed è ugualmente molto semplice da installare.

Un altro linguaggio di programmazione che ha queste caratteristiche di facilità e immediatezza è Javascript, di cui parlerò in un altro articolo apposito.

Non ho ancora detto che:

  • Python è un linguaggio adatto a qualsiasi scopo (siti web, software, analisi di dati, intelligenza artificiale, calcoli scientifici, ecc).
  • Supporta la programmazione ad oggetti (se non sai cos’è, vedi l'introduzione a Java ).
  • È un linguaggio adatto a principianti ed esperti.
  • Ha sostituito Java nelle principali università e scuole del mondo (vediamo meglio questo aspetto nei prossimi capitoli).
  • Sono disponibili tantissime librerie Python in campo educativo e scientifico
Capitolo 2

Velocità di apprendimento: 10/10

Python: il linguaggio più facile da imparare

Il più grande vantaggio del linguaggio Python

Python è stato progettato non solo per essere semplice da capire, ma anche divertente da usare!
Il suo nome, infatti, fa riferimento ai Monty Python.

Programmare in Python è divertente
Locandina del film "Monty Python - Il senso della vita".

Se sei “giovane” probabilmente questo nome non ti dirà nulla, se invece come me hai qualche anno in più li avrai sentiti nominare. Erano un famoso gruppo di comici inglesi e il nome del linguaggio Python è un omaggio.

Il divertimento è un fortissimo motivatore.

Con Python sei in grado di creare prototipi e mini-programmi molto velocemente, così da provare subito delle soddisfazioni reali. È proprio grazie a questa sua semplicità che ha guadagnato non solo molta popolarità, ma anche la fama di “linguaggio facile da imparare”.

Python è facile da capire per due motivi:

  1. È un linguaggio di alto livello (se non sai cosa vuol dire ora te lo spiego).
  2. Ricorda la lingua inglese. Infatti usa delle parole inglesi come fossero dei comandi, nel codice, così da semplificarne la lettura.

Linguaggio di “alto livello” indica che il linguaggio si occupa di tutti gli aspetti più tecnici di funzionamento e gestisce, quindi, tutta la parte complessa del programma. Lasciando che il programmatore si concentri sulla scrittura del codice, senza preoccuparsi di dettagli non sempre semplici da gestire e capire.

Il fatto che Python gestisca tutto questo per noi è un grande vantaggio, perché ci toglie una grande fonte di stress, soprattutto per chi ha appena iniziato.

Ho spiegato meglio cosa si intende per linguaggio di alto e basso livello, nell’articolo su Java.

Il fatto che sia così semplice rende lo sviluppo di un progetto molto più veloce, perché a tutti piace terminare prima il proprio lavoro!

Se uno sviluppatore è contento lavora in maniera più efficiente, ed è per questo che le aziende lo amano. Faccia sorridente

Un’ultima cosa prima di chiudere con il capitolo sull’apprendimento: è importante dire che anche Python (come tanti altri linguaggi moderni) supporta la programmazione ad oggetti, anche se non la mette in primo piano come fa invece Java.

Se non sai cos’è la programmazione ad oggetti, possiamo definirla come un particolare modo di tenere organizzato il proprio codice.

Se vuoi saperne di più ti consiglio di leggere sempre l’articolo che ho scritto su Java.

Java è il linguaggio ad oggetti più diffuso al mondo ed è anche il più utilizzato sul lavoro: sono due ottimi vantaggi. Il maggiore problema è che per scrivere le prime righe in Java devi, necessariamente, scontrarti con i concetti di Classe, Metodo, Oggetto e Istanza.

Sai per caso di cosa si tratta?

Se così fosse non saresti un principiante ma, se ti trovi qui, è più probabile che tu non sappia di cosa sto parlando.

Il modo di pensare per iniziare a programmare con Python è completamente diverso e molto più sensato per i principianti, ovvero:

  1. La prima riga di codice viene letta ed eseguita.
  2. Poi il programma fa la stessa cosa con la seconda riga di codice.
  3. E cosi via come se leggesse dall’alto verso il basso.

Senza utilizzare Oggetti e Classi che sono concetti di programmazione intermedia, e non verrebbero capiti, almeno all’inizio.

Facciamo subito un esempio pratico.

Ti mostro lo stesso esercizio scritto in due linguaggi diversi. L'esercizio è semplice: calcolare l'area di un rettangolo (base per altezza).

Codice in Java
class RectangleArea
{
    public static void main(String arg[])
    {
   
        double width = 10;
        double height = 5;
        
        double area = width * height;
        
        System.out.println("Area = " + area);
    
    }
}
Codice in Python
width = 10
height = 5

area = width * height

print("Area = %0.2f" %area)
Per gli esperti: so bene che questo genere di paragoni valgono poco nel mondo reale. Serve unicamente per mostrare la differenza le due impostazione del codice.

C’è anche da dire che Python non è molto “performante”: se si scrivessero due programmi, uno in Python e uno in Java, quest’ultimo verrebbe eseguito più rapidamente.

Ora potresti pensare che, considerando la sua “lentezza”, Python sia un linguaggio da accantonare ma ti assicuro che la velocità di esecuzione non è sempre così importante.

Se ti stai chiedendo perché, dai un'occhiata all’articolo sul C, uno dei linguaggi più performanti di sempre, e ti accorgerai che, parafrasando lo zio Ben di Spiderman:
"Da un grande potere derivano grandi responsabilità conseguenze"

Capitolo 3

Applicazioni: 6/10

Cosa permette di creare il linguaggio Python

Cosa si può programmare con Python?
Ecco tutti i modi in cui viene usato!

Abbiamo detto che è un linguaggio adatto a qualsiasi scopo (general purpose) e che viene facilmente usato in ambiti anche completamente diversi tra loro, per piccoli e grandi progetti, sia offline che online.

Aspetta però, anche se Python viene usato in diversi settori non vuol dire che sia “forte” in tutto!

Offre il meglio di sé in:

  1. Sviluppo web.
  2. “Scripting” semplice.
  3. Analisi dei dati.

Riprenderemo questi tre aspetti nel capitolo sul lavoro.

Intanto vediamo cosa ci consente di creare.

Sviluppo web:

Per quanto riguarda l’ambito web, Python viene utilizzato in due modi, molto diversi tra loro.

Possiamo utilizzare il linguaggio per creare veri e propri siti web. Questa attività non viene fatta utilizzando il linguaggio “puro”, ma delle “strutture” già pronte (frameworks), che aiutano lo sviluppatore a creare siti web.

Perchè sono così utili i web frameworks quando si parla di sviluppo web con Python?

Ora te lo spiego, ti faccio un esempio:

Immagina di voler creare un sito internet, se lo scrivessi in Python puro, senza utilizzare nessun tipo di framework (struttura), dovresti scrivere da solo tutte quelle funzionalità basilari che servono semplicemente a far funzionare un sito internet.
Innanzitutto dovresti creare un sistema che colleghi gli indirizzi web a dei file, ad esempio:

www.miosito.it/home sarà collegato a home.html
www.miosito.it/accedi sarà collegato a login.html
www.miosito.it/blog sarà collegato al file blog.html

Inoltre, se volessi inserire una funzione di registrazione la dovresti creare a mano, e dovresti fare lo stesso anche per inserire un sistema di pagine private (non visibili per chi non ha fatto il login ma visibili dopo che lo si effettua) o un sistema di pagamento in un e-commerce, ecc. (la lista è molto lunga e potrebbe continuare all’infinito).

La morale della favola è che non potresti dedicarti alle funzioni “particolari” del tuo sito, ma dovresti perdere tempo a riscrivere tutte quelle che sono le funzioni basilari comuni a varie tipologie di siti.

I Frameworks servono proprio a questo, ti offrono una sorta di struttura già pronta, con degli strumenti già creati da altri sviluppatori (sempre in Python), che puoi utilizzare e configurare in base alla tue esigenze.

Quindi con un framework avresti già tutte le funzioni basilari di un sito, e dovresti solo configurarle, aggiungendo quelle più particolari.

Ci sono vari frameworks scritti in Python e ovviamente non tutti hanno le stesse “funzionalità”: magari uno gestisce più cose di un altro oppure utilizza un metodo diverso per fare la stessa cosa.

Ci sono frameworks con tantissime funzioni e tantissimi strumenti a disposizione per aiutarti a fare qualsiasi cosa tu voglia!

Più strumenti offre il framework e maggiore è il codice Python che contiene, che si traduce in un maggiore “peso” in MB. Ci sono anche framework molto leggeri, che mettono a disposizione pochi strumenti basilari. Non sempre i frameworks con mille funzioni sono la scelta migliore.

Immagina di dover fare un mini sito con una sola pagina principale molto semplice, senza nulla di elaborato. Usando un framework “pesante” andresti ad utilizzare solo l’1% di tutti i suoi strumenti quindi, in questo caso, non avrebbe senso appesantire inutilmente il sito con funzionalità che non utilizzi. In questo caso avrebbe più senso utilizzare un framework leggero che offra solo ciò che ti serve, e nulla di più.

Tra i più famosi framework web troviamo:

  • Leggeri: Bottle, Webpy e Flask
  • Completi: Django e TurboGears

Volevo citare anche Plone, un CMS (Content Management System) scritto proprio in Python utilizzando Zope.

Cos’è un CMS? Bella domanda!

L’idea del CMS è quella di creare un sito senza saper programmare. Ti permette di personalizzare tutto tramite un pannello amministrativo visuale, che ha sicuramente una maggiore semplicità di utilizzo rispetto alle righe di codice, per chi non vuole programmare.
Ovviamente i CMS servono a creare siti “standard”, vedi Wordpress di PHP per creare blog e simili.

Ma questo non è l’unico modo di utilizzare Python sul web.

Esiste anche un altro modo ma, ti avviso, andiamo sul tecnico quindi non spaventarti se leggerai parole particolari.
C’è Twisted per scrivere servizi di rete, il CGI (Common Gateway Interface) fino alla gestione dei socket. Con Python è possibile accedere a database attraverso varie modalità, il DB-API, l’ODBC o anche l’ORM (come SQLAlchemy).

Software (programmi)

Per la cronaca, tra i programmatori, i programmi vengono chiamati “applicazioni desktop” e si possono creare anche con Python.

Python non è un linguaggio pensato per un singolo sistema operativo, quindi possiamo scrivere programmi che vengano eseguiti su Windows, Mac e Linux.

Uno degli strumenti più usati per questo genere di sviluppo è TkInter che include al suo interno anche il sistema gestione dell’interfaccia grafica, ovvero quello che si vede quando si usa il programma. Altri strumenti da citare sono PYQt e wxPython.

Analisi dei dati

Possiamo dire che Python è il leader dei linguaggi scientifici, viene utilizzato in bioinformatica, fisica, matematica, ingegneria, GIS, scienze e più in generale nell’ambito di ricerca.

Non è un caso, c’è un motivo che ha fatto crescere la sua popolarità nell’ambito scientifico: le ottime librerie a disposizione.

Cos’è una libreria? Non l'avevo già spiegato?
Lo spiego ancora.

Prendiamo in considerazione SciPy, una libreria scientifica, che al suo interno contiene dei codici scritti da altri programmatori per risolvere determinati problemi.
Ad esempio:

Ci basta importare la libreria nel nostro codice Python per poter richiamare delle funzioni statistiche, di interpolazione, di algebra lineare, quantizzazione vettoriale (non ho idea di cosa sia) e così via.
Insomma, possiamo richiamare queste funzioni senza aver scritto noi il codice, quindi un enorme vantaggio.

Qui puoi trovare la lista delle librerie Python usate in ambito scientifico.

Machine Learning

Machine chè? Cosa vuol dire?

In italiano possiamo tradurlo letteralmente come “apprendimento automatico”, ossia creare dei “programmi” in grado di imparare da soli. Faccia sorridente

Non sono argomenti facilissimi ma Python viene utilizzato anche per questo, oltre che per tutto il resto.

Dalle cose più semplici, come saper prevedere quando finiranno le scorte in magazzino, di un particolare prodotto, alle più divertenti, come predire l’andamento del mercato azionario per diventare milionario! (Scherzo, quest’ultima non è così fattibile).

Ad ogni modo anche in questo settore ci sono ottime librerie che includono algoritmi di apprendimento automatici come Scikit-Learn, NLTK e TensorFlow.

Visione computerizzata

Lo so, in italiano il nome non rende. Computer Vision suona molto meglio e di maggiore impatto.

Se non sai di cosa si tratta è normale. Faccia sorridente
Sono qui per spiegartelo!

Hai presente quando nei film di spionaggio si vede una porta super sicura e blindata che si apre solo con il riconoscimento dell’occhio?
Ecco, quello rientra nella computer vision!

Senza viaggiare troppo con la fantasia possiamo pensare invece a Facebook e al suo sistema di riconoscimento dei volti,o a YouTube che identifica automaticamente i video “per adulti” grazie a calcoli sui colori (principalmente sulla pelle umana).

Game Development

Già, si utilizza anche per la creazione di giochi, sia a livello commerciale che amatoriale.

Non mi credi?

Ecco qualche gioco famoso che probabilmente conosci e che utilizza Python: Battle Field 2, BattleField 2142 e BattleField heroes, EVE Online e Metin 2

Gli strumenti più usati sono PyGame, PyKyra e i motori di rendering 3D.

Creazione di script

Qui il discorso è enorme!

Innanzitutto chiariamo cos’è uno “script”: è un termine molto generico che indica semplicemente una porzione di codice del programma, non per forza visuale (cioè con finestrelle e bottoni), con un suo compito preciso.

Viene utilizzato per la creazione di script “generici”, per automatizzare qualcosa di noioso e manuale.
Per esempio:

Immagina di gestire il centro assistenza clienti di un'azienda informatica, e di ricevere tantissime email da parte di clienti che non riescono ad installare un certo programma e che, puntualmente, hanno un errore tipo 505 che blocca l’installazione.

Cosa puoi fare? Rispondere manualmente a ogni singolo cliente?
Sicuramente esiste una soluzione migliore!


Con Python potresti creare uno script che controlli ogni X minuti se hai ricevuto una nuova email e, qualora tu l’abbia ricevuta, cerchi nel testo se ci sono parole come: ‘505’ o ‘errore’.
A questo punto, se dovesse trovarle, invierebbe una risposta automatica preparata in precedenza. Faccia sorridente

Questo è un ottimo esempio di automazione con uno script Python.

Inoltre viene usato anche nel web scraping.

Di cosa si tratta?

Traduciamolo in italiano: web è sempre web mentre “scraping”, tradotto, diventa qualcosa come raschiatura, quindi letteralmente “raschiare il web”.

Immagina di voler scaricare tutte le immagini che trovi su un sito internet, come puoi fare?

A mano?
Hahah certo che no! Faccia felice

Farlo a mano sarebbe un’operazione monotona e noiosa, quindi è meglio automatizzarla.

Potresti creare uno script Python, che gironzola in tutte le pagine del sito da te indicato, e che scarichi tutte le immagini che trova. Faccia sorridente

Questo è un esempio di web scraping, ma in realtà puoi usarlo per “raschiare” quello che vuoi, non solo immagini.

Capitolo 4

Richiesto nel lavoro: 5/10

Fare carriere nel lavoro con Python

Hai imparato a programmare facilmente con Python e adesso cerchi un lavoro? Scopri quali opportunità offre!

Eccoci arrivati al lato economico, quello che per alcuni è il più importante.

Ti accorgerai che anche se Python ha enormi potenzialità e tanti tipi di applicazione, quelli che poi vengono usati comunemente nel lavoro sono solo uno o due.

Inoltre mi sembra doveroso fare una distinzione fondamentale tra la richiesta del linguaggio Python in ambito scientifico/di ricerca e in lavori tradizionali.
Cercherò di affrontare entrambi questi aspetti più nel dettaglio.

Lavoro in aziende tradizionali:

Python si trova al 6° posto nella lista dei linguaggi più richiesti nel mondo del lavoro, superato da altri come Java, Javascript e C#.

I linguaggi più richiesto nel lavoro 2016
Fonte: Articolo CodingDojo su indagine Indeed.com
Diciamo che non è la prima scelta.

Il problema è questo:

Le grandi aziende informatiche cercano di uniformare il loro sviluppo su una delle due piattaforme principali, ovvero Java, e .Net (C#), con la convinzione di avere un vantaggio sia in termini di “comunicazione”, tra progetti scritti nello stesso linguaggio, che di costi.

Mi spiego meglio:

Se nella mia azienda tutti i programmi che vengono creati sono scritti in un unico linguaggio comune, e mi servisse far comunicare due programmi, avrei meno problemi di compatibilità, perché usano entrambi lo stesso linguaggio. Faccia sorridente

Stesso discorso per i costi. Posso assumere 10 persone esperte di un linguaggio che si occupino di tutti gli aspetti, senza dover assumere altri sviluppatori di altri linguaggi.

Se vuoi approfondire questo discorso, vedi l’articolo su Java (ultimo capitolo).

Python in realtà non ha nulla da invidiare a Java, o C#, infatti viene usato da grandi aziende come la NASA, Google, YouTube, Industrial Light And Magic(ILM), ti dice qualcosa? È una delle più famose aziende di effetti speciali digitali, fa parte di LucasFilm (Star Wars per intenderci). Si occupa praticamente di tutti gli effetti speciali dei più grandi film americani come: The Avengers, Harry Potter, Hunger Games, Warcraft, Revenant (l’orso non è reale, ovviamente!), e tanti altri.

Torniamo a noi, parliamo di lavoro!

Cosa fanno nel 90% dei casi i programmatori Python, nelle aziende?
Sviluppo web!

Ebbene si, la maggior parte dell’uso di Python sul lavoro si riduce alla creazione di siti internet, utilizzando Framework come Django o Flask.

Negli ultimi anni l’utilizzo di Python in quest'ambito è addirittura diminuito, sia a causa del suo rivale diretto, ovvero, Ruby on Rails (basato su Ruby), sia per la crescente popolarità di Node.js (tecnologia basata su Javascript).

E nel restante 10%?

Big data e Data mining
Ah, qui arriviamo al punto forte!

Anche se Python sta perdendo terreno nello sviluppo web (e non mi dispiace), sta guadagnando terreno in quella che si dimostra essere una delle sue migliori applicazioni, ovvero l’analisi dei dati! In questo caso, analisi dei dati a scopi “economici”.

Spieghiamo un momento cosa sono questi due settori dell’analisi.

Con Big Data intendiamo, “ovviamente”, una grande quantità di dati. Faccia sorridente
Facciamo qualche esempio:

Pensa a tutti i dati che possiede Facebook riguardo i suoi utenti; i messaggi, le connessioni tra gli amici, tutti i post pubblicati, i gruppi, le pagine, i commenti ad ogni singolo elemento, insomma, tantissimi dati che crescono ogni giorno di più.

Questi sono sicuramente big data ma non occorre che siano così “Big” per essere definiti tali, perché anche un’azienda che opera a livello nazionale potrebbe avere dei big data.

Con data mining, invece, intendiamo delle attività automatiche di analisi dei dati a disposizione, come fossimo dei minatori alla ricerca dell’oro!

Il data mining utilizza dei programmi che “scavano” all’interno di grandi quantità di dati, alla ricerca di informazioni utili per la nostra ricerca.

Per esempio viene usato dalle aziende per ottenere informazioni riguardanti le abitudini di acquisto dei cittadini in una determinata zona, così da poterle “sfruttare” per vendere i loro prodotti.

Gli sviluppatori Python sono richiesti come Data Scientist (“Scienziati dei dati”), ed ecco qualche articolo interessante sull’argomento:

  • Risorse utili per Data Science in Python
  • Python pacchetti per Data Mining

Per la cronaca: un altro linguaggio molto richiesto in questo campo è R, appositamente creato per l’analisi dei dati.

Lavoro in ambito scientifico:

Python si è scontrato con Java e ha preso il suo posto come linguaggio da insegnare nei corsi delle dieci più importanti università informatiche del mondo, e anche in ventisette delle trentanove scuole più importanti.

Grazie al suo uso in ambito educativo/accademico esiste un'enorme quantità di librerie relative alla matematica, alla fisica e all’elaborazione dei linguaggi naturali o NLP (Natural language processing), insomma, tutti argomenti altamente tecnici.

Qui puoi trovare degli esempi di successo di applicazioni Python in ambito scientifico, dalla biologia alla biomedica, dal GIS (Geographic Information System) alla scienza computazionale.

Capitolo 5

Risorse: 9/10

Migliori guide e manuali gratuiti di Python

Ho una bella notizia per te: i migliori libri per iniziare con Python sono completamente gratuti!

Le risorse per imparare a programmare in Python sono ottime!

Il fatto che sia un linguaggio così diffuso in ambito scientifico è un enorme vantaggio per le risorse. Infatti possiamo trovare corsi online gratuiti e altamente professionali ma anche semplici tutorial, più, pratici e veloci.

Inoltre Python è molto diffuso nella comunità “open-source”, quindi abbiamo una scelta più ampia tra gli ebook gratuiti, piuttosto che a pagamento!
Fantastico. Faccia sorridente

Tutorial (in inglese)

I tutorial sono delle mini guide che ti accompagnano esercizio dopo esercizio nella programmazione con Python. Ecco la lista di alcuni siti con cui puoi subito iniziare ad esercitarti.

  • Free Interactive Python Tutorial
  • Continue your learning by starting Python.
  • Python Tutorial by TutorialsPoint
  • The Python Tutorial
  • Python 3.4 Programming Tutorials (Youtube)

Corsi (in inglese e italiano)

Ovviamente parliamo di video corsi, per Python esiste una vasta scelta.

Come ti ho detto, è molto diffuso in ambito accademico/educativo e viene insegnato nelle principali università del mondo, e sai qual è la nuova tendenza delle università prestigiose?

Mettere i propri corsi online a disposizione di tutti. Faccia sorridente
Quindi per Python hai una vastissima scelta di corsi online (in inglese) altamente professionali.

I corsi sono disponibili su un sito chiamato Coursera che propone dei percorsi formativi composti da più corsi. Ecco il percorso per Python:

  • “Python for Everybody Specialization” di livello base.
    È adatto per i principianti, non è richiesta nessuna esperienza particolare per iniziare il corso. Coursera ti chiederà, ogni volta che ti iscriverai ad un corso, se vorrai pagare per ottenere un certificato finale, ma sappi che puoi decidere di seguire il corso senza certificato e in modo completamente gratuito.

    I corsi sono tenuti dai professori dell'università del Michigan e sono:
    • Programming for Everybody (Getting Started with Python)
    • Python Data Structures
    • Using Python to Access Web Data
    • Using Databases with Python

Di solito consiglio sempre di seguire corsi in lingua inglese. In primo luogo perchè la qualità delle lezioni risulta generalmente superiore, in secondo luogo perchè è sempre utile fare pratica con l'inglese (la lingua che accomuna tutti i programmatori). In questo caso, tuttavia, c'è un sito italiano che vale la pena citare:

  • Programmare in Python (in italiano)
    Questo è l'unico corso in italiano degno di nota che mi sento di consigliarti, sono delle video lezioni completamente gratuite. Il valore del corso risiede interamente nel suo insegnante, ha un enorme talento nel trasmettere la sua passione e le sue conoscenze.

Letture, libri ed ebook (in italiano)

Partiamo dal prezzo forte di Python: gli ebook gratuiti tradotti in italiano.

Ebook gratuiti

  • Il Tutorial di Python di Guido Van Rossum
    Il primo “ebook” che è doveroso consigliare è sicuramente il testo gratuito scritto direttamente dallo stesso creatore del linguaggio Python: Guido Van Rossum. L’ebook (se così possiamo definirlo) lo puoi trovare online in maniera completamente gratuita.
  • Pensare in Python - Come pensare da Informatico di Allen B. Downey tradotto da Andrea Zanella
    Viene considerato uno dei migliori testi, per i principianti, ed è completamente gratuito. Puoi scaricarlo in PDF dal progetto GitHub, ecco il link: ThinkPythonItalian.
  • Imparare a Programmare di Alan Gauld, tradotto da Luca Fini
    Un’altra risorsa interessante è il testo di Alan Gauld, creato appositamente per dare un aiuto a tutti coloro che vogliono imparare la programmazione, ovviamente utilizzando il linguaggio Python.
  • Corso Python: Impara a programmare in Python di Antonio Lanza
    Gli ebook che ti ho consigliato finora potrebbero usare delle vecchie versioni del linguaggio. Questo manuale invece usa Python 3, è perfetto per i principianti e contiene svariati esercizi pratici.

Libri cartacei

Sfortunatamente i libri cartacei per partire completamente da zero sono ben pochi, forse solo uno, in realtà, è indicato per veri principianti.

Miglior libro per programmare in C

Python Pocket: nuova edizione di Marco Beri

Come suggerisce il nome è un libro molto piccolo, meno di 200 pagine, scritto con tono amichevole ed è ottimo per iniziare.

Programmare con Python. Guida completa di Marco Buttu

Ero un po’ indeciso se consigliare o meno questo libro. Probabilmente è più adatto a chi ha già avuto altre esperienze di programmazione, ma in realtà sembra non dare nulla per scontato, quindi può essere letto anche da chi sta iniziando.

La guida completa per programmare in Python


Il mio consiglio è quello di non concentrarsi troppo sui libri cartacei ma provare un po’ di tutto: tutorial interattivi, corsi ed ebook di qualità, tradotti e disponibili gratuitamente.

Capitolo 6

La mia modesta opinione

Consigli per iniziare a programmare con Python

Un ottimo linguaggio per imparare la programmazione, ma con un grande problema ...

Secondo me Python è perfetto per chi vuole iniziare a programmare per la prima volta, è facile da imparare e permette di appassionarti alla programmazione. Questo è un aspetto molto importante e credo sia il più grande punto di forza di Python.

Nonostante la sua facilità di comprensione è comunque un linguaggio potente e moderno, e supporta la cosiddetta “programmazione ad oggetti” (se non sai cos’è, dai un'occhiata all‘articolo su Java). È uno dei linguaggi di punta per l’analisi dei dati e per tutte le aree scientifiche.

Fin qui nulla di nuovo ma per quanto mi riguarda c’è un grosso problema.

Un problema lavorativo!

Lavorare nell’ambito scientifico/di ricerca è completamente diverso dal lavorare in un’azienda tradizionale. Cambia completamente la tipologia/complessità di progetti trattati, cambiano i tempi di lavorazione, e soprattutto le competenze richieste!

Nell’ambito scientifico è richiesta come minimo una laurea, in aggiunta a forti basi matematiche.
Nel lavoro tradizionale non è così, non devi per forza avere una laurea per essere assunto per sviluppare applicazioni web. Certo, anche tra le aziende tradizionali ci sono quelle che preferiscono assumere laureati, ma per quanto riguarda lo sviluppo web non sono la maggioranza.

Credo che il più grande limite di Python sia questo, ed è più un limite di “utilizzo del linguaggio” piuttosto che del linguaggio in sé.

Riassumendo, consiglio fortemente Python se:

  • Sei interessato ad apprendere velocemente la programmazione nel suo aspetto più generale.
  • Vuoi mettere le basi per una carriera come Data Scientist.

Se invece hai altre priorità ti consiglio di dare un'occhiata agli altri linguaggi, con tutta probabilità ne troverai uno in linea con i tuoi obiettivi.

Ah, un ultima cosa!

Mi farebbe piacere se condividessi questo articolo, se tu l'hai apprezzato sarà di aiuto anche ai tuoi colleghi o amici!
Aspetto di ricevera la tua notifica di condivisione, è importante. Faccia sorridente

Il tuo grande amico Alberto

Vuoi imparare a programmare?

Ho preparato una serie di video lezioni che puoi ricevere gratuitamente.


Alberto Olla Insegnante del Corso

Ciao, io sono Alberto Olla. Faccia sorridente

Mi occupo di programmazione da quasi 10 anni e in tutto questo tempo ho lavorato sempre con passione e una grande voglia di imparare. Non ho mai smesso di migliorare me stesso e ho sperimentato nuove tecnologie e nuovi linguaggi alla ricerca della soluzione migliore per i miei progetti e per quelli dei miei clienti.

Ora che ho una certa esperienza vorrei insegnare anche a te quello che ho imparato nei miei anni di lavoro.

Non devi fare altro che scrivere qui sopra il tuo indirizzo email e ti invierò subito la prima lezione!

Alberto Olla firma
altre guide popolari simili

Programmare con Arduino: come iniziare?

Scopri quali progetti puoi realizzare e come imparare le basi

Programmare in C: miglior linguaggio per iniziare?

Tutto quello che devi sapere per cominciare

Programmare in Java: miglior linguaggio per iniziare?

I segreti del linguaggio più richiesto nel mondo del lavoro

  • Corso di Programmazione
  • Corso Java
  • Privacy