Python, dalle fondamenta Lezione 60 / 60

Capstone: cosa sai adesso, dove andare poi

Uno sguardo indietro alle 60 lezioni, uno sguardo avanti a dove sta andando Python, e le risorse che ti portano da intermedio a esperto.

Ce l’hai fatta. Sessanta lezioni, dieci moduli, qualche centinaio di blocchi di codice, e quella che ora dovrebbe essere una mappa mentale funzionante di come si usa davvero Python moderno per costruire cose.

Quest’ultima lezione fa tre cose. Guarda indietro a quello che abbiamo coperto, in italiano semplice, così puoi vedere la forma del curriculum dall’alto. Guarda avanti alle risorse che consiglio per portare ogni pezzo più in profondità. E si chiude con l’unico consiglio che davvero conta a questo punto, che è quello di andare a costruire qualcosa.

Cosa ha coperto il corso

Modulo 1 - Python moderno che dovresti scrivere nel 2026

Type hint, dataclass, structural pattern matching, walrus operator, formattazione moderna delle stringhe, i pezzi della standard library che non ricevono abbastanza attenzione. Il messaggio centrale del modulo: il Python che potresti aver imparato nel 2018 non è esattamente il Python che spedisce bene nel 2026. Il linguaggio si è stretto. Il codice type-checked è ora il default nei progetti seri, non una preferenza da hipster. Dovresti scriverlo così anche tu.

Modulo 2 - La standard library

pathlib, collections, itertools, functools, dataclasses, enum, datetime, re, subprocess, logging, argparse, il nuovo tomllib, il sottovalutato modulo statistics. La maggior parte degli script di produzione è 80% standard library e 20% terze parti. Sapere cosa c’è già nella scatola tiene corta la lista di dipendenze e mantenibile il codice.

Modulo 3 - Packaging + struttura del progetto

uv, pyproject.toml, layout src, pinning di versioni, lockfile, build di wheel, pubblicazione su PyPI, l’alternativa moderna al vecchio casino di setup.py / requirements.txt. Il packaging era la parte peggiore di Python. Con uv e i PEP moderni ora va davvero bene. Un progetto Python nel 2026 ha un solo file di config e installazioni riproducibili. Non accettare di meno.

Modulo 4 - Testing, qualità, workflow AI

pytest, ruff, mypy, fixture, parametrizzazione, mocking, property-based testing con Hypothesis, il workflow AI-pair-programming che cambia come scrivi codice giorno per giorno. Il pezzo più sottovalutato dagli ingegneri autodidatti: una test suite pulita è l’asset che ti permette di cambiare tutto il resto senza paura. Il pezzo più sottovalutato dagli ingegneri senior: un tool AI che hai integrato con cura nel tuo workflow sposta il tuo output di qualcosa come 1,5-3x sul lavoro green-field.

Moduli 5-6 - Padronanza di Pandas

Strutture dati, indicizzazione, groupby, join, time series, reshaping, il SettingWithCopyWarning, le nuove semantiche copy-on-write, performance tuning, quando scendere a NumPy, quando scendere a Polars o DuckDB invece. Pandas è ancora il tool di default per il lavoro tabellare in memoria. Alla fine di questi due moduli dovresti leggerlo e scriverlo senza consultare un cheat sheet.

Modulo 7 - Data engineering

Design ETL, schemi di ingestion, lavorare con REST API, programmazione async con asyncio e httpx, orchestrazione con Prefect/Airflow, idempotenza, retry, schema. Lo spostamento da “so analizzare i dati” a “so muovere i dati in modo affidabile tra sistemi” è lo spostamento da analista a ingegnere. Questo modulo è dove succede.

Modulo 8 - Python numerico

NumPy vero e proprio, vettorizzazione, broadcasting, algebra lineare, plotting con Matplotlib, calcolo scientifico con SciPy, lavorare in Jupyter senza che il tuo notebook diventi un casino. Il substrato su cui poggia tutto il resto del Python scientifico: Pandas, scikit-learn, PyTorch. Non devi essere un analista numerico, ma devi sapere cosa fa axis=0 senza pensarci.

