Full Stack AI Curriculum

Il Percorso
Completo

Da zero a ingegnere full-stack pronto per la produzione. 15 moduli che coprono ogni livello dello stack moderno, con l'intelligenza artificiale integrata in ogni fase.

🎬 Powered by NotebookLM — Ogni modulo è accompagnato da video e infografiche generate con NotebookLM
15
Moduli
AI+
Integrata
100%
Project-Based
Avanzamento del corso 0 / 15 moduli completati
🎓
Tutti i Moduli Completati!

Hai completato l'intero percorso Full Stack AI Curriculum. Sei pronto a richiedere il tuo attestato di completamento.

🎓 Attestato di Completamento

Full Stack AI Bootcamp

L'Attestato verrà scaricato localmente e salvato sul server. Riceverai via email un link univoco alla tua pagina Attestato.
⚠ L'Attestato ha valore puramente didattico e non è valido ai termini di legge.

MOD 01
AI Fluency per Ingegneri Moderni
✓ Modulo completato
+
🎬 NotebookLM — Video lezione + Infografica disponibili per questo modulo

Prima di scrivere una sola riga di codice, un ingegnere moderno deve comprendere il panorama dell'intelligenza artificiale: come funzionano i modelli, come comunicare con loro efficacemente e come integrarli nel flusso di lavoro professionale. Questo modulo costruisce le fondamenta concettuali e pratiche per tutto il percorso.

