Corso di Formazione Professionale Gratuito finalizzato al lavoro

Sviluppatore back-end Java e Python

Posti Disponibili

Disponibilità: 1 disponibili

Gratuito

Corso Finanziato

Il prezzo originale era: € 1.920.Il prezzo attuale è: € 0.

Numero di Studenti che hanno già seguito i nostri corsi

0 +

👨‍👩‍👧‍👦 Chi può iscriversi

Per poterti iscrivere a questo corso devi avere tutti i requisiti seguenti:

  • residenza e/o domicilio nella regione Lombardia
  • essere disoccupato

⚡️ Impara e lavora

I nostri corsi sono finalizzati all’inserimento lavorativo con la collaborazione di:

    • Aziende clienti,
    • APL (agenzie per il lavoro) partner,
    • HR indipendenti

🧑🏻‍🤝‍🧑🏼 4 Discenti 👩🏽‍🤝‍👨🏿

  • Classe con 4 studenti selezionati. 
  • Il docente potrà seguire tutti con la massima dedizione.

Metodologie didattiche

I nostri corsi sono 10% Teoria e 90% Pratica e utilizziamo metodologie didattiche innovative, divertenti ed efficienti

Il 92% dei nostri allievi trova lavoro

  • I nostri clienti ci chiedono risorse realmente motivate a studiare e lavorare.

🙏 La nostra missione

  • Aiutare le persone a trovare il lavoro che hanno sempre sognato, riqualificandole e inserendole nel mondo del lavoro
  • Fornire competenze per lavori stabili e gratificanti.

Domanda di ammissione al corso 

Sviluppatore back-end Java e Python

Compilando questo modulo chiedi di poter frequentare un corso di formazione professionale, finanziato, gratuito e finalizzato all’inserimento lavorativo.

Tutti gli studenti con una frequenza di almeno il 70% delle ore di lezione complessive e che avranno dimostrato capacità e buona volontà durante il corso, otterranno:

  • l’inclusione in un processo di inserimento lavorativo;
  • un attestato di partecipazione e un attestato di competenza;
  • un corso Google Workspace gratuito online asincrono in omaggio.
  1. Se la tua domanda di ammissione verrà accettata, verrai contattato prima via email e poi telefonicamente, assicurati di inserire la tua email e il tuo numero di telefono corretti.
  2. Verranno contattati via email più candidati rispetto ai posti disponibili, i primi 4 che risponderanno alla email, ri-confermando la loro iscrizione, passeranno alla fase successiva.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Modalità di erogazione

3 modalità di erogazione dei corsi

  • 100% OnLine
  • 50% OnLine e 50% in Presenza
  • 100% in Presenza a Bergamo, Brescia, Como, Cremona, Lecco, Lodi, Mantova, Milano, Monza e Brianza, Pavia, Sondrio e Varese

La modalità di erogazione del corso ti verrà comunicata durante la telefonata che riceverai se la tua domanda di ammissione verrà accettata

Durata e Frequenza

Le durate dei corsi possono essere le seguenti:

    • 20 ore
    • 40 ore
    • 80 ore
    • 120 ore
    • 160 ore

La durata di questo corso ti verrà comunicata durante la telefonata che riceverai se la tua domanda di ammissione verrà accettata

  • I giorni di frequenza sono, dal lunedì al venerdì
  • Gli orari di frequenza sono, dalle 9:00 alle 13:00 e dalle 14:00 alle 18:00

Certificazioni

Al termine della formazione regolarmente fruita, riceverai i seguenti attestati:

  • attestato di partecipazione;
  • attestato di competenza.

Descrizione del corso

Si tratta di un corso introduttivo a Java e Python, in quanto vengono ripercorse tutte le tappe dell’approccio alla programmazione, senza dare per scontata alcuna conoscenza pregressa; ciononostante, non ci si ferma alle mere basi del linguaggio, andando ad esplorare anche alcune delle parti più esoteriche, ma ormai imprescindibili nella programmazione moderna.

Destinatari del corso

E’ un corso adatto a neofiti della programmazione, così come a programmatori che provengano da altri linguaggi, e a programmatori junior, che vogliano affinare le loro tecniche ed ampliare le loro conoscenze.

Prerequisiti suggeriti dei discenti

Nessun prerequisito richiesto, tranne, ovviamente, quello di disporre di un PC in rete, indifferentemente Windows, Linux o Mac. Il materiale di consultazione, sarà fornito dal docente stesso, ed in parte reperibile rete.

Obiettivi formativi del corso

Lo scopo che ci si prefigge è quello di introdurre il discente ad una comprensione sufficientemente profonda dell’arte della programmazione in generale, ed in particolare della programmazione ad oggetti. Il discente giungerà, da un lato, a padroneggiare le basi di Java e Python, e dall’altro, forte della panoramica esplorata, saprà come muoversi ed operare, nell’affrontare le varie problematiche della programmazione, così come nel proseguire autonomamente nella sua lifelong-learning.