Modulo 9 - Machine learning

scikit-learn, pipeline, feature engineering, modelli ad albero, modelli lineari, tuning di iperparametri con Optuna, valutazione, SHAP per l’interpretazione, deployment con FastAPI. ML classico end-to-end, quello che paga le bollette. Questo è il modulo che trasforma “so come fittare un random forest” in “so spedire un modello dietro un endpoint HTTP.”

Modulo 10 - Deep learning, nella forma del 2026

Fondamenti di PyTorch, training loop, transfer learning con Hugging Face, fine-tuning con LoRA, la decisione AI vs ML, RAG. Il modulo più corto del corso perché il campo si muove così veloce che il dettaglio da lezione invecchia in pochi mesi. Il punto del modulo non era farti specialista di deep learning; era darti una mappa lucida di quando i tool AI attuali sono la risposta giusta e quando no.

Dove sei adesso

Se hai davvero lavorato attraverso le lezioni invece di scorrerle, sai:

  • Mettere su un progetto Python da zero in cinque minuti: uv init, type hint, test, lint, CI.
  • Prendere un CSV, una tabella di database o un’API e trasformarli in una pipeline di dati pulita, ben tipata, ben testata.
  • Scegliere il tool giusto per un’analisi: Pandas per dati medi, Polars o DuckDB per più grossi, NumPy quando ti serve vettorizzazione cruda.
  • Costruire un modello di ML classico end-to-end, valutarlo onestamente e deployarlo come servizio.
  • Decidere tra chiamare un LLM hosted, fare fine-tuning di uno open con LoRA, e allenare un modello classico, e spiegare la decisione a uno stakeholder non tecnico.
  • Scrivere codice leggibile per il tuo io futuro e per le persone che erediteranno il tuo lavoro.

Questo è il toolkit quotidiano di un data engineer o ML engineer che lavora. Se sai fare tutto quanto sopra, sei impiegabile in questo campo, e non sull’ultimo gradino. La cosa che lo trasforma da “impiegabile” a “prezioso” è il prossimo anno di pratica su problemi reali, non un altro corso.

Dove andare poi

La mappa onesta del campo, come la consiglierei a un amico.

Internals di Python

Se vuoi capire perché Python si comporta come si comporta, perché i thread sono strani, perché i dizionari sono diventati più veloci nel 3.12, cosa fa davvero la GIL, i libri da leggere sono i talk e gli articoli online di Brett Cannon (è un core dev di CPython che spiega il linguaggio chiaramente) e il libro “CPython Internals” di Anthony Shaw. Le pagine di documentazione “What’s New In…” di Python, lette a ogni release, sono anch’esse straordinariamente buone: sono scritte dalle persone che hanno scritto i cambiamenti.

Data engineering

Il libro singolo più importante del campo è “Designing Data-Intensive Applications” di Martin Kleppmann. È agnostico al database, agnostico al linguaggio, ed è la cosa più vicina a una lettura obbligatoria che la disciplina abbia. Dopo: “Fundamentals of Data Engineering” di Joe Reis e Matt Housley per una panoramica dello stack moderno, e leggere la documentazione di dbt dall’inizio alla fine per un senso pratico di come si costruiscono oggi le pipeline analitiche. Accoppia questi libri al corso SQL Server su questo sito se vuoi un angolo profondo di production-database, o al corso PySpark se vuoi farlo a scala terabyte.

Machine learning

Tre libri, in ordine: “Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow” di Aurélien Géron è il singolo miglior libro per i praticanti ML al lavoro; la terza edizione è attuale. “Machine Learning with PyTorch and Scikit-Learn” di Sebastian Raschka copre terreno simile con un’inclinazione PyTorch più forte. Il corso fastai (gratuito, online) è opinionato, accessibile, e produce praticanti che spediscono più veloci della maggior parte dei laureati accademici.

Deep learning

