Applied Functional Programming Workshop

ARTE CULTURA & SOCIETA'

Applied Functional Programming Workshop

Da Martedì 20 Novembre alle 09:30 a Giovedì 22 Novembre alle 17:30

Istituto Pirelli
Viale Fulvio Testi, 223, 20162 Milano (MI)

Applied Functional Programming Workshop

Da Martedì 20 Novembre alle 09:30 a Giovedì 22 Novembre alle 17:30 2018-11-22T17:30:00.0000000Z https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F52726964%2F224488706463%2F1%2Foriginal.jpg?h=200&w=450&auto=compress&rect=0%2C27%2C1200%2C600&s=8678b74bdc9aed99dd67433e88d30a59
Avanscoperta

Milano, 20 - 21 - 22 novembre 2018, con Matteo Baglini
Abstract del corso
Il corso Applied Functional Programming è strutturato per mettere in pratica la programmazione funzionale. Si rivolge a chi ha già assaporato questo paradigma e vuole fare un salto in avanti nella sua adozione.
Attraverso molteplici sessioni di coding impareremo ad utilizzare le teorie matematiche per costruire le giuste astrazioni, tra cui le famose Monadi.
Obiettivi del corso: applicare a partire dal “giorno dopo” il pure functional programming, e immagazzinare abbastanza teoria da poter continuare il percorso di studio senza ostacoli. 
Argomenti
Gli ingredienti per raggiungere il nostro scopo sono:

capire l’impatto derivante dal lavorare con la referential transparency
progettare grandi sistemi come small composable units
esprimere vincoli e interazioni tramite il type system
modellare comportamenti e dati del dominio tramite modules, functions e algebraic data types
modularizzare le responsabilità tramite type classes
ottenere una conoscenza approfondita delle principali functional structures: Functor, Applicative, Monad, Foldable e Traversable
scegliere la giusta Monad per il problema corrente
come sopravvivere in un mondo colmo di side-effects.

Agenda
1° giorno – Gettiamo le basi:

scala refresh: case classes, object, trait and implicit parameter
modellare i dati tramite algebraic data types (ADT)
usare gli effetti base: Option, Try, Either e Future
padroneggiare i combinatori chiave: map, flatMap e fold
astrarre l’effetto e type class pattern

2° giorno – Costruiamo una applicazione da zero (parte 1):

architettura esagonale
modellare dati e comportamento del dominio
usare le firme delle funzioni per guidare il design
una monade per ogni occasione

3° giorno – Costruiamo una applicazione da zero (parte 2):

introduciamo l’infrastruttura: persistenza, configurazione, logging
gestire le diverse monadi (Monad stack)
test dei vari livelli applicativi

Perché partecipare
Con questo workshop potrai andare a fondo sui principi base e potrai vivere in maniera diretta l’esperienza di sviluppo software della programmazione funzionale.Matteo ti darà gli strumenti per farti valutare in maniera più oggettiva i pro e contro di questo stile di programmazione: a te poi la decisione finale sul fare o meno il salto! 
Expect to get your hands dirty
La parola chiave di questo workshop è “pratica”: i momenti di teoria saranno pochi, ma essenziali.Diciamo 30% teoria e 70% pratica.
Metaforicamente parlando, non verrà utilizzato un approccio “a catalogo” dove prima dobbiamo imparare tutti i mattoncini e solo alla fine possiamo provare a costruire la casa.Piuttosto partiamo dal costruire la casa e usiamo le difficoltà come leva per introdurre e approfondire i vari mattoncini.
Tecnologia
Useremo Scala come linguaggio di programmazione.
Scala non è un linguaggio che nasce con l’obiettivo di essere pure functional ma la versatilità del suo type-system e il fatto che gira su JVM hanno fatto sì che una vasta community di sviluppatori spingesse il linguaggio in questa direzione.
Inoltre, la natura ibrida di Scala ci permetterà l’introduzione graduale dei concetti.
Per partecipare a questo corso è richiesta, quindi, una conoscenza base di Scala.Verrà data per scontata la conoscenza di:

l’uso di classi, oggetti e traits
l’uso di metodi, funzioni, valori e variabili
l’uso delle collezioni come: Seq, List, Map, ecc.
l’uso di companion object, implicit parameters e uniform access principle.

Se non conosci Scala, il miglior modo per prepararti è:

studiare il Tour delle features https://docs.scala-lang.org/tour/tour-of-scala.html
fare un po’ di pratica risolvendo i seguenti esercizi: https://www.scala-exercises.org/std_lib

