Slide 1

Slide 1 text

Introduzione alla programmazione, con JavaScript Linux Day Torino 2016 - Luigi Maselli 1 / 63

Slide 2

Slide 2 text

1. Perché saper programmare è importante 2. Cosa significa essere uno sviluppatore 3. Perché il linguaggio di programmazione JavaScript Da dove iniziare e un Esempio pratico 2 / 63

Slide 3

Slide 3 text

bio / contatti Luigi Maselli software developer 10+y / founder corso-javascript.it 3 / 63

Slide 4

Slide 4 text

bio / contatti Luigi Maselli software developer 10+y / founder corso-javascript.it web: https://grigio.org github: grigio twitter: @grigi0 4 / 63

Slide 5

Slide 5 text

Perché saper programmare è importante? 5 / 63

Slide 6

Slide 6 text

La programmazione è un insieme di: logica, architettura, creatività e management 6 / 63

Slide 7

Slide 7 text

Se qualcosa può essere automatizzato ci sarà qualche programmatore / imprenditore che lo realizzerà 7 / 63

Slide 8

Slide 8 text

Il lavoro ripetitivo è pagato sempre meno e/o fatto da macchine 8 / 63

Slide 9

Slide 9 text

Barriere d'ingresso basse, basta un qualsiasi computer 9 / 63

Slide 10

Slide 10 text

Recap: Perché saper programmare è importante? 10 / 63

Slide 11

Slide 11 text

Recap: Perché saper programmare è importante? Automatizzare ci fa risparmiare tempo, può essere creativo, ed meglio automatizzare che "essere automatizzato" 11 / 63

Slide 12

Slide 12 text

Cosa significa essere uno sviluppatore? 12 / 63

Slide 13

Slide 13 text

Conoscere: 1+ linguaggio, 1+ piattaforma, 1+ settore -> problem solved :) 13 / 63

Slide 14

Slide 14 text

Linguaggio javascript + ecosistema java ruby python php ... Piattaforma client: web, ios, android server: protocollo HTTP, database,.. gaming: 2D, 3D,.. machine learning bitcoin / cryptovalute hardware ... Settore (un minimo) medicina economia UX/UI user experience statistica finanza / trading fisica ... Conoscere: 1+ linguaggio, 1+ piattaforma, 1+ settore -> problem solved :) 14 / 63

Slide 15

Slide 15 text

Conoscere: il contesto (cliente e il progetto) 15 / 63

Slide 16

Slide 16 text

Saas Wix ... CMS Wordpress Magento (ecommerce) ... Custom Qualcosa che non esiste ... Conoscere: il contesto (cliente e il progetto) 16 / 63

Slide 17

Slide 17 text

Falsi miti 17 / 63

Slide 18

Slide 18 text

Dagli stessi creatori di.. 18 / 63

Slide 19

Slide 19 text

Web 2.0 19 / 63

Slide 20

Slide 20 text

Web 2.0 OpenData 20 / 63

Slide 21

Slide 21 text

Web 2.0 OpenData SmartCity 21 / 63

Slide 22

Slide 22 text

Web 2.0 OpenData SmartCity Cloud 22 / 63

Slide 23

Slide 23 text

Web 2.0 OpenData SmartCity Cloud Industria 4.0 23 / 63

Slide 24

Slide 24 text

il "Coding" 24 / 63

Slide 25

Slide 25 text

Informazione mainstream, crea bolle inesistenti 25 / 63

Slide 26

Slide 26 text

Saper "scrivere codice" ha che fare con la programmazione quanto "saper tagliare la carne" ha che fare con la chirurgia 26 / 63

Slide 27

Slide 27 text

Il fatto che un software "funzioni" non significa, che va tutto bene 27 / 63

Slide 28

Slide 28 text

28 / 63

Slide 29

Slide 29 text

29 / 63

Slide 30

Slide 30 text

Mantenimento: non tutte le "piccole modifiche" sono sempre possibili senza ripartire 30 / 63

Slide 31

Slide 31 text

31 / 63

Slide 32

Slide 32 text

Frustrazione 32 / 63

Slide 33

Slide 33 text

Cose belle 33 / 63

Slide 34

Slide 34 text

Cose belle Puoi lavorare per chiunque, ovunque (remote working) 34 / 63

Slide 35

Slide 35 text

Cose belle Puoi lavorare per chiunque, ovunque (remote working) La sintassi dei linguaggi è abbastanza simile 35 / 63

Slide 36

Slide 36 text

Cose belle Puoi lavorare per chiunque, ovunque (remote working) La sintassi dei linguaggi è abbastanza simile Puoi integrare sw open source (e non partire da zero) 36 / 63

Slide 37

Slide 37 text

Cose belle Puoi lavorare per chiunque, ovunque (remote working) La sintassi dei linguaggi è abbastanza simile Puoi integrare sw open source (e non partire da zero) Nessuna barriera d'ingresso. community, doc, forum online 37 / 63

Slide 38

Slide 38 text

