Home
Voglio imparare a programmare in Python

21 Giugno 2021

Voglio imparare a programmare in Python

di

Perché sceglierlo all’inizio di un’avventura nella programmazione, che cosa ci si può programmare facilmente, fino a dove si può arrivare con il suo utilizzo e tante altre cose da sapere sul linguaggio di programmazione all-purpose più flessibile, versatile e amato di questi anni.

Di che cosa parliamo

  1. Perché scegliere Python per imparare a programmare
  2. Python: un linguaggio ideale per impratichirsi dell’analisi dei dati
  3. Raccogliere dal web tutti i dati che ti servono, grazie allo scraping programmato con Python
  4. Creare una rete neurale con Python: il primo passo verso una intelligenza artificiale come Alexa o Siri
  5. Divertirsi con Python: creare rapidamente un chatbot con cui chiacchierare
  6. Oltre Python: Docker, la scienza dei container
  7. Dove puoi arrivare se parti da Python (e in generale)

1. Perché scegliere Python per imparare a programmare

Python è decisamente il linguaggio di programmazione all-purpose per la nostra epoca. Pratico, approcciabile e supportato da una comunità enorme, Python apre la strada a qualsiasi pratica di programmazione, dall’inizio del principiante al calcolo fino alle più avanzate applicazioni di machine learning. Perché un ventaglio così ampio di opzioni? Anche perché oggi è un lusso avere le idee chiare sul tipo di professione che si vuole e si può intraprendere. Flessibilità e versatilità sono indispensabili a tutti i livelli, compreso quello del linguaggio di programmazione.

Senza dubbio, il vantaggio principale dell’utilizzo degli strumenti che vengono rilasciati seguendo il principio dell’open source, proprio come Python, è godere di una community attiva che lavora duramente per ottenere degli ottimi risultati. È altrettanto chiaro che entra in gioco un conflitto di interessi; a questo proposito, mi sembra giusto citare un breve passaggio di uno degli ultimi libri che ho terminato di leggere:

Nell’immaginario comune le grandi innovazioni nascono da colpi di genio individuali, quando un’intelligenza fuori dalla norma s’imbatte in un’idea destinata a rivoluzionare un’intera cultura. È così che idealizziamo la creatività, pensandola come il frutto di visioni estemporanee, di folgorazioni che trascendono le contingenze storiche e le tradizioni consolidate. Al contrario sono proprio gli ambienti aperti e le piattaforme condivise ad accrescere la creatività e la redditività delle persone che vi operano.

Lo stereotipo dell’idea geniale frutto di un unico genio è pura utopia; le grandi società, per ovvie ragioni, operano quasi sempre a scopo di lucro, piuttosto che con l’idea di sfruttare le proprie forze a vantaggio della comunità. La ricchezza degli strumenti open source rispetto ai prodotti commerciali è che spesso danno la possibilità alle persone comuni di fruirne, ma anche di modificarne singole parti, nell’ottica che il benessere del singolo possa portare ad un benessere generale. Anche da questo deriva l’affermarsi di Python: a generare progresso è lo sforzo collettivo di tutti, a ogni livello di capacità.

Torna all’inizio.

2. Python: un linguaggio ideale per impratichirsi dell’analisi dei dati

Particolarmente apprezzata, nel caso di Python, è anche la disponibilità immensa di librerie specializzate per compiti specifici. Il principiante inizia semplicemente a programmare, in modo leggero, per poi aggiungere le librerie necessarie per portare a termine un compito specifico, per esempio l’analisi computerizzata del linguaggio.

Python è sicuramente uno dei linguaggi di programmazione che più si presta a questo lavoro, grazie alla moltitudine di librerie open source per l’apprendimento automatico e il deep learning. Qualunque esperto del settore può confermare che le librerie maggiormente utilizzate in questo settore sono NLTK, OpenCV, spaCy e NetworkX, tutte operative con Python.

Se vuoi entrare nel vivo e iniziare a strutturare codice, leggi l’articolo Analisi computerizzata del linguaggio: come computer ed esseri umani si capiscono.

Torna all’inizio.

3. Raccogliere dal web tutti i dati che ti servono, grazie allo scraping programmato in Python