L’idea non è di diventare esperti ma guadagnare abbastanza confidenza per seguire il workshop senza bloccarsi sulla sinstassi del linguaggio.
Target audience
Sviluppatori e sviluppatrici professionisti con un livello di esperienza medio/alto con linguaggi main stream come Java/C#/JavaScript/PHP già entrati in contatto con il mondo funzionale (per esempio con high-order functions, Option/Stream type, list comprehension combinators).
Durante il workshop faremo largo uso di concetti considerati advanced nei tipici linguaggi di programmazione (per esempio generics e subtype polymorphism) rendendolo non adatto a programmatori alle prime esperienze.
F.A.Q.
Laptop e Strumenti: Devo portare il mio laptop?Sì, è necessario che porti il tuo computer per questo workshop.
Prerequisiti: Quali sono i requisiti minimi per partecipare a questo corso? Cosa devo installare prima del corso?Devi avere conoscenza base di Scala. Nel paragrafo Tecnologia sono presenti varie informazioni per colmare questo gap.
Il workshop prevede che le esercitazioni avvengano sul tuo portatile, quindi avrai bisogno di avere un laptop con installato:

Java JDK versione 8/9
Scala, una versione della serie 2.12.x (https://www.scala-lang.org/download/)
SBT,  una versione della serie 1.x (https://www.scala-sbt.org/download.html)
un IDE, IntelliJ (anche community edition) oppure un editor come Sublime, Visual Studio Code, Vim o Emacs.

Livello del workshop: È un workshop per principianti o per esperti?L’ago della bilancia pende verso programmatori e programmatrici di livello medio/esperto.Bisogna avere un buon livello di conoscenza del linguaggio e di concetti dell’OOP come per esempio polimorfismo, interfacce ed ereditarietà ed un livello introduttivo di Scala.
Io programmo in Java/Kotlin/C#/JavaScript/PHP/ecc, come mi puòò essere utile questo workshop?Ad oggi non crediamo esista un linguaggio che non abbia costrutti della programmazione funzionale.Basta avere first-class functions oppure costrutti come Future/Promise per essere già mani e piedi dentro al paradigma funzionale.Partecipando a questo workshop ti porterai a casa un’approfondita conoscenza su molteplici concetti ortogonali al linguaggio e che potrai sfruttare immediatamente nel tuo attuale stack applicativo.Ricordati però che è necessario avere una conoscenza base di Scala per poter partecipare (Vedi il paragrafo Tecnologia).
Info
Lingua: il corso si terrà in italiano.Orari: dalle 9.30 alle 17.30 in tutte le 3 giornate.Laptop: il workshop prevede esercitazioni pratiche sul tuo portatile. Consulta la sezione "Cosa devo fare prima del workshop".Dress code: informaleCompreso nel prezzo: nel prezzo del biglietto sono compresi i coffee break e i pranzi insieme al docente e agli altri corsisti. Perché anche il networking è importante! :)
Come raggiungere la venue del corso
Il corso si terrà presso l'Istituto Piero Pirelli, in viale Fulvio Testi 223 a Milano.Trovi tutte le informazioni su come raggiungere l'Istituto e dove alloggiare alla pagina Venue Istituto Pirelli.
N.B.
Good news - Il corso è confermato! Ci vediamo a Milano? :-)
Dubbi, domande? Scriveteci: info@avanscoperta.it
Link al sito
https://www.avanscoperta.it/it/training/applied-functional-programming-workshop/
Docente
Matteo Baglini

Dove
Milano, Istituto Pirelli.
Quando
Il 20 - 21 - 22 novembre 2018, dalle 9.30 alle 17.30.


Sconto Under_Cover_Learner
I tuoi non ti mandano? Partecipi di nascosto?
L'IVA TE LA FACCIAMO RISPARMIARE
Se ti stai iscrivendo al corso a titolo personale, e non hai la Partita IVA, puoi usufruire di uno sconto del 20% sul prezzo corrente del biglietto. Usa il codice sconto Under_Cover_Learner.
Per maggiori informazioni scrivi a info@avanscoperta.it


Metodi di pagamento supportati
PayPal, Carta di Credito (via PayPal, al link: "Don't have a PayPal account?"), Bonifico Bancario su richiesta (info@avanscoperta.it)
Policy rimborsi
Consulta le nostre policy a questo link.




  • Istituto Pirelli

  • Viale Fulvio Testi, 223 20162 Milano (MI)

  • Latitudine 45.51936
    Longitudine 9.207538

Istituto Pirelli

Viale Fulvio Testi, 223, 20162 ,Milano (MI)