Corso di tecniche per lo sviluppo di software con metodologie DevOps per l’integrazione dei sistemi e l’utilizzo dei big data
Avviso pubblico per la presentazione e selezione di progetti di istruzione e formazione tecnica superiore (ifts) da realizzare nell'a.f. 2026/2027P.R.+ 2021-27 priorità: 2. Istruzione e formazione – es04.6 - azione f.2. Sostegno ai percorsi di istruzione post-secondaria
L’approccio DevOps unisce sviluppo e operatività, automatizzando i processi per renderli più efficienti. Gli specialisti DevOps gestiscono infatti sia il codice che la manutenzione delle applicazioni e, per farlo, servono competenze tecniche, conoscenza dei linguaggi di programmazione e familiarità con pratiche e strumenti Lean, che rendono il lavoro più veloce e collaborativo.
Il corso forma figure tecniche con competenze in coding, ambienti cloud, CI/CD e metodologie Lean, un profilo sempre più richiesto, non solo nel settore IT!
Organizzazione del corso
- DURATA: 1 anno (1000 ore totali – 600 teoria + 400 stage)
- IMPEGNO: per la fase d'aula 30 ore a settimana in presenza, dal lunedì al giovedì dalle 9.00 alle 18.00 nella sede IFOA di Milano Bovisa, in Via Durando 38
- STAGE: presso aziende del comparto IT
A chi è rivolto
Il corso è rivolto a giovani, residenti o domiciliati in Lombardia, che siano in possesso di uno dei seguenti titoli di studio, secondo quanto indicato all’art. 10 del DPCM del 25 gennaio 2008:
- diploma di istruzione secondaria superiore;
- diploma professionale di tecnico di cui al D.Lgs 17/10/2005, n. 226, art. 20, comma 1, lettera c, ovvero attestato di competenza di III livello europeo conseguito nei percorsi di IeFP antecedenti all’anno formativo 2009/2010;
- in possesso dell’ammissione al quinto anno dei percorsi liceali, ai sensi del D.Lgs 17/10/2005, n. 226, art. 2, comma 5, o non in possesso del Diploma di Istruzione Secondaria Superiore, previo accreditamento delle competenze acquisite in precedenti percorsi di istruzione, formazione e lavoro successivi all'assolvimento dell'obbligo di istruzione di cui al regolamento adottato con Decreto del Ministro della Pubblica Istruzione n. 139 del 22 agosto 2007.
Come funziona
L’ammissione al corso è subordinata al superamento di prove di selezione attitudinali, tecniche e colloquio motivazionale:
- la prova attitudinale (test scritti) è volta a misurare la capacità di esecuzione e riuscita in differenti aree significative per la figura professionale in uscita;
- il colloquio individuale ha lo scopo di accertare la motivazione alla partecipazione e l'interesse per il settore specifico del corso, oltre alle capacità organizzative, di comunicazione efficace con gli altri e di lavorare in team.
Cosa imparerai a fare
Al termine del corso avrai acquisito le seguenti competenze:
- Individuare gli strumenti di sviluppo del software per creare un prodotto conforme alle specifiche progettuali richieste dal cliente
- Conoscere e applicare i più diffusi linguaggi di programmazione, le principali regole della programmazione strutturata, le diverse tipologie di applicazioni software
- Gestire i processi principali di Networking e di Cybersecurity
- Sviluppare componenti per applicazioni distribuite (Web e Mobile)
- Pianificare e gestire i flussi operativi di Continuous Integration / Continuous Deployment
- Gestire l’interazione tra componenti dell’architettura e integrare API (Application Programming Interface)
- Interagire con i database, sia SQL che NoSQL
- Effettuare test di funzionamento delle soluzioni in esercizio
- Gestire la manutenzione delle applicazioni e produrre la relativa documentazione
- Supportare i processi aziendali di Digital Transformation
Quanto costa e modalità di pagamento
Il corso è completamente gratuito.
Contenuti del corso
Lettura e spiegazione patto e consegna calendario del corso
Sviluppo delle Capacità comunicative
- Autopresentazione e interviste reciproche
- L'importanza delle domande, come intervenire in una riunione
- Comunicare con clienti e colleghi, ascolto attivo, domande e obiezioni
- Struttura delle mail e sue funzioni, gestione mail di reclamo, reportistica
- Presa in carico telefonica cliente e gestione telefonate
Problem solving
- La definizione delle priorità,
- La fase di semplificazione della situazione
- (scomposizione di situazione complesse in situazioni più facilmente maneggevoli)
- La fase di individuazione della causa “vera” (analisi del problema reale)
- La fase di identificazione della soluzione “ottimale” e di presa della decisione (decision making),
- La fase di prevenzione dei problemi potenziali (rischi)
- Processi decisionali, emozioni e comunicazione.
Il sistema Impresa
- Azienda come sistema efficace ed efficiente
- Obiettivi e risorse dell’organizzazione: mission, vision, valori e cultura aziendale
- Il settore di riferimento: caratteristiche delle aziende IT, tipologie di servizi offerti, tipologie di clienti
- Tipologie di contratti, fonti documentali
- L’organigramma: poteri e responsabilità
- Ruolo e flussi di lavoro e di comunicazione
- Gli stili di leadership e di gestione delle persone in azienda
- Know-how e comportamenti organizzativi
- Cenni sul Sistema Qualità, principi e documenti utilizzati
- Tracciamento delle attività, reportistica in uso
Team working
- La consapevolezza del proprio ruolo
- Lavorare per obbiettivi comuni e non individuali
- La comunicazione assertiva ed efficace
- Stereotipi e pregiudizi
- Il concetto di responsabilità diffusa
- Obiettivi lavorativi individuali e di squadra
Sicurezza generale dei lavoratori
- Concetto di rischio
- Concetto di danno
- Concetto di prevenzione
- Concetto di protezione
- Organizzazione della prevenzione aziendale
- Diritti, doveri e sanzioniper i vari soggetti aziendali
- Organi di vigilanza, controllo e assistenza
Sicurezza specifica rischio basso
- Rischi specifici legati all'attività lavorativa
- DPI
- Movimentazione manuale dei carichi
- Utilizzo scale portatili
- Rischio chimico
- Tutela delle lavoratrici madri
- Incidenti stradali
- Near miss
- Utilizzo di videoterminali
- Stress lavoro-correlazione
- Gestione delle emergenze
- Elementi di matematica applicata alla statistica.
- Rilevazione e rappresentazione dati.
- Curva Gaussiana, Media, Moda, Mediana, Varianza, Deviazione STD
- Intervalli di confidenza, Indici di dispersione, Probabilità.
- Utilizzo del foglio elettronico per analisi dati.
- Formule: Tipologia, inserimento, indirizzi relativi – assoluti - misti
- Funzioni: Generalità ed uso delle principali Matematiche, Logiche e Riferimento, anche nidificate
- Analizzare precedenze e dipendenze, Controllo celle
- Errori di formule e loro valutazione
- Formattazione condizionale ed avanzata a elenchi
- Definire e applicare Filtri ed Ordinamento dati anche in modalità avanzata; Tabella; Subtotale
- Gestione dati: Importare file testo o web in Excel
- Grafici: Definizione, selezione dati, individuazione tipo, tipologia numerica, editing, tipologia temporale
- Analisi dati: Raggruppare/Separare le strutture dati; inserimento guidato dati; Convalida dei dati; Consolida
- Tabella pivot – Dashboard
- Ripasso della logica della lingua inglese: i tempi verbali visti come un sistema
- Programmare attività aziendali: ripasso futuro dei verbi, esprimere obiettivi/programmi
- Descrivere prodotti/servizi: ordine di aggettivi, forme/materiali, Descrizione di funzione e utilizzo
- Parlare di idee: passato semplice/continuo, sequenze sostantivo/aggettivo, partecipare/gestire riunioni, esprimere idee/opinioni
- Innovazione: seguire/fare una presentazione, preposizioni di tempo, verbo al passivo, vocaboli per esprimere
- Terminologia tecnica di settore nell’ambito dell’ICT.
- Sistema operativo Windows: funzionalità del sistema operativo, requisiti del cliente, aggiornamenti del S.O.,
- Installazione di base di Windows, opzioni di installazione personalizzate, sequenza di avvio di Windows
- Configurazione di Windows. Pannelli di controllo
- Amministrazione del sistema: Strumenti amministrativi, Utilità di sistema, Gestione del disco, Installazione e configurazione delle applicazioni
- Command Line Interface di Windows: comandi CLI del file system, del disco, di sistema e attività
- Introduzione al mondo Linux: distribuzioni e loro caratteristiche, applicazioni e licenze open source
- Installazione del sistema operativo,
- La linea di comando: shell e i comandi base, filese e cartelle, archiviazione e compressione
- Configurazioni di base del sistema
- Scripting: creazione di uno script di comandi
- Gestione degli utenti: concetti base ed identificazione del tipo di utente
- Gestione di processi e packaging
- Accesso ai files: gestione di proprietà e permessi
- Permessi speciali : cartelle e files speciali, links di accesso ai files
- Tecniche comuni di manutenzione preventiva per i S.O.: piano di manutenzione preventiva, backup e ripristino, problemi comuni e soluzioni
- Introduzione al networking: componenti e tipi di rete, tipi di connessione Internet
- Protocolli, standard e servizi di rete: Protocolli del livello di trasporto, Numeri di porta dell'applicazione, Protocolli wireless, Servizi di rete
- Dispositivi di rete , cavi e connettori in rame e in fibra
- Connessione da dispositivo a rete: indirizzamento di rete, configurare una scheda NIC, configurare una rete cablata e wireless, configurazione di un dispositivo IoT
- Il processo di risoluzione dei problemi di rete di base
- Reti Windows: condivisione in rete e mappatura delle unità, condivisione di risorse locali, configurare una connessione di rete cablata, interfaccia di rete wireless, protocolli di accesso remoto, desktop remoto e assistenza
- Stampanti: caratteristiche e capacità, connessioni stampante, installazione, configurazione e aggiornamenti
- Condivisione di stampanti: impostazioni per la condivisione, server di stampa
- Introduzione alla Virtualizzazione
- Cloud Computing: Applicazioni, Servizi cloud
- Minacce alla sicurezza: Malware, Prevenzione del malware, Attacchi di rete
- Procedure di sicurezza: Politica di sicurezza, Protezione di una postazione di lavoro, Protezione e distruzione dei dati
- Assegnazione del ruolo di administrator, Gestione di utenti e gruppi
- Autenticazione, Autorizzazione e Accounting (AAA)
- Liste di controllo degli accessi (ACL)
- Tecnologie firewall, Firewall con criteri basati su zone
- Tecnologie Intrusion Prevention System, Funzionamento e implementazione IPS, Sicurezza degli endpoint
- Sicurezza di livello 2: Servizi crittografici, Integrità e autenticità di base, Crittografia a chiave pubblica
- VPN: implementazione di una VPN IPsec site-to-site con CLI
- Test di sicurezza della rete
- Criminali informatici contro specialisti della sicurezza informatica
- Le tre dimensioni del Cubo della sicurezza informatica: confidentiality, integrity, and availability
- Domini di sicurezza informatica
- Protezione di un dominio di sicurezza informatica: Sistemi e dispositivi di difesa, Rafforzamento del server, Rafforzamento della rete, Sicurezza fisica e ambientale
- Comprendere l'etica del lavoro nella sicurezza informatica
- Architettura cloud: Sicurezza dell'infrastruttura per il cloud, Gestione del rischio, Sicurezza dei dati per il cloud, Sicurezza delle applicazioni e gestione delle identità
- Problemi e algoritmi
- Aplicazioni per rappresentazione di algoritmi (es. Flowgorithm)
- Variabili, assegnazioni, calcoli
- Algebra booleana, Operatori logici, Sequenze
- Selezione e cicli
- Scomposizione e metodi
- Array e Stringhe
- Algoritmi notevoli
- Evoluzione dalla programmazione procedurale alla programmazione ad oggetti
- Introduzione Programmazione ad Oggetti
- Introduzione concetti sull'OOP: incapsulamento, ereditarietà, polimorfismo, introspezione
- Introduzione a Python come linguaggio di programmazione universale: versioni di Python e sviluppo del linguaggio; Strumenti e IDE necessari per iniziare a programmare in Python.
- Tipi di dati, variabili, operazioni di input-output di base, operatori di base: come scrivere ed eseguire il primissimo programma Python; Operatori ed espressioni; Variabili; Operazioni di I/O di base in Python.
- Valori booleani, esecuzione condizionale, cicli, elenchi ed elaborazione di elenchi, operazioni logiche e bit a bit: Tipo di dato booleano; Operatori relazionali in Python; Processo decisionale if, if-else, if-elif-else; Cicli whhile e for; -Operazioni bit a bit;
- Liste in Python: costruzione, indicizzazione, slicing e manipolazione del contenuto; algoritmo di ordinamento a bolle;
- Funzioni: Strutturazione del codice e concetto di funzioni; Chiamata e restituzione di un risultato da una funzione; Name scopes e variabile shadowing;
- Tuple, dizionari ed elaborazione dei dati: scopo, costruzione e utilizzo;
- Moduli, Pacchetti e PIP: Cos'è un modulo; Importazione e utilizzo dei moduli; Alcuni utili moduli Python;, Costruzione e utilizzo di pacchetti;- PIP-il coltellino svizzero per la manutenzione
- Eccezioni, Stringhe, Metodi String e List: Caratteri, stringhe e standard di codifica; Stringhe vs. liste; Elenco metodi; Metodi stringa; Gestione errori di runtime; Controllo del flusso di errori utilizzando try except; Gerarchia delle eccezioni.
- Programmazione orientata agli oggetti in Python: - Concetti di base OOP; Classi, oggetti, proprietà e metodi; Ereditarietà e polimorfismo; Eccezione come oggetto.
- Lavorare con filesystem, alberi di directory e file;
- Moduli della libreria standard Python selezionati (os, date, datetime, calendar).
- Introduzione al paradigma OOP, piattaforma Java, versioni ed edizioni
- Configurazione dell’ambiente di sviluppo (JDK)
- IDE (a scelta del docente)
- Primo programma Java
- Variabili e tipi di dato, Casting
- Operatori: assegnamento, aritmetici, unari, relazionali, logici, bitwise
- Istruzioni condizionali
- Cicli: while, for, do-while
- Altre tipologie di dati: Enumerazioni, Array, String e Array of string, Multidimensional Array, ArrayList,
- Classi: dichiarare una classe
- Metodi: getter e setter
- Costruttori, uso della parola chiave this
- Oggetti: Creazione ed utlizzo
- Ereditarietà: sottoclassi e superclassi
- Polimorfismo: overloading e overriding
- Incapsulamento
- Classe String: uso e gestione delle stringhe, Classi StringBuffer e StringBuilder
- Gestione della memoria: Garbage Collection
- Package e visibilità: public, private, protected
- Documentazione del codice, uso dei commenti Javadoc
- Autoboxing e unboxing
- Classe java.util
- Errori ed eccezioni: tipi e gestione (Runtime e Checked)
- Sintassi del try with resource di java
- Leggere, creare e scrivere file
- Introduzione alle Interfacce
- Introduzione a JDBC e accesso a DBMS
- Introduzione alle applicazioni web, panoramica tecnologie più utilizzate
- Aspetto della pagine web: HTML + CSS
- Linguaggio di script e sua funzione: Javascript
- HTML: elementi strutturali della pagina web, editors, inserimento di grafica, animazioni, video e link, inserimento di tabelle, liste e creazione di un menu di navigazione
- Introduzione a CSS: applicare lo stile alle pagine web
- CSS: sfondi, colori, posizione nella pagina, margini, padding, round borders, dropdown menù, rasformazioni 2D 3D, animazioni
- Uso delle Form in HTML5
- Introduzione a Bootstrap: cosa è e a cosa serve, framework, installazione, grid layout, classi, stili
- Manipolazione maschere per immagini.
- Nozioni base HttpRequest, HttpResponse, Http Session
- Concetto di sito responsive
- Introduzione a JAVASCRIPT: rendere interattiva la pagina web
- JAVASCRIPT: tipi di dati, variabili, oggetti, elementi per il controllo di flusso, Document Object Modul, caricamento remoto di una risorsa, URL, URI, ORIGIN, definizione policy cross-origin
- JAVASCRIPT: oggetti, costruttore, varie metodologie di gestione eventi, librerie Jquery
- File scambio dati: JavaScript Object Notation
- Lavorare con il JSON: Get Post e Put
- Cenni su Android sTudio: editor e impostazione delle variabili di sistema.
- Panoramica su View, ViewGroup, widget e risorse di un'app
- Studio, realizzazione e test di una prima, semplice app.
- Testing di app con emulatori e dispositivi mobili reali.
- Introduzione al linguaggio Java-Based Kotlin per lo sviluppo di una applicazione mobile mediante uso dell’IDE IntelliJ Idea: Funzioni, Classi, istanze, Extension function ed espressioni lambda, Stringhe. Array, Clicli ed espressioni condizionali.
- Introduzione ai dati: concetto di dato, informazione e informazioni strutturate.
- Database: definizione, utilità e vantaggi
- DBMS (scelto dal docente): vantaggi svantaggi e tipologie sul mercato elementi dell’interfaccia (sicurezza, database, tabelle, query)
- Progettazione di base dati: dall’ideazione all’estrazione di informazioni.
- Modello ER: concetto di entità, relazione, tipologie di relazioni, cardinalità 1:1- 1:N – N:M.
- Modello logico: regole di derivazione per tradurre da modello ER.
- Introduzione concetto di Primary Key e Foreign Key e integrità referenziale
- Creare le tabelle, PK e FK da interfaccia
- Introduzione a SQL: sintassi per la creazione/cancellazione/modifica di un database e di una tabella.
- Query di selezione semplice
- Forme normali: definizione, concetto di dipendenza funzionale
- Interrogazioni SQL: query concetto di selezione, proiezione e prodotto cartesiano
- Funzioni di aggregazione: MIN MAX AVG COUNT
- Ordinamento: Order by desc e asc
- Raggruppamento: Group by e having. Differenze having e where
- Query nidificate, JOIN e differenze inner join, left join, right join e full outer join, self join, Distinct e differenze con group by.
- Creazione di viste: comando view.
- Interrogazioni SQL: EXISTS, NOT, ANY, ALL, UNION
- Modelli di processo, sviluppo e specifica dei requisiti software (IEEE830) introduzione a UML.
- Modelli a cascata, RUP, Agili.
- Diagramma delle classi/oggetti, dei package/casi d’uso, di stato/attività/sequenza
- Metodologia Agile: superamento del modello a cascata, collaborazione tra i team e gli utenti finali,
- approccio incrementale (suddivisione del progetto in piccoli moduli per lavorare in parallelo con feedback costanti), monitoraggio dell’avanzamento del progetto durante tutto il ciclo di sviluppo (controllo empirico processi).
- Scrum framework agile per la gestione del ciclo di sviluppo del software
- Limiti e svantaggi di Agile: scadenze mancanti, obiettivi di budget, mancato coordinamento tra il team di sviluppo e team operativo, componenti software incompatibili dopo il completamento (nuove funzionalità che interrompono le vecchie funzioni.)
- Metodologia DevOps: dalla collaborazione tra il team di sviluppo e gli utenti finali alla collaborazione collettiva tra il team di sviluppo e operativo.
- Obiettivo DevOps: aumentare la capacità di un’organizzazione di fornire servizi e applicazioni a un ritmo relativamente più veloce.
- Cultura di Agile e DevOps
- Dimensione del team per Agile eDevOps
- Automazione in Agile e DevOps
- Comunicazione per Agile e DevOps
- Esempi di applicazione
- Modelli di progettazione del software.
- Controllo della versione tramite GIT.
- Nozioni di base sulla codifica Best practice.
- Revisione e test del codice
- Comprensione dei formati dei dati
- Comprensione e utilizzo delle API
- Stili di progettazione e stili architetturali API
- Introduzione alle API REST
- Autenticazione a un'API REST
- Interazione dell’API utilizzaando la riga di comando, gli strumenti grafici e il codice Python
- Limiti e risoluzione dei problemi dell'API
- Comprensione delle scelte di distribuzione con diversi modelli
- Tecnologia container per distribuire una semplice applicazione.
- Integrazione continua/distribuzione continua (CI/CD)
- Reti per lo sviluppo e la sicurezza delle applicazioni in un ambiente cloud.
- Protezione delle applicazioni
- Introduzione alla Data Communication and Visualization con Power BI ed Excel:
- Connettersi ai dati e modificare un'origine dati
- Ordinare, filtrare e raggruppare i dati
- Utilizzare l'area di lavoro di Power BI per creare dashboard.
- Creare report dinamici e condivisi con Power BI.
- Creare strutture di calcolo di base, inclusi elaborazione di dati tabellati.
- Creare dashboard interattive per rivelare informazioni dettagliate sui dati.
- Condivisione e pubblicazione delle dashboard.
- Studio di funzioni di probabilità lineare per ottimizzazione di modelli IA in sistemi RAG.
- Introduzione all’utilizzo dell’intelligenza artificiale per l’analisi dei dati: generazione e manipolazione di file Excel con ChatGpt e Claude.
- Principi di prompt engeneering
- Sviluppo di skill per Claude e ChatGpt
- Utilizzo di LM Studio per lo sviluppo di sistemi di IA locali
Certificazioni
- Certificato di specializzazione tecnica superiore
Estremi finanziamento
Avviso pubblico per la presentazione e selezione di progetti di istruzione e formazione tecnica superiore (ifts) da realizzare nell'a.f. 2026/2027P.R.+ 2021-27 priorità: 2. Istruzione e formazione – es04.6 - azione f.2. Sostegno ai percorsi di istruzione post-secondaria
Note
Durante il processo di iscrizione ti verrà richiesto di caricare i seguenti documenti:
- copia della Dichiarazione sostitutiva di certificazione compilata (Scaricabile qui)
- copia della Carta d'identità
- copia del Codice Fiscale
- copia del Curriculum Vitae aggiornato
- foto tessera
- copia del Permesso di Soggiorno (solo per stranieri)