Mi è accaduto diverse volte di dover recuperare da Internet informazioni per formare dataset che altrimenti non avrei avuto a disposizione, come una serie di titoli di film e la relativa trama in italiano; il modo più semplice e ovvio sarebbe stato copiare manualmente ciascuna sinossi e salvarla in un foglio di calcolo, ma è un compito che di certo non può essere svolto se i film da analizzare sono migliaia, perché richiederebbe giorni di lavoro noioso.

Esistono tantissime librerie in Python che permettono di fare web scraping e recuperare dati dalla rete: per esempio, per estrarre dal sito www.filmtv.it i film usciti nel 2019, con titolo, genere, durata e votazione, possiamo utilizzare Beautiful Soup. Questo pacchetto contiene centinaia di funzioni utili per l’analisi di documenti in formato HTML e XML, come appunto le pagine Web, sfruttando la struttura ad albero dei documenti per dedurre informazioni.

Per provare un esempio semplice di questa tecnica, leggi l’articolo Come fare web scraping in Python.

Torna all’inizio.

4. Creare una rete neurale con Python: il primo passo verso una intelligenza artificiale come Alexa o Siri

Ti sei mai chiesto come chatbot come Siri, Google Assistant o Alexa siano in grado di rispondere alle domande poste dagli utenti? Tutti questi prodotti hanno una cosa in comune: lavorano tramite meccanismi di intelligenza artificiale (spesso abbreviata in AI). Per certo non possiamo uguagliare anni di sviluppo degli ingegneri di Google o Amazon; tuttavia Python è perfetto per imparare come è fatta una rete neurale e costruirne una piccola, ma funzionante con gli stessi presupposti e meccanismi che usa Alexa.

Una rete neurale può essere vista come una funzione matematica che produce un output desiderato a partire da un dato input. I componenti principali possono essere riassunti in:

  • un layer di input;
  • un numero x di layer nascosti;
  • un layer di uscita.

A questi tre vanno certamente aggiunti determinati pesi per ogni collegamento tra un layer e l’altro, nonché una funzione di attivazione per ciascun layer.

Un esempio molto semplice di rete neurale a due strati

Un esempio molto semplice di rete neurale a due strati.

Qui sopra appare un esempio di rete neurale a due strati (lo strato di input non viene considerato nel conteggio); a partire da uno strato di input, tramite diversi collegamenti con lo strato nascosto che hanno un set di pesi, viene prodotto un risultato che verrà restituito dal layer di output.

Le reti neurali, come accennato inizialmente, vengono utilizzate per risolvere problemi relativamente complessi, come il riconoscimento di immagini o di testo a partire da un’immagine; per riuscirci è necessario addestrrare la rete neurale a calcolare il risultato corretto a partire dagli input che le servono per esercitarsi:

Input sottoposto a una semplice rete neurale

Input sottoposto a una semplice rete neurale.

In questo caso, il valore in output è sempre uguale al secondo valore inserito in input; il risultato della nuova situazione dovrebbe dunque essere 1.

Se intendi proseguire nella creazione della tua prima rete neurale, ti suggerisco di leggere l’articolo Python: la mia prima rete neurale.

Torna all’inizio.

5. Divertirsi con Python: creare rapidamente un chatbot con cui chiacchierare

Alcune persone non amano veramente l’interazione umana. Ogni volta che sono costretti a socializzare o andare ad eventi che coinvolgono molte persone, si sentono fuori posto e imbarazzati.

Mi viene in mente un film uscito qualche anno fa, Lei. Il protagonista è Joaquin Phoenix, tornato alla ribalta lo scorso anno con l’uscita di Joker, che gli ha fruttato l’Oscar. Il protagonista è un impiegato che soffre di solitudine e depressione, con un divorzio imminente che lo sta logorando. Finisce per innamorarsi di un’intelligenza artificiale alla quale lavora e con cui inizia ad avere un rapporto non esattamente platonico.

Com’è possibile che una intelligenza artificiale sia in grado di avere un rapporto con un essere umano? Può realmente provare emozioni? Possibile che il protagonista abbia preferito un sistema ad un rapporto umano?

Senza scendere troppo nel filosofico, questa vicenda è un buon pretesto per mostrare come con Python si possa programmare un chatbot: un assistente testuale in grado di rispondere a complimenti, ascoltare e tenere compagnia. E lo si può fare – ovviamente con qualche limite – nel giro di un’ora!