Se vuoi davvero capire i transformer e le reti neurali moderne al livello dove riesci a debuggarle: la serie YouTube “Neural Networks: Zero to Hero” di Andrej Karpathy è la migliore risorsa sul pianeta. Costruisce un GPT da zero, in PyTorch, in un modo che puoi seguire riga per riga. Il corso NLP di Hugging Face è il compagno pratico: insegna la libreria che userai davvero, con le convenzioni che corrispondono al resto dell’ecosistema.

Software engineering in generale

L’abitudine singola di leva più alta è leggere i sorgenti dei progetti Python popolari. Scegli una libreria che usi e rispetti, httpx, click, rich, FastAPI, pydantic, pytest, e leggila. Non il tutorial; il sorgente. Imparerai di più su come è strutturato il Python di produzione in due weekend di lettura di librerie ben scritte che in un anno di tutorial generici. La maggior parte delle librerie Python conosciute è straordinariamente ben documentata a livello di codice, e la maggior parte fa 5.000-30.000 righe, leggibili in un weekend se ti concentri.

Per cultura più ampia di software engineering: “A Philosophy of Software Design” di John Ousterhout è corto e vale la pena di rileggerlo ogni anno. “The Pragmatic Programmer” è un classico per una ragione. “A Philosophy of Software Design” non è d’accordo con “Clean Code” sulla maggior parte delle cose, e Ousterhout ha ragione sulla maggior parte di esse.

Skill di carriera, visto che chiedi

Lo stack di skill da data engineer / ML engineer del 2026, in ordine grossolano di quanto spesso appare nelle job description:

  1. Python, bene, inclusi tipi, test, packaging.
  2. SQL, bene, su almeno un engine: Postgres, SQL Server, BigQuery, Snowflake, qualcosa di serio.
  3. Una piattaforma cloud al livello di “so tirare su una coda, un container, un database e un job schedulato lì sopra.” AWS, GCP o Azure: scegline una e imparala in profondità.
  4. Pandas + almeno uno tra Polars / DuckDB / PySpark, a seconda della scala dei dati.
  5. Container e CI: Docker, GitHub Actions, la forma di base di Kubernetes (non devi amarlo).
  6. Orchestrazione: Airflow, Prefect, o dbt per pipeline analitiche. I nomi ruotano ma la forma no.
  7. AI/ML moderno: scikit-learn, PyTorch, lo stack Hugging Face, gli SDK LLM principali (OpenAI, Anthropic).
  8. Comunicazione. Le persone che davvero salgono sono quelle che sanno spiegare decisioni tecniche a stakeholder non tecnici. Questa è una skill che puoi praticare deliberatamente. Non è un tratto di personalità.

Quello che gli hiring manager cercano davvero a livello senior non sono più tool. È giudizio: sapere quando usare cosa, quando non usare la cosa nuova, come leggere un problema e scegliere uno stack che ci corrisponde. Quel giudizio cresce dallo spedire cose e guardarle riuscire o fallire. Non cresce dai corsi, incluso questo. Il corso era il prerequisito. La pratica è il lavoro.

L’angolo dell’impollinazione incrociata

Se hai finito questo corso, il prossimo passo ovvio su questo sito è uno dei track compagni. Il corso SQL Server scava il lato production-database che questo corso tocca solo leggermente: backup, recovery, indicizzazione, la realtà operativa di un database sotto carico. Il corso PySpark scala la cassetta degli attrezzi del data engineering fino a workload di classe terabyte. Entrambi condividono assunzioni e convenzioni con questo. Insieme, i tre ti danno lo stack di lavoro di un data platform engineer del 2026.

Non ti servono tutti e tre. Probabilmente ti servono pezzi di due. Scegli in base a quello che il tuo lavoro davvero coinvolge.

Una nota sulla cosa AI

Voglio lasciarti con qualcosa di specifico sul momento in cui stai imparando Python.

L’ondata di tool AI del 2024-2026 ha spostato come si sente il lavoro Python. Puoi promptare la tua strada a un’app FastAPI funzionante in un pomeriggio. Puoi far scrivere a un LLM una regex su cui avresti speso venti minuti. Puoi incollare uno stack trace e ottenere una spiegazione che il tuo collega ti avrebbe dato nel 2018. Questo è reale. Non è hype. La leva è reale e dovresti usarla.

