business Avvio alla professione di Java Architect

Technological inventions for your business
Avvio alla professione di
Java Architect
Corso interno di formazione e
Training on the Job
Tinvention – Ingegneria Informatica –
http://tinvention.net/
Sommario
1
2
3
4
5
L’azienda ..........................................................................................................................................3
Obiettivi ............................................................................................................................................3
Requisiti minimi ...............................................................................................................................3
Organizzazione .................................................................................................................................3
Argomenti del corso teorico .............................................................................................................4
5.1 Linguaggio Java Standard ............................................................................................................4
5.1.1
Introduzione a Java .............................................................................................................4
5.1.2
OO in Java ..........................................................................................................................4
5.1.3
Librerie di Utilità: java.util .................................................................................................5
5.1.4
Costrutti avanzati di Java e libreria I/O ..............................................................................5
5.1.5
Multithreading ....................................................................................................................5
5.1.6
Java Data Base Connectivity ..............................................................................................6
5.1.7
Using XML in Java ...........................................................................................................6
5.1.8
Networking .........................................................................................................................6
5.1.9
Testing in Java ....................................................................................................................7
5.2 J2EE .............................................................................................................................................7
5.3 Open Frameworks ........................................................................................................................8
5.4 Le basi Dati ..................................................................................................................................8
5.5 Metodologie e strumenti per la gestione di progetto ...................................................................8
5.6 Altri argomenti trattati .................................................................................................................9
6
Come candidarsi ...............................................................................................................................9
- Ingegneria Informatica -
Corso interno di formazione
pag. 2/9
1
L’azienda
Tinvention è un piccolo e agile studio di ingegneria, fondato da due ingegneri forgiati prima dal
Politecnico di Milano e poi da Cefriel (centro di eccellenza della ricerca applicata del Politecnico di
Milano).
La nostra filosofia è quella di applicare le competenze ingegneristiche al mondo dell ICT restando
indipendenti da produttori specifici: liberi di consigliare “il meglio” ai nostri clienti.
2
Obiettivi
Scopo del corso è avviare i partecipanti alla professione del progettista e sviluppatore software, con
particolare riferimento al linguaggio Java.
In particolare gli obiettivi di dettaglio del percorso formativo sono:
• Formare i partecipanti sia dal punto di vista teorico che pratico.
• Insegnare ai partecipanti i fondamenti del linguaggio Java, nelle sue versioni standard ed
enterprise.
• Rendere indipendenti i partecipanti nell’attività lavorativa: oltre ad insegnare un insieme di
tecnologie specifiche, il corso tratterà temi ad esse correlati, fondamentali per l’attività pratica
di sviluppo, quali strumenti di lavoro e metodologie per la gestione di progetto.
• Trasmettere un insieme di soft-skill relative, ad esempio, alla gestione della relazione
cliente/fornitore, al reperimento delle informazioni sulle tecnologie utilizzate, l’effettuazione
delle scelte progettuali, ecc.
• Trasmettere la “filosofia aziendale” di Tinvention e creare un gruppo omogeneo dal punto di
vista dei valori di fondo, del modo di lavorare e comunicare .
3
Requisiti minimi
• Laurea breve in discipline dell’ICT o ad indirizzo matematico-fisico.
• Buona conoscenza lettura testi tecnici del settore in Inglese.
• Conoscenza di base di almeno un linguaggio di programmazione.
4
Organizzazione
Il programma formativo proposto prevede tre momenti nei quali il partecipante verrà progressivamente
introdotto all’attività lavorativa. Nelle fasi iniziali si avrà una prevalenza dei contenuti teorici; con
l’avanzare del corso saranno progressivamente introdotti dei momenti dedicati alle problematiche
- Ingegneria Informatica -
Corso interno di formazione
pag. 3/9
tipiche dell’attività lavorativa, per arrivare al completo inserimento nei progetti di Tinvention.
In particolare il percorso formativo prevede tre fasi principali:
• Corso teorico/pratico
• Training on the job
• Inserimento sui progetti
Fasi del programma formativo
Corso
teorico
Inizio Attività
Training
on the job
(stage)
Inserimento sui progetti
(contratto a progetto)
Rinnovi
successivi
5 Argomenti del corso teorico
In seguito è presentata la lista indicativa degli argomenti che potrebbero essere trattati nel periodo di
formazione. Sarà stabilito un calendario personalizzato delle lezioni con gli argomenti reputati adatti al
candidato.
5.1 Linguaggio Java Standard
5.1.1
Introduzione a Java
Panoramica sul linguaggio Java: introduzione e caratteristiche di Java: motivazioni che hanno
portato alla definizione del linguaggio e caratteristiche principali.
Costrutti di base: introduzione sui tipi primitivi, visibilità delle variabili, operatori e controlli
di flusso
Introduzione al jdk e alle relative APIs
• Descrizione delle librerie e degli strumenti di base disponibili nel jdk: javac, java,
javadoc.
• Organizzazione dell'ambiente di lavoro
5.1.2
OO in Java
Introduzione alla programmazione oggetti in Java
• Il concetto di oggetto: costruttori, metodi e attributi
• Composizione, Ereditarietà, Polimorfismo e Interfacce
- Ingegneria Informatica -
Corso interno di formazione
pag. 4/9
5.1.3
Librerie di Utilità: java.util
• I tipi di contenitori: Array, Collection, Set, Iterators, ...
• Utilizzo di Comparators e Comparble
• Uso delle classi: Arrays e Collections
5.1.4
Costrutti avanzati di Java e libreria I/O
Strutturazione di una applicazione java in package
• Riutilizzo del codice
• Utilizzare le classi di un package e definizione di un package
• Panoramica sui packages contenuti nel JDK
• Specificatori di accesso
Il meccanismo delle Eccezioni
• Comportamento: Ignorarle o gestirle
• Panoramica sulla gerarchia di Eccezioni fornita nel JDK
• L'importanza della clausola finally
• Come perdere i vantaggi della gestione delle eccezioni programmando male.
Input/Output e serializzazione
• Caratteristiche del package: le famiglia di Streams e di Reader/Writer
• Uso del meccanismo di wrapping
• Esempi di catene di Wrappers per IO da file
• Utilities e Serializzazione
5.1.5
Multithreading
Programmazione multithreding
• Definizione e proprieta' un thread
• Gestione delle priorita'
• I monitor sulle classi statiche e non
• Problematiche di sincronizzazione
• Linee guida per la Thread Safety
• Problemi connessi: starvation e deadlock
- Ingegneria Informatica -
Corso interno di formazione
pag. 5/9
5.1.6
Java Data Base Connectivity
Middleware per database
• JDBC vs. ODBC
• JDBC: Concetti fondamentali
• Connessione, Statement e ResultSet
• Le eccezioni previste dal package
• Operazioni su un database: Query, Update
• I Prepared Statement e i Callable Statement
• Gestire le transazioni
JDBC: Concetti avanzati
• I metadati
• Il Data Source e il Connection Pooling
• Data Access Object (DAO pattern)
5.1.7
Using XML in Java
Parsing XML in JAVA
• Parsers & Vendors
API for XML (JAXP)
• SAX,
• DOM
• JDOM
XSLT Processors in JAVA
• TrAX
5.1.8
Networking
Concetti base
• Internetworking
• Commutazione di circuito vs Commutazione di pacchetto
• Indirizzamento e routing
• Protocolli e stack protocollari
Java e il package java.net.*
- Ingegneria Informatica -
Corso interno di formazione
pag. 6/9
• Le classi del package java.net.*
• Indirizzi IP in Java
Connessioni TCP in Java
• Client e Server Single Thread
• Client e Server Multi Thread
Datagrammi UDP in Java
• Client e Server UDP
• Multicast
URL e connessioni HTTP in Java
5.1.9
Testing in Java
Il modulo porta l'allievo ad avere una panoramica sul concetto di Testing, in particolare:
• Concetti sulla metodologia di sviluppo (TDD, ...)
• I test: di unità, per componenti, funzionali, performaces
I tools: Junit, Jmock, HttpUnit, Jmeter, Selenium, ...
5.2 J2EE
Lo standard delle WebApp
Il modulo tratta a diversi livelli di dettaglio tutto lo standard delle weapp (Servlet 2.4 – 2.5).
Mostrando come realizzare facilmente applicativi WebBased.
Template Egines: JSP
Il modulo tratta a diversi livelli di dettaglio lo standard delle JSP (2.0) e l' espression language.
Mostrando come realizzare applicativi WebBased, mantenendo separata la logica di business
dalla logica di presentazione.
Le tag libraries Standard: JSTL
Il modulo tratta a diversi livelli di dettaglio lo standard delle JSTL (1.1). Mostrando come
velocizzare lo sviluppo di applicativi WebBased.
EJB 3.0
Cenni alla tecnologia EJB in particolare a JPA.
- Ingegneria Informatica -
Corso interno di formazione
pag. 7/9
5.3 Open Frameworks
ORM frameworks
Il modulo fornisce un’introduzione ai framework Open Source: Hibernate e iBatis.
Springframework
Il modulo fornisce un introduzione al framework Spring nella versione 2.5.x.
Web Frameworks
Il modulo fornisce un introduzione dei framework Open Source: Apache Jakarta Struts 1.2.x,
WebWork e Apache Jakarta Struts 2.0 .
Librerie di utilità
Il modulo fornisce un introduzione all'uso di alcune librerie molto diffuse tra le quali: Java
Mail, Log4J, Apache Commons DBCP , Apache Commons HttpClient, Apache Commons
Chain.
5.4 Le basi Dati
Il modulo fornisce i concetti fondamentali, e comuni, su cui si basano i moderni database insieme ad
alcuni esempio pratici.
• Introduzione ai DBMS
• Il modello relazionale
• SQL standard (DDL, DML, DCL)
• Le Transazioni
Il modulo prevede anche un introduzione alle particolarità dei più diffusi DBMS, quali ad esempio:
Oracle 10g, Mysql, PosgtreSQL e Microsoft SQL Server.
5.5 Metodologie e strumenti per la gestione di progetto
Il modulo pone l'accento sull'organizzazione interna del progetto e sui tool di sviluppo che ne
automatizzano i vari passaggi (deploy, test, packaging, versioning).
• Apache Ant e cenni a Maven
• Concetti base di Configuration Management uso e istallazione di base di Subversion.
• Eclipse: l’IDE di riferimento
- Ingegneria Informatica -
Corso interno di formazione
pag. 8/9
• Introduzione alla continuous integration
• Project management: introduzione e strumenti fondamentali
5.6 Altri argomenti trattati
Il corso affronterà anche un insieme di temi correlati alle attività di progettazione e sviluppo software
• Linux base: introduzione al sistema operativo Linux.
• Rete base: introduzione alle tecnologie e protocolli di rete
• Gestione dei requisiti
• Introduzione all’ingegneria del software
6
Come candidarsi
Le selezioni sono già cominciate, per candidarsi inviare il vostro Curriculum Vitae in allegato ad una
email di presentazione a [email protected] .
- Ingegneria Informatica -
Corso interno di formazione
pag. 9/9