Conoscenze, abilità e competenze acquisite

Al termine del corso i discenti saranno in grado di:
Esaminare in modo sia qualitativo che analitico le problematiche informatiche che gli verranno sottoposte.
Comprendere la struttura essenziale delle predette problematiche, e le varie possibili soluzioni informatiche.
Applicare le conoscenze pregresse (acquisendone di nuove) alla risoluzione del problema.
Risolvere il predetto problema in modo “ottimale” (relativamente ai vincoli posti dalla committenza).
Documentare il SW prodotto, sia a scopi interni (manutenzione) che esterni (manuale utente).
Gestire il “ciclo del SW”, manutenendolo e sviluppandolo, coi metodi e procedure più “cost-effective” possibili.

Dettagli

Dotazione

Si raccomanda l'utilizzo di: una linea internet stabile, un PC affidabile con webcam e mouse, una stanza silenziosa dalla quale poter seguire le lezioni o in alternativa l'uso di cuffie con microfono

Prerequisiti

Per poter partecipare al corso è sufficiente la conoscenza basica del computer. Il percorso formativo verrà personalizzato in relazione alle conoscenze, abilità e competenze degli allievi

Suggerimenti

Qualora il corso abbia come oggetto un software, suggeriamo di dotarsene. Al bisogno, l'allievo potrà lavorare sul PC del docente, per mezzo della condivisione di: desktop, mouse e tastiera

Programma del corso

Sviluppatore back-end Java e Python

Il programma del corso sarà personalizzato, in relazione al livello di partenza ed alle abilità della classe

Moduli e Descrizioni

 

Introduzione all’informatica

Definizione di informatica; excursus storico-scientifico sull’evoluzione dell’informatica e degli strumenti di elaborazione automatica; introduzione alla struttura dell’elaboratore elettronico; Macchina di Turing; HW, SW e Sistemi Operativi; linguaggi di programmazione e relativi paradigmi.

 

Algoritmi e strutture dati

Definizione di algoritmo; informazione e dato; tipi di dati; strutture dati fondamentali; istruzioni fondamentali di un linguaggio di programmazione; teorema di Jacopini-Bohm; pseudo-codifica e flow-chart; la tecnica “top-down”; l’importanza di una corretta indentatura.

 

Introduzione a Java

Storia (sintetica) del Java; versioni e peculiarità del Java; architettura del java (JDK, JRE, JVM, ByteCode, classi e oggetti); Installazione e configurazione del JDK; installazione e configurazione dell’IDE (Ecplipse); struttura ed esecuzione di un programma Java.

 

Strutture di base del Java

Tipi di dato in Java; strutture dati principali e loro caratteristiche; differenze tra tipi primitivi e strutturati; sistema binario e complemento a 2; tipologia di variabili e costanti; Scope e Shadowing; il Casting; convenzioni sui nomi; i principali costrutti del linguaggio Java, suddivisi per tipologie; i simboli del linguaggio; i tre tipi di commenti; gli Array; le Stringhe; ulteriori classi Stringa: StringBuilder, StringBuffer e StringTokenizer; la classe Regex; primi input/output: classe Scanner e System.out.print; il vocabolario Java.

 

Introduzione a OOP e UML

Concetti filosofici ed operativi della OOP; I principi base: astrazione, incapsulamento, ereditarietà, polimorfismo; Unified Modeling Language; i principali diagrammi comportamentali: activity, use case, interaction, state machine; i principali diagrammi strutturali: structure, class, object, component, package; le principali relazioni tra classi: estensione, implementazione, dipendenza, associazione, aggregazione, composizione; i principali model element: system, subsystem, actor, Use case, package; le principali relazioni negli use case: associazione actor/use case, generalizzazione, inclusione, estensione; principali tools per la documentazione UML.

 

Le Classi in Java

Definizione di classe ed oggetto; struttura della classe e sue tipologie; approfondimento su metodi e attributi; “this” e “super”; “getters”, “setters” e costruttori; librerie, package ed import; stili di codifica e commenti.

 

Approfondimenti sulle Classi

Interfacce e classi astratte; alcuni metodi importanti da utilizzare, definire o ridefinire (toString, instanceof, getClass, equals, hashCode, clone); classi Wrapper; classe Enum; gestione di data e ora; classi System e Runtime; modificatori e modificatori d’accesso; Generics, parametri di tipo limitati e argomento Jolly.

 

Java Collection Framework

Interfaccia Collection (List, Queue, Deque, Set, SortedSet); caratteristiche salienti dei vari tipi di collection; metodi principali delle collection; le classi List (ArrayList, LinkedList, Vector, Stack); le classi Queue (PriorityQueue, ArrayDeque); le classi Set (EnumSet, HashSet, TreeSet); interfacce Map (Map, SortedMap); metodi principali delle Map; classi map principali (Hashmap, TreeMap); principali algoritmi presenti in Collection; i metodi presenti in  java.util.Arrays; gli alberi: tipologie, strutture e principali utilizzi; l’albero binario di ricerca (BST).

 

