Applied Functional Programming Workshop
La vendita termina a breve

Applied Functional Programming Workshop

Tecniche concrete di Functional Programming per risolvere problemi reali

Di Avanscoperta

Data e ora

gio, 16 mag 2024 09:30 - mar, 21 mag 2024 13:00 CEST

Località

Da comunicare

Politica di rimborso

Contatta l'organizzatore per richiedere un rimborso.

Informazioni sull'evento

  • 5 giorni 3 ore

Online e in diretta, 16-17-20-21 maggio 2024(4 mezze giornate), dalle 9.30 alle 13.00 (CEST - Italia) ciascun giorno, con Matteo Baglini.

Abstract

Il corso Applied Functional Programming di Matteo Baglini è strutturato per mettere in pratica la programmazione funzionale. Si rivolge a chi ha già assaggiato questo paradigma e vuole fare un salto in avanti nella sua adozione.

Anche se trattiamo argomenti astratti e matematici, tra cui le famose Monadi, il workshop mantiene un’impostazione estremamente pratica: poche il giusto livello di teoria e tantissime sessioni di coding. Lavoreremo con TypeScript.

Obiettivo del corso: capire in modo semplice e pragmatico come applicare concretamente tecniche e principi di pure functional programming sfruttando Typescript.

Target Audience

Il workshop si rivolge a software developer professionisti, sia nel Back-end che nel Front-end, con un livello di esperienza medio/alto con linguaggi mainstream tipizzati come Java/Kotlin/C#, e ovviamente TypeScript, e che siano già entrati in contatto con il mondo funzionale (e concetti come immutabilità, high-order functions, manipolazione di List tramite funzioni di map/filter/reduce/etc).

Faremo uso di concetti considerati avanzati nei suddetti linguaggi di programmazione (come i Generics), rendendo questo corso non adatto a chi sta iniziando il suo percorso nel mondo della programmazione.

Argomenti

Alcuni degli argomenti che tratteremo:

  • capire l’impatto derivante dal lavorare con la referential transparency
  • progettare grandi sistemi come somma di small composable units
  • modellare comportamenti, vincoli e dati del dominio tramite modules, functions e algebraic data types
  • ottenere una conoscenza delle principali functional structures: Functor, Applicative, Monad, Foldable e Traversable
  • costruzione di un’applicazione completa con infrastruttura, dominio e testing.

Programma

Il workshop ha l’obiettivo di fornire ai partecipanti una padronanza pratica dei principali concetti e principi alla base della pure functional programming, per sfruttare al massimo queste tecniche nel quotidiano con il proprio linguaggio di programmazione e stack tecnologico.

Insieme studieremo e utilizzeremo strutture funzionali mentre realizziamo un’applicazione completa seguendo i buoni pattern di design e separazione delle responsabilità.

Ogni sessione è supportata dal codice che verrà scritto durante il workshop lavorando in piccoli gruppi autonomi e rivisto insieme al supporto del trainer.

Agenda

Sessione 1 – Gettiamo le basi

  • Programmazione funzionale – introduzione e benefici
  • Building blocks – modules, functions e algebraic data types
  • Pattern matching e multiple dispatch

Sessione 2 – Costruiamo una applicazione da zero (parte 1)

  • Introduzione all’applicazione
  • Vediamo i differenti layer architetturali
  • Type-Driven Design del dominio – approccio bottom-up
  • Implementiamo i comportamenti del dominio
  • Micro testing – test del solo dominio

Sessione 3 – Side-effects

  • Side-effects – come introdurli in un sistema privo di essi
  • Functor e Monad – padroneggiare i combinatori chiave
  • Custom Monad – sviluppo una Monade non built-in da zero
  • Catalogo Monadi – vediamo le differenti semantiche
  • Applicative, Foldable e Traversable – vediamo altri combinatori

Sessione 4 – Costruiamo una applicazione da zero (parte 2)

  • Esponiamo il dominio tramite infrastruttura
  • Macro testing – acceptance test dell’applicazione
  • Run it – vediamola in esecuzione
  • Wrap up – note finali.

Cosa impareremo

  • Mettere in pratica i concetti di Functional Programming
  • Definire i vincoli di dominio grazie all’uso del type system
  • Scegliere se e quali Monad utilizzare per uno specifico use case
  • Un’approfondita conoscenza su diversi concetti ortogonali al linguaggio di programmazione e che potrai sfruttare immediatamente nel tuo attuale stack applicativo
  • Warning: non è un corso per imparare Typescript o un particolare framework/libreria!

Perché partecipare

Con questo workshop potrai andare a fondo sui principi alla base della programmazione funzionale e potrai vivere l’esperienza di sviluppo software in stile funzionale grazie a esercizi, esempi e discussioni in gruppo.

Matteo ti darà gli strumenti per farti valutare in maniera più oggettiva i pro e contro della programmazione funzionale: a te poi la decisione finale sul fare o meno il salto!

Come si svolge

La parola chiave di questo workshop è “pratica”: i momenti di teoria saranno pochi, ma essenziali. Diciamo 30% teoria e 70% pratica.

Costruiamo una applicazione da zero e usiamo le difficoltà che incontreremo via via come leva per introdurre e approfondire i vari mattoncini.

Il corso si svolgerà online e in diretta per un massimo di 12 persone: il docente e tutti i partecipanti saranno in video conferenza e avranno a disposizione una serie di strumenti digitali per interagire tra di loro e lavorare hands-on.

Nonostante la modalità online, il corso mantiene il suo approccio interattivo e partecipativo.

Per questo motivo, è richiesto che tutti i partecipanti abbiano la telecamera accesa per tutta la durata del workshop per una migliore fruizione e comunicazione.

Non sarà un corso passivo, fatto solo di slide e video pre-registrati.

