Python
Modi di dire, i trucchi della libreria standard che continuo a dimenticare, e cosa c'è di nuovo nel linguaggio.
-
Lezione 1
Python nel 2026: cos'è cambiato, cos'è stabile, cosa sta arrivando
Dov'è Python in questo momento: feature del linguaggio, lo spostamento dell'ecosistema verso uv, JIT, free-threading, e cosa interessa davvero a chi sviluppa per lavoro.
-
Lezione 2
I type hints non sono più opzionali
Come scrivere Python moderno con i type hints: per il tuo bene, per l'aiuto dell'IDE, e perché ogni code review ormai se li aspetta.
-
Lezione 3
f-string, walrus, match: i nuovi idiomi di controllo del flusso
Sintassi Python moderna che rende il codice più chiaro delle alternative: quando usare ognuna, e i casi in cui la vecchia strada è ancora migliore.
-
Lezione 4
Iterator, generator, comprehension: smontiamoli pezzo per pezzo
Tre concetti collegati che chi scrive Python tende a confondere. Le differenze contano quando conta la memoria e quando conta la pigrizia.
-
Lezione 5
Decorator, demistificati
Funzioni che avvolgono funzioni. I pattern che incontri tutti i giorni, le trappole da conoscere, e quando vale la pena scriverne uno tuo.
-
Lezione 6
Context manager e l'istruzione with, oltre l'apertura dei file
Il protocollo dietro `with`, tre modi per scriverne uno tuo, e quando i context manager battono try/finally.
-
Lezione 7
pathlib: i percorsi del filesystem fatti come si deve
Perché os.path è legacy, cosa ti danno gli oggetti Path, e il piccolo insieme di metodi che copre il 95% del lavoro reale.
-
Lezione 8
datetime + zoneinfo: la parte che tutti sbagliano
Datetime naive vs aware, perché i timezone si rompono in produzione, e la soluzione della standard library finalmente arrivata nella 3.9.
-
Lezione 9
collections + dataclass: le piccole strutture dati che ti servono
Counter, defaultdict, deque, namedtuple -- e la dataclass che le sostituisce tutte nella maggior parte dei casi.
-
Lezione 10
itertools + functools: il toolkit di ordine superiore
I due moduli della stdlib che trasformano i loop in one-liner e i one-liner in qualcosa di leggibile. E perché reduce va benissimo, nonostante le voci.
-
Lezione 11
logging: log strutturati, livelli, e i pattern che funzionano in produzione
Perché print() non scala, il problema di reputazione del modulo logging, e la configurazione che lo rende davvero piacevole da usare.
-
Lezione 12
Costruire CLI: argparse, click, typer
Le tre librerie CLI che incontrerai, quando scegliere ciascuna, e il pattern typer che oggi sta vincendo.
-
Lezione 13
Gli ambienti virtuali spiegati per esseri umani
Perché ogni progetto Python ha bisogno della sua sandbox, cosa fanno davvero venv/poetry/uv, e come evitare che i tuoi progetti si rompano a vicenda.
-
Lezione 14
pyproject.toml: l'unico file di configurazione che li sostituisce tutti
Perché setup.py è morto, cosa fa ogni sezione di pyproject.toml e i build backend dietro le quinte.
-
Lezione 15
uv: lo spostamento dell'ecosistema nel 2026
Perché uv ha sostituito pip+venv+pyenv+poetry per molte persone, cosa fa di diverso e qual è il workflow.
-
Lezione 16
Layout del progetto: src/ vs flat, dove vanno i test, dove vivono gli script
Le decisioni di layout che impattano import, testing e packaging, e la convenzione che ha vinto nel 2026.
-
Lezione 17
Gestione delle dipendenze: pip, poetry, uv, scegliere la propria
Le quattro opzioni reali, i compromessi, e perché nel 2026 quasi ogni progetto nuovo parte con uv.
-
Lezione 18
Build e publishing: PyPI, artifact store interni, semver
Come trasformare il tuo progetto in un wheel, spingerlo su PyPI o sull'index aziendale, ed evitare i footgun del versioning.
-
Lezione 19
pytest, da zero alle fixture
Perché pytest ha vinto su unittest, i pattern di test di base, e il sistema di fixture che rende il setup dei test sopportabile.
-
Lezione 20
Mock, parametrize, conftest.py: il toolkit per i test
Tre pattern di pytest che trasformano un 'questo è impossibile da testare' in un paragrafo di codice.
-
Lezione 21
mypy / pyright + ruff: lo stack di analisi statica
Type checking per intercettare bug, ruff per formattazione e linting, e il workflow che fa girare entrambi in fretta.
-
Lezione 22
Linee guida Python che uso davvero
PEP 8 nella pratica, gli idiomi che fanno sembrare il codice Python davvero Python e le novità del linguaggio degli ultimi anni che vale la pena conoscere.
-
Lezione 23
Sviluppo Python AI-assisted: il workflow che funziona
Dove Copilot/Claude/Cursor aiutano davvero, dove fanno male, e i pattern di prompt che producono codice da spedire.
-
Lezione 24
Property-based testing con hypothesis
Genera centinaia di casi di test in automatico. I pattern che trovano i bug che gli unit test si perdono.
-
Lezione 25
Pandas nel 2026: cosa sapere, cosa saltare, l'ascesa di Polars
Dove si colloca pandas nell'ecosistema dati del 2026, il backend PyArrow, e quando Polars vince davvero.
-
Lezione 26
Series e DataFrame: il modello dei dati
Cosa sono davvero le strutture dati di pandas: un array indicizzato, e un dizionario di array indicizzati.
-
Lezione 27
Leggere i dati: CSV, Parquet, Excel, JSON, SQL
La famiglia pd.read_*, le insidie di ogni formato, e perche' nel 2026 Parquet e' il formato di riferimento.
-
Lezione 28
Selezione: .loc, .iloc, indicizzazione booleana
I tre modi di affettare un DataFrame, le differenze, e il SettingWithCopyWarning di cui tutti rimangono vittima.
-
Lezione 29
Aggregazione: groupBy, agg, transform, quale serve davvero
GroupBy su scala, aggregazioni nominate, la differenza tra agg/apply/transform, e gli schemi che userai ogni settimana.
-
Lezione 30
Join: merge, concat, gli schemi che non ti sorprendono
merge per unire tabelle, concat per impilarle, e il comportamento di allineamento sull'indice che ha salvato o rovinato non poche analisi.
-
Lezione 31
Reshape: pivot, melt, stack, unstack
Da wide a long, da long a wide, e quando le colonne MultiIndex sono una feature invece che un bug.
-
Lezione 32
Time series: resample, rolling, le insidie di date e orari
DatetimeIndex, conversione di frequenza, rolling window, e i bug di fuso orario che azzannano la produzione.
-
Lezione 33
Tipi categorical e string: vittorie su memoria e velocita'
Quando convertire una colonna a categorical o a string[pyarrow] fa la differenza tra un job che gira e uno che esaurisce la memoria.
-
Lezione 34
Quando pandas e' lento: chunk, dtype e dove guardare
Le cinque leve di performance piu' grosse di pandas, il loop diagnostico, e quando 'riscrivere in Polars' e' la risposta giusta.
-
Lezione 35
Polars: l'alternativa moderna
Cosa fa Polars di diverso, l'API lazy che lo rende veloce, e il giro di sintassi per chi viene da pandas.
-
Lezione 36
Progetto di analisi dati end-to-end
Prendere un dataset reale, dal CSV grezzo a una risposta pulita, in un solo script. I pattern che tornano ogni volta.
-
Lezione 37
Design ETL: extract, transform, load
Il pattern che definisce metà del lavoro di data engineering, e le varianti moderne (ELT, medallion, lakehouse) che incontrerai.
-
Lezione 38
Costruire una pipeline di ingestion: dai file al database
Una pipeline completa file-verso-Postgres in Python, con i pattern che sopravvivono al contatto con la realtà.
-
Lezione 39
Lavorare con le API: requests, retry, rate limit
La cassetta degli attrezzi HTTP in Python, i pattern di retry che non peggiorano le cose, e la gestione dei rate limit che ti tiene benvoluto.
-
Lezione 40
asyncio: quando l'I/O async paga davvero
Cosa ti compra asyncio, i pattern che funzionano, e la trappola di mischiare codice sync e async.
-
Lezione 41
Orchestrazione: Airflow, Prefect, Dagster, il panorama del 2026
Quando cron non basta, cosa fa davvero un orchestrator, e i tre contendenti per le tue pipeline di dati.
-
Lezione 42
Progetto di data engineering: costruisci una pipeline vera
Dalla sorgente alla destinazione, con monitoring, idempotenza e una schedulazione. Le lezioni del Modulo 7 rese tangibili.
-
Lezione 43
NumPy: array, broadcasting, le fondamenta del Python scientifico
Cos'è un ndarray, perché il broadcasting cambia il modo in cui scrivi i loop, e il piccolo insieme di funzioni che copre la maggior parte dei casi.
-
Lezione 44
Plotting: matplotlib, seaborn, plotly, scegliere il tuo
Tre librerie di plotting, tre filosofie, e quale prendere in base al pubblico.
-
Lezione 45
SciPy: la cassetta degli attrezzi che quasi tutti dimenticano
Statistica, ottimizzazione, signal processing, matrici sparse: la libreria standard del Python scientifico.
-
Lezione 46
Le funzionalità di Python che ho imparato troppo tardi
Match statement, il walrus operator, il debug con f-string, le dataclass e altre funzionalità di Python che mi avrebbero risparmiato ore se le avessi conosciute prima.
-
Lezione 47
Jupyter, notebook, e quando lasciarli
Perche' i notebook danno dipendenza, dove brillano e il momento in cui dovresti fermarti e scrivere uno script vero.
-
Lezione 48
Progetto numerico: un'analisi vera
Prendi un dataset pubblico ed esegui un'analisi numerica completa: statistiche descrittive, fit, test di ipotesi, plot.
-
Lezione 49
scikit-learn: il tour della libreria standard di ML
Il pattern fit/predict che sta dietro a tutto, le categorie di modelli, e le pipeline che rendono il codice riproducibile.
-
Lezione 50
Feature engineering: la parte che conta di più
Le trasformazioni che trasformano i dati grezzi in carburante per il modello, e quelle che silenziosamente fanno trapelare informazioni dal futuro.
-
Lezione 51
Modelli ad albero: random forest, XGBoost, LightGBM
Perché gli alberi dominano il ML tabulare, le differenze tra le tre grandi librerie, e gli iperparametri che contano.
-
Lezione 52
Modelli lineari e regolarizzati: quando il semplice vince
Perche' i modelli lineari sono ancora la risposta giusta sorprendentemente spesso, e i trucchi di regularization che li rendono pronti per la produzione.
-
Lezione 53
Hyperparameter tuning: grid, random, bayesian, optuna
Le quattro strategie di ricerca, quando ognuna ha senso, e perche' optuna e' il default del 2026.
-
Lezione 54
ML project: un problema di classificazione, end to end
Da CSV grezzo a modello in produzione: le lezioni del Modulo 9 rese tangibili.
-
Lezione 55
Neural network spiegate semplice
Cos'è davvero una neural network, perché la backpropagation funziona, e dove il deep learning batte sul serio il machine learning classico.
-
Lezione 56
PyTorch: il default moderno
Tensor, autograd, il modulo nn, e quel feeling pythonico che ha fatto vincere PyTorch.
-
Lezione 57
Il training loop, in codice
Le cinque righe che trasformano una rete inizializzata a caso in un modello allenato, e la contabilita' che le rende production-grade.
-
Lezione 58
Modelli pre-addestrati + transfer learning + Hugging Face
Il percorso realistico da zero a un modello di deep learning funzionante nel 2026: parti da uno pre-addestrato e fanne il fine-tuning sui tuoi dati.
-
Lezione 59
AI vs ML nel 2026: quando chiamare un LLM, quando allenare
La decisione che cinque anni fa non esisteva: usare un modello hosted, fare fine-tuning di uno open, o allenarne uno tuo?
-
Lezione 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.