Ti stimola la sfida di scrivere in Python un chatbot nel giro di sessanta minuti? Trovi istruzioni e codice nell’articolo Python: costruire un chatbot in meno di un’ora prima di San Valentino.

6. Oltre Python: Docker, la scienza dei container

L’appetito vien mangiando e, acquisita una padronanza di Python, verrà naturale guardarsi in giro alla ricerca di nuove competenze, per diletto o per ampliare una competenza professionale; o per provare davvero a fare partire una carriera.

Una strada delle tante possibili può essere specializzarsi nell’utilizzo di Docker, uno strumento open source di containerizzazione utilizzato principalmente per l’impacchettamento e l’esecuzione rapida di applicazioni su piattaforme architetturalmente diverse. Il modo in cui Docker costruisce e distribuisce rapidamente il software riduce notevolmente il ritardo tra la scrittura del codice e la sua messa in produzione.

Competenze come Docker sono oggi molto apprezzate sul mercato. Gli specialisti riescono a usare la containerizzazione nei modi più intelligenti e creativi… fino al punto di saper fare funzionare Docker dentro se stesso. Più un virtuosismo che altro, ma spiega come nella programmazione e nei campi attorno a essa ci sia sempre qualcosa di nuovo da imparare.

Torna all’inizio.

7. Dove puoi arrivare se parti da Python (e in generale)

Arrivare a traguardi professionali richiede certamente studio ed esperienza, ma intraprendere un percorso penso sia assolutamente indipendente da questo. Frasi fatte come se vuoi, puoi potrebbero risultare melense, ma sono fermamente convinta che la volontà può tutto. È chiaro che avere una minima esperienza da programmatore e ancor di più capacità logiche sia d’aiuto, ma penso che le due funzioni – sviluppatore e tecnico – possano essere un’accoppiata vincente per chi vuole raggiungere obiettivi di un certo tipo, anche dal punto di vista professionale. Se invece ci si appresta per la prima volta, anche a digiuno di codice, la forza di volontà è l’unico requisito.

Iscriviti alla nostra newsletter

Il mio consiglio è: comincia con Python e poi continua a imparare. Che non si smetta mai di apprendere è oramai risaputo e vale in qualsiasi settore, più che mai la programmazione. Grazie ad Internet, ad oggi ci si può tenere aggiornati con facilità e basta una semplice ricerca su Google per esplorare nuovi mondi o trovare persone competenti in grado di consigliare. La tecnologia sta d’altronde andando avanti sempre più rapidamente, per cui dirsi arrivati è difficile per tutti, soprattutto per me che ho solo 26 anni e sono quindi solo all’inizio. Non credo mi sentirò all’apice neanche dopo 50 anni di lavoro nel settore!

Torna all’inizio.

Per approfondire la tua conoscenza del linguaggio di programmazione Python e del suo uso, puoi fare riferimento aall’articolo Python: un linguaggio ideale per programmare e imparare a programmare.

Immagine di apertura di Alex Kotliarskyi su Unsplash.

L'autore

  • Serena Sensini
    Serena Sensini è un’ingegnera e programmatrice con esperienza nella progettazione e nello sviluppo di soluzioni web e stand-alone from scratch. Appassionata di tecnologia e di linguaggi come Python e R, lavora come Enterprise Architect presso Dedalus S.p.A. e collabora con diverse aziende e associazioni per cui tiene corsi e seminari.

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.

Corsi che potrebbero interessarti

Tutti i corsi
Programmare-con-Python-Iniziare-Bene-cover Corso Online

Programmare con Python - Iniziare Bene

con Serena Sensini

Python è un linguaggio potente e molto ricercato nel mondo del lavoro. Saperlo utilizzare apre le porte, tra l'altro, alla data science e alla Big Data analytics. Se ancora non lo conosci e vuoi iniziare a utilizzarlo, il corso di Serena Sensini è quello che ti serve.


Libri che potrebbero interessarti

Tutti i libri

Analisi del linguaggio con Python

Imparare a processare testo e audio con le librerie open source

23,15

32,89€ -30%

18,91

19,90€ -5%

12,99

di Serena Sensini

Docker

Sviluppare e rilasciare software tramite container

34,90

49,89€ -30%

28,41

29,90€ -5%

19,99

di Serena Sensini

Basi di dati

Tecnologie, architetture e linguaggi per database

40,90

58,89€ -31%

33,16

34,90€ -5%

23,99

di Serena Sensini