Giter Club home page Giter Club logo

imparare-a-programmare-con-javascript's Introduction

Imparare a programmare con Javascript

Lavorando nel mondo della programmazione ed essendo io stesso uno sviluppatore, spesso e volentieri, mi sono imbattuto ad insegnare alcune cose a persone di diverso livello di conoscenza sul tema.
Non mi sono mai però approcciato nello spiegare tutta la programmazione ad un neofita che non ne conosce nulla a riguardo.
Con questo documento voglio spiegare tutti i concetti base della programmazione utilizzando come linguaggio di riferimento Javascript.

Perché Javascript

Ho scelto di utilizzare Javascript per spiegare la programmazione per 3 semplici motivi - non del tutto razionali:

  1. è il linguaggio di programmazione che utilizzo principlamente a lavoro;
  2. ha una curva di apprendimento molto veloce;
  3. ci sono molte risorse online di facile fruizione che possono aiutare a comprendere meglio il linguaggio. Per citarne qualcuna: w3schools; MDN.

Come scrivere ed eseguire un programma

Questa guida non è orientata al WEB ma solamente alla programmazione. Utilizzeremo Javascript solamente per studiarne i principi. Quindi, gli strumenti che utilizzeremo saranno:

  1. un ambiente di sviluppo integrato (in lingua inglese integrated development environment) cioè un software che ci supporterà nella scrittura dei programmi. In particolare, utilizzeremo Visual Studio Code;
  2. Node.js è una runtime di JavaScript Open source multipiattaforma orientato agli eventi per l'esecuzione di codice JavaScript, costruita sul motore JavaScript V8 di Google Chrome. Che tradotto significa: Node.js è un programma che ci permette di eseguire programmi scritti con il liguaggio di programmazione Javascript senza l'utilizzo di un browser.
  3. La shell o terminale è un programma dotato di un'interfaccia a riga di comando, che viene eseguito all'interno di un terminale testuale. L'utente digita un comando, ovvero richiede l'esecuzione di un programma, e il programma eseguito può interagire con l'utente e/o mostrare dati sul terminale. Noi utilizzeremo la shell per eseguire i nostri programmi, per inserire informazioni nei nostri programmi e per vedere l'esecuzione di questi.

Installiamo Visual Studio Code e Node.js prima di passare al prossimo paragrafo.

Comandi base del terminale