Applicheremo alcuni principi del metodo Training from the back of the room, con prevalenza di attività su lectures.

Infine, la condivisione tra i partecipanti ed il supporto del trainer completano il quadro formativo.

Linguaggio di programmazione - TypeScript

Useremo Typescript (TS) come linguaggio di programmazione con il supporto delle librerie:

Per partecipare a questo corso è richiesta una conoscenza intermedia di TypeScript. I partecipanti devono avere familiarità con:

  • tool chain tsc, ts-node, ts-jest, npm/yarn, ecc.
  • primitive types: string, number, any, Array, ecc.
  • define custom type alias e interface
  • spread operator and destructuring
  • the many ways to define a function
  • use high-order functions (come array map or filter)
  • union, literal and tagged union types
  • type narrowing
  • generic types and functions.

Un buon punto di partenza è la lettura del libro, gratuito e disponibile online, Typescript Handbook (https://www.typescriptlang.org/docs/handbook/intro.html).

Requisiti tecnici

Il workshop prevede che le esercitazioni avvengano sul tuo portatile, quindi avrai bisogno di installare/avere sul tuo laptop:

  • Git (ed eventuali client grafici) per effettuare il clone del repository (https://github.com/doubleloop-io/applied-fp-workshop-ts) o di un suo fork.
  • NodeJs, una versione LTS sia della serie 18.x che 20.x.
  • Una versione recente di NPM oppure Yarn,
  • un IDE, come WebStorm oppure un editor come Sublime, Visual Studio Code, Vim o Emacs con i relativi plugin/language server protocol installati.

F.A.Q.

Sono previsti requisiti minimi per poter partecipare a questo corso?

È richiesta una conoscenza intermedia di TypeScript. Vedi il paragrafo Linguaggio di programmazione – TypeScript per maggiori informazioni.

Livello del workshop: è un workshop per principianti o per esperti?

L’ago della bilancia pende verso “software developer di livello medio/esperto”.

Bisogna avere un buon livello di conoscenza di TypeScript. Vedi il paragrafo Linguaggio di programmazione – TypeScript per maggiori informazioni.

Io programmo in Java/Kotlin/C#/JavaScript/PHP/ecc, come mi può essere utile questo workshop?

A oggi non crediamo esista un linguaggio che non abbia costrutti della programmazione funzionale. In passato, tra i partecipanti abbiamo ospitato programmatori Java, Kotlin, C#, PHP, JavaScript, TypeScript, Erlang, Elixir, Scala.

Partecipando a questo workshop ti porterai a casa un’approfondita conoscenza su diversi concetti ortogonali al linguaggio e che potrai sfruttare immediatamente nel tuo attuale stack applicativo.

Ricordati però che, come già detto, è necessario avere un buon livello di conoscenza di TypeScript. Vedi il paragrafo Linguaggio di programmazione – TypeScript per maggiori informazioni.

Cosa devo assolutamente avere per potermi iscrivere a questo corso online?

Se possiedi un computer e un monitor, una rete stabile (almeno 20 Mbps in download e 10 Mbps in upload), cuffie, microfono e videocamera, allora puoi iscriverti al corso senza problemi. Un paio di settimane prima del corso ti invieremo tutte le informazioni sugli strumenti che useremo e come accedervi.

Per la rete, prova a fare uno Speed Test.

Nonostante la modalità online, il corso mantiene il suo approccio interattivo e partecipativo. Per questo motivo, è richiesto che tutti i partecipanti abbiano la telecamera accesa per tutta la durata del workshop per una migliore fruizione e comunicazione.

N.B.

Invieremo una comunicazione con la conferma del corso agli iscritti 10-15 giorni prima del corso.

LAST CHANCE! Ti interessa questo corso? Acquista il biglietto entro lunedì 6 maggio 2024 per aiutarci a confermarlo quanto prima.
Se entro questa data non raggiungiamo i numeri minimi di partecipanti richiesti per attivarlo, il corso non sarà confermato e verrà posticipato… non aspettare all’ultimo per comprare il tuo biglietto!

Prima raggiungiamo i numeri minimi utili alla sua attivazione, prima saremo in grado di confermare il corso e garantirne l’esecuzione.
Se il corso sarà confermato, vedrai una spunta verde su questa pagina che dice “confermato/guaranteed to run”, e potrai comprare i biglietti anche dopo questa data.

Info pratiche sul workshop

Lingua: italiano.

Numero massimo di partecipanti: 12 persone

Strumenti e postazione: il corso si svolgerà online e in diretta, attraverso l'uso di alcuni strumenti digitali. Una volta confermato, riceverai tutti i dettagli su come accedere al corso e interagire con il docente e gli altri partecipanti, e su come prepararti al meglio.

È consigliato che ciascun partecipante segua il corso dalla sua postazione: è preferibile non condividere il laptop e la stanza con altre persone e colleghi per una migliore esperienza da remoto.

Link al sito

https://www.avanscoperta.it/it/training/applied-functional-programming-workshop/

Docente

Matteo Baglini

Sconto Under_Cover_Learner

I tuoi non ti mandano? Partecipi di nascosto?

PER TE UN 20% DI SCONTO

Se ti stai iscrivendo al corso a titolo personale, e non hai la Partita IVA, c’è una tariffa speciale per te: uno sconto del 20% sul prezzo del biglietto, che potrai ottenere inserendo il codice UNDER_COVER_LEARNER su Eventbrite nel campo "Enter promo code", nella schermata in cui puoi selezionare la quantità dei biglietti (prima di premere il bottone "Checkout").

Il codice non può essere utilizzato con nessun’altra offerta, ed è valido su tutti i tipi di biglietto.

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.

Organizzato da

669,78 €