🧠
Fondamenti degli LLM
Come vengono addestrati i large language model, cosa sono i token, le finestre di contesto, la temperatura e perché i modelli allucinano.
✍️
Prompt Engineering
Zero-shot vs few-shot prompting, system prompt, chain-of-thought, assegnazione di ruoli e tecniche per output strutturati.
🗺️
L'Ecosistema AI
Panoramica di OpenAI, Anthropic, Google, Meta (LLaMA), Mistral — API, pricing, punti di forza e limitazioni.
🔄
AI nel Flusso di Sviluppo
Usare l'AI per generare codice, documentazione, debug e revisioni senza dipenderne in modo acritico.
⚖️
Etica e Limiti
Bias nei sistemi AI, utilizzo responsabile, problemi di privacy e quando NON usare l'intelligenza artificiale.
🔌
API e Integrazioni
Prime chiamate API hands-on: inviare un prompt a Claude o GPT-4 via REST e leggere risposte strutturate.
📋 Concetti fondamentali
I Large Language Model (LLM) sono sistemi di intelligenza artificiale addestrati su enormi quantità di testo che generano risposte calcolando la probabilità statistica delle parole successive. I concetti fondamentali includono token (unità di testo elaborate dal modello), finestra di contesto (quantità massima di testo gestibile in una singola sessione), e temperatura (parametro che controlla la creatività dell'output). Il fenomeno dell'allucinazione — dove il modello genera informazioni false con apparente sicurezza — è una limitazione critica da conoscere. Il prompt engineering è l'arte di formulare istruzioni efficaci: tecniche come zero-shot, few-shot, e chain-of-thought migliorano drasticamente la qualità delle risposte. L'ecosistema AI comprende provider diversi (OpenAI, Anthropic, Google DeepMind, Meta) ognuno con modelli, API e pricing differenti. Integrare l'AI nel workflow di sviluppo significa usarla per generazione di codice boilerplate, debug assistito, scrittura di documentazione e revisione delle PR, mantenendo sempre senso critico sull'output. Le considerazioni etiche — bias, privacy dei dati, trasparenza — sono parte integrante di ogni implementazione responsabile. Il modulo si conclude con la prima chiamata REST all'API di un LLM, creando un chatbot da riga di comando in JavaScript vanilla.
🎬 Video Lezione — NotebookLM
🖼️ Infografica — NotebookLM
MOD 02
Logica di Programmazione e JavaScript Fondamentale
✓ Modulo completato
+
🎬 NotebookLM — Video lezione + Infografica disponibili per questo modulo

JavaScript è la spina dorsale del web moderno — sia lato client che lato server. Prima di affrontare framework o integrazioni AI, è indispensabile una comprensione solida del linguaggio stesso: come fluiscono i dati, come si compongono le funzioni e come funziona davvero il codice asincrono sotto il cofano.

📦
Tipi di Dato e Strutture
Primitivi, oggetti, array, Map, Set — come JS memorizza i dati e le particolarità del tipaggio dinamico.
🔀
Flusso di Controllo e Loop
Condizionali, operatori ternari, for/while/forEach, short-circuit evaluation e ritorni anticipati.
⚙️
Funzioni e Scope
Closure, funzioni di ordine superiore, arrow function, binding di this, IIFE e scope lessicale.
🔁
JavaScript Asincrono
Callback, Promise, async/await, meccanismo dell'event loop e gestione degli errori con try/catch.
🧩
Funzionalità ES6+
Destructuring, spread/rest, template literal, optional chaining, nullish coalescing e moduli ES.
🧮
Algoritmi e Logica
Ordinamento, ricerca, introduzione alla ricorsione e intuizione della complessità Big O.
📋 Concetti fondamentali
JavaScript è un linguaggio a tipaggio dinamico il cui comportamento sorprende spesso i principianti: la coercizione di tipo, il confronto loose (==) vs strict (===) e le stranezze di this sono trappole comuni da conoscere fin dall'inizio. Le strutture dati fondamentali — array, oggetti, Map, Set — hanno caratteristiche di performance diverse e casi d'uso specifici. Il cuore del JavaScript moderno è l'asincronia: l'event loop permette operazioni non bloccanti gestendo una singola coda di esecuzione; le Promise risolvono il callback hell; async/await rende il codice asincrono leggibile come codice sincrono. Le closure sono uno dei concetti più potenti e usati del linguaggio, permettendo di creare stati privati e funzioni di ordine superiore come debounce e throttle. Le funzionalità ES6+ — destructuring, spread operator, optional chaining, moduli — non sono solo sintassi, ma cambiano il modo di strutturare il codice. La complessità algoritmica Big O aiuta a ragionare sulla scalabilità: un algoritmo O(n²) che funziona per 100 elementi può bloccarsi con 10.000. Il modulo culmina nella costruzione di un task manager completo in vanilla JS, senza alcun framework, per consolidare tutti i concetti appresi.
🎬 Video Lezione — NotebookLM
🖼️ Infografica — NotebookLM
MOD 03
Ambiente di Sviluppo, Git, CLI e Workflow AI-Assistito
✓ Modulo completato
+
🎬 NotebookLM — Video lezione + Infografica disponibili per questo modulo

Gli ingegneri professionisti non si limitano a scrivere codice — operano in modo efficiente nel terminale, gestiscono la codebase con Git e sfruttano gli strumenti AI per amplificare la produttività. Questo modulo trasforma il tuo computer in una postazione di lavoro ingegneristica professionale.

💻
Padronanza del Terminale
Navigazione, manipolazione file, piping, grep, curl, variabili d'ambiente e script shell di base.
🌿
Git e Version Control
Commit, strategie di branching (GitFlow, trunk-based), rebasing, cherry-pick e risoluzione dei conflitti.
🐙
Workflow GitHub
Pull request, cultura della code review, issue, GitHub Actions base e protezione del branch main.
🤖
Coding AI-Assistito
Uso efficace di GitHub Copilot, Cursor e Claude — quando accettare i suggerimenti e quando contestarli.
🛠️
Setup dell'Ambiente
Node.js, nvm, configurazione VS Code, linting (ESLint), formattazione (Prettier) e dotfile.
📋
Spec Writing con AI
Usare l'AI per scrivere specifiche tecniche, PRD e README — trasformare idee vaghe in task precisi.
📋 Concetti fondamentali
Un ambiente di sviluppo professionale è la base di ogni ingegnere efficiente: la configurazione corretta di editor, terminale e strumenti riduce l'attrito quotidiano e previene errori. La padronanza della CLI — navigazione del filesystem, piping, variabili d'ambiente, script bash — è prerequisito imprescindibile nel mondo professionale. Git è lo strumento di collaborazione più usato al mondo: comprendere non solo i comandi base ma anche strategie di branching, rebase interattivo e gestione avanzata dei conflitti distingue un developer junior da uno senior. Il workflow GitHub — pull request, revisioni strutturate, protezione dei branch — è la forma di collaborazione standard nelle aziende tech. Gli strumenti AI per il coding (Copilot, Cursor, Claude) sono moltiplicatori di produttività ma richiedono uso critico: l'ingegnere deve valutare ogni suggerimento, non accettarlo passivamente. La scrittura di specifiche tecniche con AI-assistance — PRD, README, documentazione API — è una competenza sempre più richiesta. Il modulo si conclude con la simulazione di un conflitto di merge reale tra due sviluppatori, che viene risolto collaborativamente seguendo le best practice del team.
🎬 Video Lezione — NotebookLM
🖼️ Infografica — NotebookLM
MOD 04
Lettura del Codice, Debugging e Validazione
✓ Modulo completato
+
🎬 NotebookLM — Video lezione + Infografica disponibili per questo modulo

Leggere e comprendere il codice altrui è importante quanto scriverne di nuovo. La maggior parte della carriera di un ingegnere si svolge all'interno di codebase esistenti. Questo modulo insegna il debugging sistematico, le competenze di code review e come validare la correttezza del software.

🔍
Leggere Codice Sconosciuto
Come entrare in una codebase: entry point, tracciamento del flusso dati, call stack e mappatura delle dipendenze.
🐛
Tecniche di Debugging
Browser DevTools, breakpoint, ispezione di rete, strategie console e il metodo "rubber duck".
Validazione degli Input
Programmazione difensiva, edge case, trappole della coercizione di tipo e validazione ai confini del sistema.
🧪
Test Manuali
Come scrivere casi di test manuali, testing ai limiti, testing esplorativo e tracking delle regressioni.
🤖
Debugging AI-Assistito
Come passare errori a Claude/GPT efficacemente, interpretare i suggerimenti in modo critico e verificare i fix proposti.
📝
Competenze di Code Review
Cosa cercare in una revisione, lasciare commenti costruttivi e revisionare il codice generato dall'AI in sicurezza.
📋 Concetti fondamentali
La capacità di leggere e navigare codebase sconosciute è una delle competenze più sottovalutate ma più preziose di un ingegnere: la maggior parte del lavoro quotidiano non è scrivere codice nuovo, ma capire, modificare e correggere codice già esistente. Un approccio sistematico al debugging — definire il problema con precisione, riprodurlo in modo affidabile, isolare la causa, correggere e verificare — è più efficace che procedere per tentativi. I DevTools del browser sono uno strumento di analisi professionale: breakpoint condizionali, ispezione del call stack, network panel per analizzare richieste API e memory profiler per individuare memory leak. La validazione degli input ai confini del sistema — tra frontend e backend, tra servizi — previene bug insidiosi che emergono solo in produzione. Il debugging AI-assistito richiede abilità specifica: formulare il problema in modo preciso, includere il contesto sufficiente e verificare criticamente ogni soluzione proposta prima di applicarla. La code review non è solo trovare bug — è trasferimento di conoscenza, standardizzazione della qualità e costruzione di cultura ingegneristica nel team. Il modulo culmina nella revisione di una pull request con bug intenzionali nascosti, esercizio pratico di lettura e analisi critica del codice.
🎬 Video Lezione — NotebookLM
🖼️ Infografica — NotebookLM
MOD 05
HTML, CSS, JavaScript per le Interfacce
✓ Modulo completato
+
🎬 NotebookLM — Video lezione + Infografica disponibili per questo modulo

La piattaforma web è straordinariamente potente anche senza alcun framework. Questo modulo copre HTML semantico, CSS moderno (Grid, Flexbox, custom properties, animazioni) e manipolazione del DOM in vanilla JS — costruendo interfacce reali accessibili, responsive e veloci.

🏗️
HTML Semantico
Utilizzo corretto degli elementi, accessibilità (ARIA, ruoli, label), form, tabelle e markup ottimizzato per SEO.
🎨
Sistemi di Layout CSS
Flexbox, CSS Grid, posizionamento, stacking context, overflow e design responsive con container query.
CSS Moderno
Custom property, @layer, :is()/:has(), animazioni, transizioni e scroll-driven animation.
🖱️
Manipolazione del DOM
querySelector, event delegation, creazione dinamica di elementi, MutationObserver e rendering con template.
📱
Design Responsive
Metodologia mobile-first, unità viewport, tipografia fluida, dark mode e budget di performance.
Performance Base
Lazy loading, ottimizzazione immagini, render-blocking, critical CSS e misurazione con Lighthouse.
📋 Concetti fondamentali
HTML semantico non è solo una buona pratica: è il fondamento dell'accessibilità web, che permette agli screen reader di navigare correttamente la pagina, migliora il ranking SEO e rende il codice auto-documentante. CSS Grid e Flexbox hanno risolto i problemi di layout che per anni hanno tormentato i web developer: Grid per layout bidimensionali, Flexbox per distribuzione su un asse. Le CSS custom property (variabili) permettono temi dinamici e consistenza visuale a livello di sistema. Le nuove funzionalità CSS — :has(), container query, scroll-driven animation — eliminano la necessità di JavaScript per molti effetti tradizionalmente complessi. La manipolazione del DOM richiede attenzione alle performance: batch le modifiche, usa event delegation invece di listener multipli, e considera DocumentFragment per inserimenti in bulk. Il design responsive moderno parte dal mobile come caso base e usa CSS per adattarsi agli schermi più grandi, non il contrario. Le performance web sono misurabili: Lighthouse, Core Web Vitals e il Performance Panel di DevTools mostrano dove il rendering rallenta. Il modulo culmina nella costruzione di un portfolio completo e responsive senza alcun framework, solo HTML, CSS e JavaScript — dimostrando che la piattaforma web è già potentissima di per sé.
🎬 Video Lezione — NotebookLM
🖼️ Infografica — NotebookLM
MOD 06
Fondamenti di React e Pensiero a Componenti
✓ Modulo completato
+
🎬 NotebookLM — Video lezione + Infografica disponibili per questo modulo

React domina il mercato del lavoro frontend. Questo modulo copre il cambio di paradigma dalla manipolazione imperativa del DOM all'architettura dichiarativa a componenti — inclusi hook, gestione dello stato, effetti collaterali e la logica del riconciliatore React.

🧩
Architettura a Componenti
Componenti funzionali, composizione vs ereditarietà, problemi del props drilling e principio di responsabilità singola.
🪝
React Hooks
useState, useEffect, useRef, useMemo, useCallback, useContext — quando usarli e i pattern anti-pattern comuni.
🔄
Stato e Flusso dei Dati
Lifting state up, componenti controllati vs non controllati e quando lo stato locale basta vs stato globale.
🌐
React Router
Routing lato client, rotte dinamiche, layout, loader e protezione delle rotte con guardie di autenticazione.
📋
Form in React
Form controllati, pattern di validazione, basi di react-hook-form e feedback accessibile nei form.
🎭
Pattern di Rendering
Rendering condizionale, rendering di liste con key, portale, error boundary e Suspense.
📋 Concetti fondamentali
React introduce un cambio di mentalità fondamentale: invece di manipolare il DOM direttamente, si descrive come dovrebbe apparire l'interfaccia in base allo stato corrente, e React si occupa degli aggiornamenti. Il Virtual DOM e l'algoritmo di riconciliazione rendono questo approccio efficiente. I componenti funzionali con gli hook sono il modo moderno di scrivere React: useState gestisce lo stato locale, useEffect gestisce gli effetti collaterali come chiamate API e subscription, useRef accede direttamente agli elementi DOM quando necessario. Il rischio di re-render non necessari — e le ottimizzazioni con useMemo e useCallback — diventano rilevanti nelle applicazioni con molti componenti. La composizione di componenti è preferibile all'ereditarietà: costruire UI complesse assemblando componenti semplici e riutilizzabili è il cuore del design React. React Router trasforma una SPA in un'applicazione multi-pagina con URL significativi, deep link e navigazione storico. La gestione dei form in React — specialmente la validazione e il feedback all'utente — è un caso d'uso che rivela molte delle sfumature del framework. Il modulo termina con la costruzione di un browser di film completo: routing client-side, pagine di dettaglio dinamiche e filtri sincronizzati con i parametri URL.
🎬 Video Lezione — NotebookLM
🖼️ Infografica — NotebookLM
MOD 07
UI Engineering AI-Assistita e Prototipazione Rapida
✓ Modulo completato
+
🎬 NotebookLM — Video lezione + Infografica disponibili per questo modulo

L'AI sta trasformando il modo in cui vengono costruite le interfacce — dalla generazione di boilerplate all'iterazione su design in pochi secondi. Questo modulo insegna a usare gli strumenti AI strategicamente come UI engineer: accelerare la prototipazione mantenendo proprietà e qualità del codice.

Prototipazione Rapida
Usare v0.dev, Bolt.new e Claude Artifacts per passare da un brief a un prototipo funzionante in meno di un'ora.
🎨
Design System con AI
Generare librerie di componenti coerenti, token e style guide da un prompt o uno screenshot Figma.
🔧
Raffinamento del Codice AI
Come prendere codice UI generato dall'AI, verificarlo, refactorizzarlo a standard produzione e possederlo davvero.
📐
Da Figma al Codice
Tradurre design Figma in componenti React con assistenza AI e precisione manuale.
🧠
Pattern di Prompt per UI
Prompt che producono codice UI pulito, accessibile e ben strutturato invece di output spaghetti.
🔄
Cicli di Iterazione
Cicli human-AI: brief → genera → critica → affina → spedisci. Gestione del contesto e del feedback.
📋 Concetti fondamentali
Gli strumenti AI per la generazione di UI — v0.dev, Bolt.new, Claude Artifacts — hanno cambiato il ritmo della prototipazione: ciò che richiedeva giorni ora richiede ore. Ma la velocità senza comprensione produce debito tecnico: il codice generato dall'AI va sempre esaminato, capito e, dove necessario, riscritto. I prompt efficaci per la UI seguono pattern specifici: definire il contesto (componente per una dashboard SaaS), specificare i vincoli tecnici (React + Tailwind, accessibile, mobile-first), e descrivere il comportamento interattivo previsto. Il ciclo di iterazione human-AI — brief preciso, generazione, critica strutturata, raffinamento — è più produttivo che accettare il primo output. La conversione da Figma a codice con assistenza AI richiede di saper interpretare il design: spacing system, component hierarchy, stati hover/focus/disabled. I design system AI-generati vanno validati per coerenza: token di colore, spaziatura, tipografia e behavior dei componenti devono essere coerenti sull'intera applicazione. Il modulo si conclude con la costruzione di una libreria di componenti completa — Button, Input, Card, Modal — generata con AI, verificata manualmente e documentata con storie Storybook.
🎬 Video Lezione — NotebookLM
🖼️ Infografica — NotebookLM
MOD 08
Stato, API e Sistemi di Dati Frontend
✓ Modulo completato
+
🎬 NotebookLM — Video lezione + Infografica disponibili per questo modulo

Le applicazioni reali sono applicazioni di dati. Questo modulo copre come i sistemi frontend comunicano con le API, gestiscono stati complessi, trattano gli stati di caricamento/errore con grazia e mantengono i dati aggiornati — inclusi i dati in tempo reale via WebSocket.

🌐
Consumo API REST
Fetch API, Axios, header, token di autenticazione, gestione degli errori e come gestire i rate limit delle API.
🗃️
Gestione Stato Globale
Zustand, Redux Toolkit, Jotai — quando serve lo stato globale, come strutturarlo ed evitare l'over-engineering.
🔄
Server State e Caching
React Query / TanStack Query: fetch, caching, invalidazione, aggiornamenti ottimistici e sync in background.
🔌
WebSocket e Real-Time
Basi di Socket.io, protocollo WebSocket, feed di dati live, indicatori di presenza e logica di riconnessione.
🔐
Flussi di Autenticazione
JWT, OAuth 2.0 (login Google/GitHub), refresh token, persistenza dello stato auth e protezione delle rotte.
📊
Basi di GraphQL
Query, mutation, subscription e come GraphQL cambia il modello di data-fetching del frontend.
📋 Concetti fondamentali
Le applicazioni frontend moderne sono sistemi di dati complessi: recuperano dati da API esterne, li trasformano, li memorizzano nella cache, li mantengono sincronizzati e reagiscono ai cambiamenti in tempo reale. La distinzione tra stato locale (UI state), stato globale (shared UI) e server state (dati remoti) è fondamentale per scegliere lo strumento giusto. React Query / TanStack Query risolve elegantemente il problema dello server state: caching automatico, deduplicazione delle richieste, aggiornamenti ottimistici e revalidazione in background. La gestione dell'autenticazione nel frontend è delicata: i JWT vanno conservati in modo sicuro (non in localStorage per token sensibili), i refresh token vanno gestiti automaticamente, e le rotte protette devono essere robuste. I WebSocket permettono la comunicazione bidirezionale in tempo reale tra client e server: fondamentali per chat, dashboard live, funzionalità collaborative e notifiche push. GraphQL cambia il paradigma: invece di endpoint REST fissi, il client specifica esattamente i dati di cui ha bisogno in ogni query, riducendo over-fetching e under-fetching. Il modulo culmina con la costruzione di un carrello acquisti con Zustand: stato persistito, aggiunta ottimistica al carrello e rollback automatico in caso di errore API.
🎬 Video Lezione — NotebookLM
🖼️ Infografica — NotebookLM
MOD 09
Fondamenti di Backend Engineering
✓ Modulo completato
+
🎬 NotebookLM — Video lezione + Infografica disponibili per questo modulo

Gli ingegneri full-stack sono responsabili di entrambi i lati del filo. Questo modulo insegna come costruire servizi backend affidabili, sicuri e ben progettati usando Node.js e framework server moderni — incluso il design delle API REST, i pattern middleware e l'autenticazione lato server.

🖥️
Node.js e il Runtime
Event loop approfondito, stream, Buffer, child_process e costruzione di servizi efficienti I/O-bound.
🚀
Express / Hono / Fastify
Route handler, catene middleware, ciclo di vita request/response, error middleware e confronto tra framework.
📐
Design di API REST
Naming delle risorse, verbi HTTP, status code, versioning, paginazione e documentazione OpenAPI/Swagger.
🔐
Autenticazione e Sicurezza
bcrypt, emissione/validazione JWT, rate limiting, CORS, helmet.js, sanitizzazione input e prevenzione SQL injection.
📧
Servizi Laterali
Invio email (Resend/SendGrid), upload file (S3/Cloudinary), code (BullMQ) e webhook.
🧩
Architettura dei Servizi
Trade-off monolite vs microservizi, quando separare, comunicazione tra servizi e API gateway.
📋 Concetti fondamentali
Node.js è la scelta dominante per il backend JavaScript: il suo modello event-driven e non bloccante lo rende eccellente per servizi I/O-intensive come API server, proxy e gateway. Comprendere l'event loop di Node — come gestisce operazioni asincrone con libuv, la coda dei microtask e quella dei macrotask — è fondamentale per scrivere codice performante ed evitare blocking. I framework come Express, Hono e Fastify condividono il paradigma middleware: una catena di funzioni che trasformano la richiesta prima che raggiunga il handler finale. Il design delle API REST segue convenzioni consolidate: risorse come sostantivi (non verbi), status code semantici, risposte coerenti e documentazione OpenAPI leggibile da macchine e umani. La sicurezza backend non è opzionale: password sempre hashed con bcrypt, JWT validati su ogni richiesta protetta, input sanitizzati per prevenire injection, rate limiting per prevenire abusi e CORS configurato con precisione. I sistemi di queue — BullMQ su Redis — permettono di delegare operazioni lente (invio email, elaborazione immagini) a worker separati, migliorando la response time dell'API. Il modulo culmina con la costruzione di una API REST completa per una piattaforma blog: autenticazione, CRUD, ruoli, rate limiting e documentazione Swagger.
🎬 Video Lezione — NotebookLM
🖼️ Infografica — NotebookLM
MOD 10
Database, Retrieval e il Layer AI
✓ Modulo completato
+
🎬 NotebookLM — Video lezione + Infografica disponibili per questo modulo

I dati a riposo e i dati per il retrieval AI sono problemi fondamentalmente diversi. Questo modulo copre database relazionali e non relazionali, poi approfondisce i database vettoriali e la RAG (Retrieval-Augmented Generation) — l'architettura che alimenta la maggior parte delle applicazioni AI reali oggi.

🗄️
SQL e PostgreSQL
Schema design, normalizzazione, join, indici, transazioni e ottimizzazione delle query con EXPLAIN ANALYZE.
🍃
NoSQL e MongoDB
Modello a documenti, pipeline di aggregazione, strategie di indicizzazione e quando scegliere NoSQL.
🔷
Database Vettoriali
Embedding spiegati, similarità coseno, Pinecone/Weaviate/pgvector e implementazione della ricerca semantica.
🧩
Architettura RAG
Strategie di chunking, generazione di embedding, ranking del retrieval, iniezione del contesto e valutazione della qualità RAG.
🏗️
ORM e Query Builder
Prisma, Drizzle e SQL grezzo — trade-off, migrazioni, type safety ed evitare il problema N+1.
🔍
Ricerca Full-Text e Ibrida
Full-text search di PostgreSQL, integrazione Algolia, ricerca ibrida (keyword + semantica) e ottimizzazione della rilevanza.
📋 Concetti fondamentali
I database sono il fondamento di ogni applicazione: la scelta tra relazionale (PostgreSQL), documentale (MongoDB) o vettoriale dipende dalla struttura e dall'uso dei dati. PostgreSQL rimane la scelta più versatile: supporta JSON, array, full-text search e ora anche vettori tramite pgvector — spesso un unico database ben progettato supera sistemi specializzati. Il design degli schema relazionali richiede comprensione della normalizzazione: eliminare ridondanze, definire relazioni corrette e progettare per le query che verranno eseguite. Gli embedding vettoriali sono rappresentazioni numeriche del significato: due testi semanticamente simili avranno vettori vicini nello spazio multidimensionale, permettendo la ricerca per significato invece che per parole chiave esatte. La RAG — Retrieval-Augmented Generation — è l'architettura che permette agli LLM di rispondere su dati privati o recenti: documenti vengono chunked, convertiti in embedding, salvati in un vector store, e al momento della query i chunk più rilevanti vengono recuperati e iniettati nel prompt. Le strategie di chunking (fixed-size, sentence-based, semantic) influenzano drammaticamente la qualità del retrieval. Il modulo culmina con la costruzione di un chatbot RAG che risponde su documentazione aziendale privata, dall'ingestion dei PDF fino alla risposta in linguaggio naturale.
🎬 Video Lezione — NotebookLM
🖼️ Infografica — NotebookLM
MOD 11
Testing per il Software + Eval per i Sistemi AI
✓ Modulo completato
+
🎬 NotebookLM — Video lezione + Infografica disponibili per questo modulo

Testare il software tradizionale e valutare i sistemi AI richiedono mentalità diverse. Questo modulo copre l'intera piramide di test per il software, poi introduce la sfida unica di valutare sistemi basati su LLM dove gli output sono non-deterministici e la correttezza è spesso soggettiva.

🧪
Unit Testing
Jest / Vitest, scrivere codice testabile, mock delle dipendenze, code coverage e basi del TDD.
🔗
Integration Testing
Test degli endpoint API, interazioni con il database e confini dei servizi usando Supertest e database di test.
🌐
E2E Testing
Playwright e Cypress: automazione browser affidabile, isolamento dei test e integrazione con la CI.
🤖
Fondamenti delle AI Eval
Perché i test tradizionali falliscono con gli LLM, definire la ground truth e la mentalità "eval come prodotto".
📊
Framework di Eval
LLM-as-judge, workflow di eval umana, RAGAS per sistemi RAG e costruzione di dataset di valutazione.
🔄
Regressione e Monitoraggio
Rilevare regressioni dei prompt, A/B testing dei prompt e logging delle interazioni AI per valutazione continuua.
📋 Concetti fondamentali
La piramide di testing — unit test alla base, integration test nel mezzo, E2E al vertice — è un framework per bilanciare velocità di esecuzione e copertura. I test unitari sono veloci e precisi ma testano in isolamento; i test E2E testano il sistema reale ma sono lenti e fragili. Jest e Vitest offrono un'esperienza di testing moderna per JavaScript: mock automatici, matchers espressivi, code coverage e modalità watch. Il testing delle API con Supertest permette di testare endpoint HTTP direttamente senza avviare un server, fondamentale per CI affidabili. Playwright ha rivoluzionato l'E2E testing: auto-waiting, isolamento dei test tramite browser contexts, e il test generator che registra le interazioni dell'utente. La valutazione dei sistemi AI è un problema categoricamente diverso: un LLM produce output diversi per lo stesso input, rendendo i test deterministici impossibili. Le metriche di valutazione per RAG — faithfulness, answer relevance, context recall — misurano aspetti diversi della qualità. L'approccio LLM-as-judge usa un secondo modello per valutare l'output del primo, scalabile ma con rischi di bias. Il modulo culmina con la costruzione di un harness di valutazione che testa un chatbot RAG su 50 coppie domanda/risposta di ground truth, con report automatico della qualità.
🎬 Video Lezione — NotebookLM
🖼️ Infografica — NotebookLM
MOD 12
DevOps, CI/CD e Prontezza alla Produzione
✓ Modulo completato
+
🎬 NotebookLM — Video lezione + Infografica disponibili per questo modulo

Spedire il codice è solo metà del lavoro — mantenerlo funzionante in produzione è l'altra metà. Questo modulo copre le pipeline di deployment moderne, l'infrastruttura basata su container, l'osservabilità e le pratiche che distinguono il "funziona sulla mia macchina" dal software di produzione.

🐳
Docker e Container
Scrittura di Dockerfile, build multi-stage, docker-compose per lo sviluppo locale e best practice dei container.
🔁
Pipeline CI/CD
GitHub Actions: test automatici, linting, build e deployment attivati al push o al merge della PR.
☁️
Deployment Cloud
Vercel, Railway, Render, AWS (EC2, Lambda, S3, RDS) — scegliere la piattaforma giusta per ogni caso d'uso.
🔍
Osservabilità
Logging strutturato, error tracking (Sentry), monitoraggio delle performance e alerting sulle anomalie.
🔒
Segreti e Configurazione
Variabili d'ambiente, gestione dei segreti (Vault, Doppler) e metodologia 12-factor app.
📈
Strategie di Scaling
Scaling orizzontale vs verticale, load balancing, connection pooling del database e configurazione CDN.
📋 Concetti fondamentali
DevOps non è un ruolo — è una cultura e un insieme di pratiche che avvicinano sviluppo e operations per accelerare il ciclo di rilascio riducendo i rischi. Docker ha rivoluzionato il deployment: il container incapsula l'applicazione e tutte le sue dipendenze, eliminando "funziona sulla mia macchina". I Dockerfile multi-stage riducono la dimensione dell'immagine finale separando il build environment dall'ambiente di runtime. Le pipeline CI/CD — Continuous Integration e Continuous Deployment — automatizzano il percorso dal codice alla produzione: ogni commit triggera test, linting, build e (se tutto passa) deployment automatico. GitHub Actions è lo standard de facto per CI/CD nel mondo open-source e startup. L'osservabilità in produzione richiede tre pilastri: logging strutturato (JSON parsabile da macchine), metriche (latenza, throughput, tasso di errore) e tracing distribuito. Sentry per l'error tracking è lo standard: cattura eccezioni con il contesto completo — stack trace, variabili, versione del codice — e avvisa il team in tempo reale. La gestione dei segreti è critica per la sicurezza: le credenziali non vanno mai nel codice sorgente, e strumenti come Doppler centralizzano la gestione degli environment variable in tutti gli ambienti. Il modulo culmina con la creazione di una pipeline completa: dall'avvio del container locale al deployment automatico in produzione al merge su main.
🎬 Video Lezione — NotebookLM
🖼️ Infografica — NotebookLM
MOD 13
System Design, OOD e Case Study di Ingegneria
✓ Modulo completato
+
🎬 NotebookLM — Video lezione + Infografica disponibili per questo modulo

Gli ingegneri senior pensano per sistemi, non solo per codice. Questo modulo insegna a progettare sistemi distribuiti su larga scala, applicare i principi di object-oriented design dove contano e analizzare decisioni architetturali reali attraverso case study di sistemi usati da milioni di persone.

🏛️
Fondamenti di System Design
Teorema CAP, modelli di consistenza, trade-off latenza vs throughput e come ragionare sulla scala fin dal primo giorno.
🗂️
Pattern di Sistema Comuni
Message queue, pub/sub, event sourcing, CQRS, saga pattern e strategie di caching distribuito.
🧱
Principi OOD
Principi SOLID in pratica, design pattern (Factory, Observer, Strategy, Repository) con esempi reali in JS/TS.
📐
API Design in Scala
Progettare per la retrocompatibilità, strategie di versioning, idempotenza e contratti API.
🔬
Case Study
Come funziona la timeline di Twitter, come Figma realizza il multiplayer real-time, come Stripe processa pagamenti in modo affidabile.
🎯
Preparazione ai Colloqui
Strutturare una risposta di system design, chiarire requisiti, stimare la scala e disegnare diagrammi sotto pressione.
📋 Concetti fondamentali
Il system design è la competenza che distingue gli ingegneri junior da quelli senior: la capacità di ragionare su sistemi complessi, identificare i colli di bottiglia prima che si manifestino e scegliere architetture che scalano. Il teorema CAP afferma che un sistema distribuito può garantire al massimo due tra consistenza, disponibilità e tolleranza alle partizioni — una scelta fondamentale con implicazioni pratiche su ogni decisione di architettura. I pattern architetturali moderni — message queue, pub/sub, CQRS, event sourcing — risolvono problemi specifici: disaccoppiamento tra servizi, elaborazione asincrona, audit trail completo e separazione tra operazioni di lettura e scrittura. I principi SOLID — Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion — non sono dogmi ma linee guida per scrivere codice manutenibile. Il pattern Repository astrae il layer di accesso ai dati, permettendo di cambiare database senza toccare la business logic. Analizzare come sistemi reali (Twitter, Figma, Stripe) risolvono problemi di scala è il modo più efficiente per assimilare pattern di architettura. Il modulo culmina con la simulazione di un colloquio di system design: progettare un URL shortener che gestisce 10.000 richieste al secondo, con diagramma, stima della capacità e giustificazione di ogni scelta.
🎬 Video Lezione — NotebookLM
🖼️ Infografica — NotebookLM
MOD 14
Capstone AI SaaS + Strategia di Lancio
✓ Modulo completato
+
🎬 NotebookLM — Video lezione + Infografica disponibili per questo modulo

Tutto converge qui. Progetti, costruisci e lanci un prodotto AI SaaS in produzione da zero — con autenticazione reale, pagamenti, una funzionalità AI core, una landing page e utenti veri. Questo è il progetto che va nel portfolio e nel curriculum.

💡
Definizione del Prodotto
Definire un'idea AI SaaS con un problema reale, un utente target e una proposta di valore monetizzabile.
🏗️
Pianificazione Architetturale
Scegliere lo stack, progettare il modello dati, pianificare l'integrazione AI e delimitare l'MVP.
💳
Pagamenti e Abbonamenti
Integrazione Stripe: piani abbonamento, fatturazione a consumo, periodi di trial, customer portal e webhook.
🤖
Engineering della Feature AI
Costruire una funzionalità AI core end-to-end: design del prompt, risposte in streaming, gestione del costo dei token.
🚀
Lancio e Growth Loop
Copywriting della landing page, strategia di lancio su Product Hunt, basi SEO e costruzione di meccaniche virali/referral.
📊
Analytics e Metriche
Configurare analytics di prodotto (PostHog/Mixpanel), definire la North Star metric e tracciare l'MRR.
📋 Concetti fondamentali
Il capstone è il momento in cui tutte le competenze acquisite convergono in un prodotto reale: non un esercizio accademico, ma un'applicazione con utenti, pagamenti e infrastructure reale. La definizione del prodotto parte dal problema — non dalla soluzione: identificare un dolore reale di un utente specifico, validarlo con conversazioni reali, e costruire il prodotto più semplice possibile che lo risolva. L'architettura di una SaaS AI moderna combina frontend React, backend Node.js, database PostgreSQL, vector store per la feature AI, Stripe per la monetizzazione e un provider LLM per il core AI. L'integrazione Stripe richiede attenzione ai webhook: eventi come checkout.completed, subscription.updated e invoice.payment_failed devono essere gestiti in modo affidabile e idempotente. La feature AI core — che sia un assistente, un generatore di contenuti, un analizzatore di documenti — deve essere progettata con attenzione ai costi: i token LLM costano, e senza limiti e monitoring la spesa può esplodere. Il lancio su Product Hunt richiede preparazione: community building pre-lancio, materiali visivi, risposta attiva ai commenti e follow-up post-lancio. Le metriche di una SaaS sono MRR, churn rate, LTV e CAC — comprenderle è fondamentale per iterare sul prodotto con dati.
🎬 Video Lezione — NotebookLM
🖼️ Infografica — NotebookLM
MOD 15
Sbocchi di Carriera, Pitching e Percorsi di Finanziamento
✓ Modulo completato
+
🎬 NotebookLM — Video lezione + Infografica disponibili per questo modulo

La competenza tecnica ti porta in sala — come ti presenti ti fa uscire con il lavoro o il finanziamento. Questo modulo finale copre l'intero panorama dei percorsi post-bootcamp: trovare un ruolo in un'azienda, fare freelance, costruire una startup o raccogliere capitale pre-seed per il progetto capstone.

📄
Portfolio e CV
Creare un portfolio da sviluppatore che racconta una storia, scrivere un CV che supera l'ATS e cosa includere da questo bootcamp.
🎤
Colloqui Tecnici
Pratica di live coding (pattern LeetCode), risposte al system design, framework comportamentali (STAR) e mock interview.
💼
Strategia di Ricerca Lavoro
Targettizzare le aziende giuste, script di cold outreach, ottimizzazione LinkedIn e tracking sistematico delle candidature.
🔧
Freelancing e Consulenza
Stabilire le tariffe, trovare clienti, definire il scope dei progetti, scrivere proposal e costruire una pratica solista sostenibile.
🌱
Percorso Startup
Strategia per la candidatura a YC, angel vs VC funding, struttura del pitch deck, term sheet pre-seed e dinamiche del cofondatore.
🤝
Costruzione della Rete
Costruire in pubblico su X/LinkedIn, contribuire all'open source, talk alle conferenze e presenza nella community come asset di carriera.
📋 Concetti fondamentali
La transizione dal bootcamp al lavoro richiede una strategia deliberata: le competenze tecniche da sole non bastano se non sai come presentarle. Il portfolio è il documento di vendita più importante per un developer: deve mostrare progetti reali con descrizioni del problema, delle scelte tecniche e dei risultati misurabili. Il CV da developer moderno è ottimizzato per i sistemi ATS (Applicant Tracking System) ma anche leggibile da umani: keyword pertinenti, quantificazione degli impatti e struttura pulita. I colloqui tecnici hanno pattern prevedibili: algoritmi e strutture dati per il live coding, system design per le posizioni più senior, e domande comportamentali per valutare la cultura. La ricerca attiva del lavoro con cold outreach personalizzato supera l'invio passivo di CV: un messaggio che dimostra conoscenza dell'azienda e collega le proprie competenze ai loro problemi specifici ha un tasso di risposta molto più alto. Per i freelance, la tarificazione è arte e scienza: tariffe troppo basse segnalano scarso valore, troppo alte scoraggiano senza un portfolio solido. Il percorso startup richiede comprensione del landscape del venture capital: pre-seed, seed, serie A hanno dimensioni e aspettative diverse. Costruire in pubblico — condividere il processo di apprendimento e costruzione sui social — è la strategia più sostenibile per costruire una rete professionale autentica nel lungo periodo.
🎬 Video Lezione — NotebookLM
🖼️ Infografica — NotebookLM