Nei principali sistemi operativi (Linux, MacOS e Windows) è possibile utilizzare la shell dei comandi in modo nativo, perciò senza dove installare nulla oltre a quando proposto di default. Per accedere al teminale è necessario:

  • Windows 10: fare clic con il tasto destro del mouse sul menu Start e nel menù a discesa selezionare Windows PowerShell;
  • MacOS 10.15: fare clic sull’icona Launchpad nel Dock, scrivere Terminale nel campo di ricerca, quindi fare clic su Terminale;
  • Linux (Ubuntu): fare clic sul pulsante Dash (il pulsante Dash è posizionato nell'angolo superiore sinistro del desktop ed è caratterizzato dal logo di Ubuntu). Digitare la parola chiave terminale, quindi fare clic su Terminale.

Comandi comuni tra tutti i teminali:

  • pwd: vedere il percorso corrente in cui il terminale è posizionato;

Il primo programma: Hello world!

Una volta installati Visual Studio Code (da ora abbreviato VSC) e Node.js (da ora semplicemente node) saremo pronti per scrivere il nostro primo programma.

  1. Aprire VSC;
  2. Nel menù File selezionare New File;
  3. Scrivere il seguente testo (da ora in poi il testo che contiene codice sarà indicato come codice):
var helloWorld = "Hello world!";

console.log(helloWorld);
  1. Salviamo il file in una posizione che ci aggrada con il nome hello-world.js. Fare attenzione all'estenzione .js;
  2. Aprire il terminale utilizzando quello incorporato con VSC (che non fa altro che utilizzare uno di quelli spiegati sopra): nello stesso menù di File, selezionare invece Terminal e poi fare clic su New Terminal. Si aprirà il prompt dei comandi sotto il file di testo che abbiamo scritto posizionato in una cartella. Per essere consapevoli del path completo eseguire il comando pwd.
  3. Utilizzando i comandi spiegati nel paragrafio sopra, ci posizioniamo nella stessa cartella in cui abbiamo salvato il file hello-world.js.
  4. Scriviamo il seguente comando nel terminale:
> node hello-world.js
  1. Vedremo stampato (modo gergale informatico per dire visualizzato) in una nuova riga la stringa
> Hello world!

Input ed output

I programmi devono poter scambiare informazioni con l'esterno ed a questo servono le operazioni di lettura e stampa, dette di input/output e abbreviate in i/o.

Un programma comunica con l'esterno per mezzo di dispositivi molto diversi: in un computer moderno, l'input standard è la tastiera, l'output standard è lo schermo, ma un programma potrebbe poter scrivere o leggere da un dispositivo USB o da CD o DVD o semplicemente da un file nella memoria del computer o anche un file che risiede nella memoria di qualche altro computer raggiungibile d quello su cui il programma esegue.

Come abbiamo visto nell'esercizio precedente:

var helloWorld = "Hello world!";

console.log(helloWorld);

viene fatto utilizzo di console.log per poter stampare a video la scritta Hello world!. Console.log non è altro che un metodo per poter eseguire l'operazione di output del nostro programma.

Come si può notare non è possibile cambiare o inserire una nuova stringa senza prima modificare il programma, in pratica non è possibile utilizzare l'operazione di input.

Scriviamo un nuovo programma che stampa a video un saluto seguito dal nome di una persona, che andremo a salvare con il nome di hello.js.

var myArgs = process.argv.slice(2);
var nomeDellaPersona = myArgs[0];

console.log("Ciao", nomeDellaPersona, "!");

Andremo a scrivere poi nel seguente modo il comando nel terminale:

> node hello.js <stringa che vogliamo inserire come parametro>

nel concreto:

> node hello.js Matteo

Dopo l'esecuzione vedremo stampato:

> Ciao Matteo !

Se eseguiremo lo stesso comando con un nome diverso, per esempio Leonardo al posto di Matteo vedremo stampato:

> Ciao Leonardo !

In questo modo possiamo leggere un parametro dal terminale. Per leggerene più di uno, sarà necessario modificare il nostro programma ancora e cambiare la sintassi dell'esecuzione del comando.
In particolare, per inserire nel comando più di una parola basta separare i parametri con uno spazio:

> node hello.js Matteo Leonardo Alberto

Scriviamo un nuovo programma che stampa a video un il nome della persona seguito dalla sua età. Entrambi questi valori saranno letti come input. Andremo a salvare con il file con il nome di age.js.

var myArgs = process.argv.slice(2);
var nomeDellaPersona = myArgs[0];
var etaDellaPersona = myArgs[1];

console.log(nomeDellaPersona, "ha la seguente età:", etaDellaPersona);

Poniamo particolare attenzione alle righe:

var myArgs = process.argv.slice(2);
var nomeDellaPersona = myArgs[0];
var etaDellaPersona = myArgs[1];

myArgs è una variabile di tipo array (che faremo nei prossimi paragrafici) alla quale vengono assegnati tutti i valori scritti come parametro nell'esecuzione del programma. Per ora ci basta sapere che se richiamata con la seguente sintassi: myArgs[n] con n il numero del valore sarà possibile ottenere dentro il programma il valore scritto come parametro.

Facciamo un esempio per spiegare meglio questo concetto:

> node mio-programma.js one two three four

myArgs conterrà:

myArgs:  [ "one", "two", "three", "four" ]

Nel mio programma potrò ottenere i parametri facendo:

var parametroUno = myArgs[0]; // "one"
// ...
var parametroQuattro = myArgs[0]; // "four"

Tipi predefiniti e variabili

...

## Istruzioni di base

...

Condizionale

...

Cicli while

...

Esercizi

Una serie di esercizi sui cicli while.

  1. Dati due numeri interi, calcolare il quoziente e il resto supponendo che l'esecutore non sappia fare la divisione.

Cicli for

...

Array

...

Algortmi

...

Funzioni

...

Ricorsione

...

Alberi

...

Programmazione funzionale

...

Programmazione ad oggetti

...

Bibliografia

Link utili:

  1. https://it.wikipedia.org/wiki/Programmazione_(informatica)
  2. https://it.wikipedia.org/wiki/JavaScript
  3. https://it.wikipedia.org/wiki/Integrated_development_environment
  4. https://it.wikipedia.org/wiki/Open_source
  5. https://it.wikipedia.org/wiki/Node.js
  6. https://www.laramind.com/blog/cose-un-terminale-accedere-da-mac-e-da-windows/
  7. https://it.wikipedia.org/wiki/Terminale_(informatica)
  8. https://it.wikipedia.org/wiki/Terminale_virtuale
  9. https://it.wikipedia.org/wiki/Shell_(informatica)
  10. https://it.admininfo.info/c-mo-abrir-powershell-en-windows-10
  11. https://support.apple.com/it-it/guide/terminal/apd5265185d-f365-44cb-8b09-71a064a42125/mac
  12. https://www.libreriaprogetto.it/web/libro/9000000000055.php
  13. https://www.math.unipd.it/~gilberto/
  14. https://it.wikipedia.org/wiki/Input/output
  15. https://developer.mozilla.org/it/docs/Web/API/Console/log
  16. https://nodejs.org/en/knowledge/command-line/how-to-parse-command-line-arguments/

Utility di scrittura

In questo paragrafo mi annoto le utility di Markdown utilizzate in questo documento:

Link utili:

  1. https://github.com/yzhang-gh/vscode-markdown

imparare-a-programmare-con-javascript's People

Contributors

blundert avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.