Python 3.11 Guida Completa: da Principiante a Esperto
What you'll learn
- Comprendere in modo approfondito il paradigma object-oriented (la prima sezione del corso riguarda proprio l'esposizione del paradigma object-oriented)
- Comprendere l'architettura e la sintassi del linguaggio di programmazione Python 3.10.
- Sviluppare applicazioni Python in modalità procedurale (funzioni, moduli, package)
- Sviluppare applicazioni Python in modalità object-oriented (classi, ereditarietà, override)
- Comprendere ed utilizzare gli "atomi" di Python: gli oggetti, i nomi, i tipi e gli attributi
- Conoscere ed utilizzare i basic data types: interi, floating-point, boolean e string
- Conoscere ed utilizzare le strutture dati: liste, tuple, dizionari e set
- Conoscere ed utilizzare gli operatori e le espressioni
- Conoscere ed utilizzare il control flow: if, while, for...in
- Comprendere ed utilizzare le list comprehension, le dict comprehension e le set comprehension
- Comprendere, utilizzare e definire le funzioni, e le espressioni lambda
- Comprendere i namespace e lo scope
- Comprendere ed utilizzare i function decorator ed i class decorator
- Comprendere e definire gli attributi di classe e di istanza, i class methods e gli static methods
- Progettare ed Implementare una Applicazione Distribuita con un Message Broker: RabbitMQ
- Comprendere anche gli argomenti avanzati del linguaggio.
- Comprendere le Type Annotations, e le Data Classes di Python 3.7
- Comprendere le Assignment Expressions e i Positional-Only Arguments di Python 3.8
- Comprendere gli Union Operator ed i metodi removeprefix()/removesuffix() di Python 3.9
- Comprendere il Pattern Matching di Python 3.10
- Comprendere ed utilizzare l'accesso da codice ai file di testo ed ai file binari
Requirements
- Il corso prevede la conoscenza di base del terminale di un sistema operativo (Mac, Windows, o Linux).
- La conoscenza almeno a livello principiante in un qualunque linguaggio di programmazione non è obbligatoria, ma consigliata.
Description
*** AGGIORNATO ALLA VERSIONE 3.11 ***
Questo corso, che non è un semplice tutorial ma una vera guida completa, teorica e pratica, ti condurrà passo dopo passo a conoscere in profondità il linguaggio di programmazione Python - aggiornato alla VERSIONE 3.11 di Ottobre 2022 - ed il Paradigma Object-Oriented.
NOTA: Il corso si evolve nel tempo aggiornandosi ogni anno alle versioni successive del linguaggio. Può quindi essere seguito senza problemi in modo sequenziale, dall'inizio alla fine.
La prima sezione del corso è una sorta di corso nel corso... Imparerai infatti in modo approfondito il Paradigma Object-Oriented in tutti i suoi aspetti principali, secondo un percorso che ho ricavato dai miei (ahimè) moltissimi anni di esperienza sul campo come object-oriented analyst e designer. Le capacità che acquisirai nelle lezioni teoriche di questa prima sezione sono valide anche per qualunque altro linguaggio object-oriented, come Java, C#, Swift, C++.
Attraverso un percorso guidato, imparerai poi tutti i differenti livelli di organizzazione del codice Python, partendo dagli atomi del linguaggio (gli oggetti, i nomi, i tipi e gli attributi), per poi proseguire con i basic data types (i numeri, le stringhe ed i boolean), poi con le strutture dati (le liste, le tuple, i dizionari ed i set), poi con le strutture di codice (il control flow, le funzioni, le list comprehension, le espressioni lambda ed i decorator), poi con le strutture object-oriented (le classi, l'ereditarietà, l'override, i costruttori, le proprietà, gli attributi di istanza e di classe, i metodi statici, la gestione delle eccezioni), ed infine con le strutture dei programmi stessi (moduli e package).
Il corso è corredato di esercitazioni pratiche e di quiz, per verificare passo dopo passo il tuo apprendimento.
E' presente una sezione contenente argomenti avanzati del linguaggio, che viene incrementata con sempre nuove lezioni. Tra gli argomenti avanzati troviamo la multiple inheritance, l'MRO, le classi object e type, il costruttore __new__, gli oggetti iterabili e gli iteratori, ed anche i generatori (generator functions e generator expressions).
E' presente una sezione interamente dedicata alla gestione dei file in Python, nella quale vengono spiegati i metodi per leggere, scrivere, accodare, e posizionarsi nei file di testo e nei file binari, con una serie di esercizi pratici.
E' presente anche una esercitazione completa, nella quale impareremo assieme come scrivere una applicazione Python che utilizza RabbitMQ, un message broker che consente di implementare software distribuito e massivamente scalabile.
E' presente anche una esercitazione completa nella quale impareremo assieme cos'è e come si utilizza in Python MongoDB, uno dei più importanti database NOSQL disponibili sul mercato.
Who this course is for:
- Un programmatore principiante che desidera migliorare la propria competenza generale nello sviluppo di applicazioni.
- Un programmatore con una conoscenza introduttiva di Python, che desidera apprendere in modo più approfondito questo linguaggio di programmazione.
- Un programmatore che sviluppa già applicazioni in altri linguaggi di programmazione, che desidera aggiungere Python al proprio curriculum, acquisendone una conoscenza approfondita.
- Chiunque abbia desiderio di imparare a conoscere il paradigma object-oriented, che potrà poi utilizzare anche in altri linguaggi di programmazione
Instructor
Mi chiamo Alessandro Bemporad. Sono un software engineer con oltre 30 anni di esperienza nel settore dell'Information Technology. Ho lavorato per molti anni come developer, come business analyst, poi come software architect, e infine come Technical Manager in grandi aziende di IT.
Nel 2019 ho fondato e lavoro in Artebinaria, un'azienda che realizza soluzioni di augmented reality su piattaforme Apple, e di cloud computing.
Negli anni, mi sono occupato di progettazione e sviluppo di sistemi software di grandi dimensioni, nei settori Banking, Healthcare e Industria, ed ho gestito moltissimi team di sviluppo. Ho progettato e sviluppato sistemi software in molti linguaggi di programmazione ed ambienti di sviluppo, come Java, Python, C/C++, C#, Ruby e Go. Ho tenuto per anni corsi di Object-Oriented Analysis & Design e di Advanced Java presso grandi aziende, e presso Oracle University.
Ho anche utilizzato per molti anni modelli di gestione dei progetti agili, come Scrum e Kanban.
E' un mio desiderio poter trasmettere la mia esperienza attraverso corsi di sviluppo del software, dedicati a chi si avvicina adesso a questo mondo, oppure a chi vuole approfondire gli aspetti di quello che è già il proprio lavoro.