Exception ed altre classi utili

Cosa sono, a che servono e come si utilizzano le Exception in Java; vocabolario essenziale (try, catch, finally, throw, throws, try-with-resources); classe Throwable: errori ed eccezioni, checked e unchecked; le Assertion; la “progettazione per contratto” (precondizioni, postcondizioni, invarianti); Le Annotations; principali annotazioni: @deprecated, @override e @suppresswarning; alcune nozioni sul debugging.

 

Gestione input/output

Il concetto di Stream e sue tipologie; varie modalità di input/output; Reader e BufferedReader; Writer e BufferedWriter; lettura da tastiera e classe Scanner; gestione dei file; metodi file principali; serializzazione e deserializzazione di oggetti; il package java.nio; le classi Path e File; file ad accesso casuale; Introduzione al linguaggio SQL e sue API in Java.

 

Gestione processi (Thread/Runnable)

Threading e MultiThreading (programmi, processi e thread); la classe Thread e l’interfaccia Runnable; gli stati di un thread; principali metodi dei thread (sleep, yield, join, activeCount, enumerate, getState); il concetto di sincronizzazione e sua implementazione; il controllo dei thread e la “ThreadSafety”.

 

Ambiente GUI in Java

I package “java.awt” e “javax.swing”: panoramica e differenze; Component (Label, List, Table, ComboBox, Slider, Menu, Button) e Container (Window Panel, Applet, Frame, Dialog); la struttura dei Layout (Border, Flow, Grid); Choice e List; il TextComponent; principali classi Event (ActionEvent, MouseEvent, MouseWeelEvent, KeyEvent, ItemEvent, TextEvent, AdjustmentEvent, WindowEvent, ComponentEvent, ContainerEvent, FocusEvent); principali interfacce Listener (analoghe alle precedenti, con solo il suffisso “Listener” in sostituzione di “Event”); introduzione all’utilizzo di WindowBuilderPro (plugin di Eclipse).

 

Gestione del SW

La specificità della produzione e sviluppo del SW; tecniche di versioning; il ciclo di vita del SW; il Modello a Cascata, o Waterfall; il Modello a Spirale; il Modello Agile; il concetto di “Design Patterns”; accenni ad Application Server (Apache Tomcat); accenni al Build Automation (Apache Maven); OOP, OOD, OOA e loro relazioni; modello dei dati, modello comportamentale e modello dinamico.

 

Introduzione a Python

Storia (sintetica) di Python; versioni e peculiarità del Python; architettura del Python (ByteCode, Idle); Installazione e configurazione del Python; installazione e configurazione dell’IDE (PyCharm); struttura ed esecuzione di un programma Python.

 

Strutture di base del Python

Tipi di dato in Python; strutture dati principali e loro caratteristiche; tipologia di variabili e costanti; Scope e Shadowing; il Casting; convenzioni sui nomi; i principali costrutti del linguaggio Python: condizionali, iterativi; i simboli del linguaggio; i due tipi di commenti; le Stringhe; primi input/output: input e print; le funzioni; il vocabolario di Python.

 

Strutture dati del Python

range; list (slicing, add, del, enumerate); tuple; namedtuple; set; frozenset; dict; defaultdict; file testo/dati; lettura/scrittura/ricerca in in file; json.

 

Classi, moduliti e package in Python

Definizione di modulo e package, classe ed oggetto; spazio dei nomi; istruzioni “nonlocal” e “global”; struttura della classe e sue peculiarità; peculiarità degli oggetti; approfondimento su metodi e attributi; alcuni metodi importanti: hasattr, isinstance, issubclass, super; ereditarietà multipla; attributi “privati” e “name mangling”;

Moduli utili: random, math, copy.

 

Errori ed eccezioni

Try/except(valueError as name)/finally; raise exception(description); function “type()”; attributo “args”; classi utente estendenti Exception; instruzione “with”; istruzione “assert”.

 

Approfondimenti su funzioni e strutture dati

*args e **kwargs; argomenti di default e nominativi; stringhe di documentazione; list comprehension; nested functions; returned function (closures); decorators; lambda functions; modulo functools; generators/iterators.

 

Approfondimenti sulle classi

@staticmethod; @classmethod; property/setters/deleters; metodi di iterazione; metodi speciali(init, del, repr, str, add, sub, mul, div, mod, eq, gt, ge, lt, le, call, getitem, setitem, delitem, contains, dir); enum & flag.

 

Ulteriori moduli utili

Pickle (serialization), re (regex), time, timeit, datetime, sys, os, matplotlib (grafica), numpy (array evoluti).

 

Interlavoro coi database in Python

Introduzione ai DB (SQL, NoSQL); Modulo sqlite3.

 

Ambiente GUI in Python

Modulo tkinter.