Cose belle Puoi lavorare per chiunque, ovunque (remote working) La sintassi dei linguaggi è abbastanza simile Puoi integrare sw open source (e non partire da zero) Nessuna barriera d'ingresso. community, doc, forum online È più facile fare Flappy Bird che vincere alla lotteria 38 / 63

Slide 39

Slide 39 text

Recap: Cosa significa programmare? 39 / 63

Slide 40

Slide 40 text

Recap: Cosa significa programmare? Problem solving e sperimentazione (non si finisce mai di imparare) 40 / 63

Slide 41

Slide 41 text

Recap: Cosa significa programmare? Problem solving e sperimentazione (non si finisce mai di imparare) Avere una visione micro/macro del contesto 41 / 63

Slide 42

Slide 42 text

Recap: Cosa significa programmare? Problem solving e sperimentazione (non si finisce mai di imparare) Avere una visione micro/macro del contesto Innovazione !== "cose nuove", bisogna conviverci 42 / 63

Slide 43

Slide 43 text

Recap: Cosa significa programmare? Problem solving e sperimentazione (non si finisce mai di imparare) Avere una visione micro/macro del contesto Innovazione !== "cose nuove", bisogna conviverci Il "codice" è un mezzo, non il fine! 43 / 63

Slide 44

Slide 44 text

Perché JavaScript? 44 / 63

Slide 45

Slide 45 text

Esiste da 20+ anni, non dipende da una singola azienda, documentato 45 / 63

Slide 46

Slide 46 text

Esiste da 20+ anni, non dipende da una singola azienda, documentato È su qualsiasi piattaforma: web, server, iot, 3D, 2D, Android, iOS.. 46 / 63

Slide 47

Slide 47 text

Esiste da 20+ anni, non dipende da una singola azienda, documentato È su qualsiasi piattaforma: web, server, iot, 3D, 2D, Android, iOS.. È veloce 47 / 63

Slide 48

Slide 48 text

Esiste da 20+ anni, non dipende da una singola azienda, documentato È su qualsiasi piattaforma: web, server, iot, 3D, 2D, Android, iOS.. È veloce È multiparadigma (funzionale, oggetti) 48 / 63

Slide 49

Slide 49 text

Esiste da 20+ anni, non dipende da una singola azienda, documentato È su qualsiasi piattaforma: web, server, iot, 3D, 2D, Android, iOS.. È veloce È multiparadigma (funzionale, oggetti) -_- Errori. (Flow,TypeScript) 49 / 63

Slide 50

Slide 50 text

Esiste da 20+ anni, non dipende da una singola azienda, documentato È su qualsiasi piattaforma: web, server, iot, 3D, 2D, Android, iOS.. È veloce È multiparadigma (funzionale, oggetti) -_- Errori. (Flow,TypeScript) -_- Frammentato, best practise cambiano 50 / 63

Slide 51

Slide 51 text

Esiste da 20+ anni, non dipende da una singola azienda, documentato È su qualsiasi piattaforma: web, server, iot, 3D, 2D, Android, iOS.. È veloce È multiparadigma (funzionale, oggetti) -_- Errori. (Flow,TypeScript) -_- Frammentato, best practise cambiano -_- Il fatto che funzioni non significa che sia il giusto strumento per tutti i problemi 51 / 63

Slide 52

Slide 52 text

Sintassi JavaScript / NodeJS in breve 52 / 63

Slide 53

Slide 53 text

// variabili / strutture dati let eta = 60 const nome = 'Pippo'; let coord = { lat: 45.1, lon: 7.9, } let temperatures = [20, 21, 25, 23] 53 / 63

Slide 54

Slide 54 text

// cicli for (let i = 0; i < temperatures.length; i += 1) { console.log('temp '+ temperatures[i]) } temperatures.map((el) => { console.log('temp ' + el)} ) 54 / 63

Slide 55

Slide 55 text

// logica if (condizione === true) { faiQuesto() } else { faiQuello() } 55 / 63

Slide 56

Slide 56 text

// funzioni function saluta(nome) { console.log('ciao ,' + nome) } saluta('Alice') // -> ciao, Alice 56 / 63

Slide 57

Slide 57 text

Esempio come scrivere codice senza scriverlo 57 / 63

Slide 58

Slide 58 text

Da dove iniziare? Scratch (bambini) 58 / 63

Slide 59

Slide 59 text

Da dove iniziare? Scratch (bambini) Coding with Chrome (adulti) 59 / 63

Slide 60

Slide 60 text

Da dove iniziare? Scratch (bambini) Coding with Chrome (adulti) Imparare dagli altri sviluppatori su GitHub 60 / 63

Slide 61

Slide 61 text

Da dove iniziare? Scratch (bambini) Coding with Chrome (adulti) Imparare dagli altri sviluppatori su GitHub ..e corsi, università, video, formazione della regione, libri.. ? (Valutare caso per caso in base ad argomenti e propri interessi) 61 / 63

Slide 62

Slide 62 text

Domande ? 62 / 63

Slide 63

Slide 63 text

Grazie per l'ascolto 63 / 63