Non è anche un sostituto per capire il codice che esce. Gli ingegneri che ottengono di più da questi tool sono quelli che saprebbero scrivere il codice da soli e usano l’AI per saltare le parti noiose. Quelli che non sanno dire quando l’AI sbaglia alla fine spediscono qualcosa di imbarazzante, o peggio, qualcosa di pericoloso.

Questo corso è stato progettato nell’assunzione che avresti usato i tool AI insieme a esso. La lezione 19 ne ha parlato esplicitamente. Niente di quello che hai imparato è invalidato dai tool AI; i tool AI sono il modo in cui operazionalizzi quello che hai imparato a velocità maggiore. Se finisci questo corso pensando che non ti servono le fondamenta perché l’AI scriverà il codice per te, hai mancato il punto. Se lo finisci pensando che le fondamenta sono la cosa che ti permette di dirigere bene l’AI, l’hai capito.

Vai a costruire qualcosa

Ecco la cosa che nessuno ti dice sui corsi di ingegneria: alla fine di uno, non sei ancora un ingegnere al lavoro. Sei una persona che ha letto di ingegneria. La transizione a essere uno succede la prima volta che spedisci qualcosa di reale, te ne prendi la responsabilità, lo guardi rompersi in produzione, lo aggiusti, lo guardi rompersi di nuovo in modo diverso, aggiusti anche quello, e lentamente costruisci il catalogo di “cose che vanno male” che gli ingegneri esperti si portano in testa. Quel catalogo è la maggior parte di quello che davvero è l’esperienza.

Non puoi prenderlo da un corso. Puoi prenderlo solo costruendo cose che la gente usa.

Quindi scegli qualcosa: un side project, un tool che davvero vuoi per te, un problema al lavoro che ti dà fastidio, un contributo a una libreria open-source che usi, un blog tecnico dove scrivi le cose che hai capito. Qualunque cosa che spedisca. La dimensione non conta. Lo spedire sì. Fallo una volta. Poi fallo di nuovo. Poi fallo di nuovo, questa volta facendo attenzione all’attrito che incontri e scrivendo cosa faresti diversamente la prossima volta.

Dieci progetti da adesso sarai un ingegnere diverso. Venti progetti da adesso, avrai opinioni, e saranno informate. Cinquanta progetti da adesso, sarai la persona a cui altri ingegneri vengono per consiglio, perché avrai davvero accumulato esperienza invece che solo ore.

Quella è la strada. Non c’è una scorciatoia. Il corso ti ha portato all’inizio del sentiero.

Grazie per aver letto

Sessanta lezioni sono tante parole. Grazie per essere rimasto fino in fondo. Se parti di questo corso ti hanno reso il lavoro più facile, o ti hanno fatto cambiare come pensi a un pezzo del campo, è il complimento più alto che potessi sperare. Se hai trovato errori, hai suggerimenti, o vuoi discutere se pathlib sia sopravvalutato, scrivimi. Leggo ogni email.

Adesso chiudi il browser e vai a spedire qualcosa.

Narcis


Riferimenti: blog di Brett Cannon (https://snarky.ca/), Anthony Shaw “CPython Internals” (Real Python, 2021), Martin Kleppmann “Designing Data-Intensive Applications” (O’Reilly, 2017), Joe Reis & Matt Housley “Fundamentals of Data Engineering” (O’Reilly, 2022), Aurélien Géron “Hands-On Machine Learning” 3a ed. (O’Reilly, 2022), Sebastian Raschka “Machine Learning with PyTorch and Scikit-Learn” (Packt, 2022), corso fastai (https://course.fast.ai/), Andrej Karpathy serie YouTube “Neural Networks: Zero to Hero”, corso NLP di Hugging Face (https://huggingface.co/learn/nlp-course), John Ousterhout “A Philosophy of Software Design” 2a ed. (Yaknyam, 2021). Recupero 2026-05-01.

Cerca