Programmare da zero | istruzioni, metodi, variabili

Per muovere i primi passi nel mondo della programmazione dobbiamo fare nostri alcuni concetti di base che ci accompagneranno in tutto il nostro percorso e sono validi per tutte le tecnologie o i linguaggi di programmazione. È importante averli ben chiari perché costruiscono le fondamenta della programmazione su cui svilupperemo tutte le nostre abilità.

Alla fine di questo articolo avremmo compreso: le istruzioni, le variabili, i metodi.

Questo articolo si basa sulle nozioni introdotte nel precedente post sull’argomento: 💻 il tuo primo programma da zero.

Le istruzioni 📃

Un’istruzione è un’azione che facciamo nel nostro programma. Un programma è composto da migliaia di istruzioni che, messe insieme, servono a far fare al computer ciò che ci interessa. Che cosa possiamo fare con queste istruzioni? Dichiarare variabili, assegnare valori alle variabili, possiamo chiamare metodi o procedure o funzioni (portiamo pazienza, che cosa è una variabile lo vediamo tra pochissimo 🙂). Poi ci sono delle particolari tipologie di istruzioni che ci permettono di prendere delle decisioni e sono i cosiddetti “if”. Con le istruzioni if (che traduciamo con “se” in italiano) prenderemo una decisione, del tipo: se un valore è più grande o più piccolo di zero allora faccio una cosa altrimenti ne faccio un’altra. Ci sono anche i cicli (ma non mettiamo troppa carne al fuoco 🔥 per ora).

Le variabili 🧮

Le variabili rappresentano uno spazio della memoria del pc. Servono per riservare della RAM (Random Access Memory, quella che diciamo abbiamo 16 gigabyte di ram nel nostro PC e così via). Una variabile è un modo per riservare uno spazietto 🗃️ all’interno di tutta questa memoria , interamente riservato al nostro programma. Non stiamo parlando di disco fisso/hard disk che ci serve per far persistere qualcosa anche quando il PC si spegne. Riserviamo dello spazio per il nostro programma per uno specifico scopo perché voglio memorizzare dei valori (si dice assegnare, tecnicamente) perché li voglio utilizzare in un secondo momento. Ad esempio voglio chiedere dei numeri dall’utente (immaginiamo una calcolatrice) per poi fare delle operazioni. Chiedo gli addendi di una somma quindi salverò un addendo in una variabile, un addendo in un’altra variabile e poi li addizionerò per ottenere la somma. Ci sono due grandi categorie di linguaggi per quanto riguarda la gestione delle variabili:

  • tipizzati
  • non tipizzati.

Nei linguaggi tipizzati le variabili sono specifiche per un tipo di dato: cioè in una determinata variabile decido a priori se voglio contenere del testo (intere parole o caratteri singoli), o se voglio tenere dei numeri. Non posso usare una variabile prima per un numero e poi per del testo.

Nei i linguaggi non tipizzati, invece, il tipo di dato non è specifico. Quindi in uno spazio di memoria in un certo momento potrò metterci del testo e nel momento successivo per metterci dei numeri questo ha dei pro e dei contro non sono lo scopo di questo articolo.

Metodi ⚙️

Che cosa è un metodo? Metodo è un nome generico che raggruppa due concetti:

  • procedura
  • funzione

Un metodo raggruppa delle linee di codice per essere. Consiste nel dare un nome a un gruppo di righe di codice per essere poi riutilizzate e non doverle ripetere e scrivere da capo. Per esempio, se scrivo delle righe di codice che mi invertono le lettere in una parola e voglio riutilizzare queste righe di codice in vari punti del mio programma non dovrò riscriverle ogni volta; le posso prendere, raggruppare, dare loro un nome del tipo “inverti stringa” e ogni volta che ne ho bisogno posso richiamarle con questo nome.

Una procedura è un metodo che non restituisce un risultato. Un esempio di procedura potrebbe essere qualcosa che cambia il colore di sfondo del nostro programma. Queste righe di codice non ci danno un risultato a seguito di una operazione, ma agiscono direttamente su qualcosa (in questo caso, lo sfondo).

Le funzioni sono di righe di codice che restituiscono un risultato. Possiamo immaginare quelle funzioni che noi scriviamo che fanno per esempio delle operazioni matematiche, oppure delle operazioni che intervengono su parti di testo e ce lo restituiscono trasformato.

Video 📹

Rimando al video pubblicato sul mio canale YouTube con la spiegazione dettagliata di questi concetti, esempi di codice e realizzazione di un programma che fa uso delle nozioni appena viste.

Prerequisiti 💼

Per seguire le attività svolte nel video servono Visual Studio Code e il dotnet SDK che metto linkati qui sotto. È anche consigliato seguire il video 📽️ dell’episodio precedente (qui).

Visual Studio Code (https://code.visualstudio.com/Download)

Dotnet SDK (https://dotnet.microsoft.com/)

Programmare da zero | Imparare a programmare per principianti

Per me sono stati i videogiochi: è sempre colpa dei videogiochi. Non volevo semplicemente giocarli, volevo costruirli. E così ho capito che dovevo studiare come funzionano i computer i programmi. Perché i videogiochi sono tra i programmi più complessi, costosi e difficili da realizzare. Poi la vita è sempre ricca di sorprese e ora della fine non programmo videogiochi ma sono comunque diventato un programmatore 😊

Per te potrebbe essere l’automazione, la robotica, la domotica, i chatbot… Comunque sei qui a chiederti: come programmare da zero? Come si inizia a programmare?

Ecco qualche linea guida su come approcciarsi al vastissimo mondo della programmazione. Questo mondo è così ampio che è impossibile trattare tutto in un solo articolo.

Cos’è un programma?

Un programma non è altro che un insieme di istruzioni codificate in modo comprensibile per un pezzo di ferro (cioè Silicio, di cui sono fatti i circuiti dei PC) che prendono degli input e danno un output. Pensa per esempio a quella parte del sistema operativo (windows, mac o linux che sia) che trasforma il movimento del tuo mouse in una freccia che si muove sullo schermo.

Quale linguaggio di programmazione scegliere?


Per scrivere un programma serve un linguaggio di programmazione. Ce ne sono tantissimi, divisi in categorie, e ognuno è progettato per uno scopo preciso. Non c’è quindi in generale un linguaggio migliore, dipende sempre da cosa dobbiamo fare. Se dobbiamo fare pezzi di un sistema operativo molto probabilmente lavoreremo in C o C++. Programmi per gli smartphone con Java, C#, Swift, Objective-C. SQL se dobbiamo interagire con le basi di dati relazionali. Python è molto usato per le elaborazioni numeriche e data science.

Quindi in base al tuo progetto sceglierai lo strumento (linguaggio di programmazione) che ti metterà a disposizione le funzionalità più adeguate.

Per imparare a programmare, per conoscere le basi, i linguaggi più idonei sono quelli che mettono a disposizione la miglior documentazione e i cui strumenti siano facili da reperire e gratuiti.

Come imparo a programmare?


Per imparare a programmare ci sono moltissime opzioni on-line: i produttori di strumenti di sviluppo stessi, nei loro siti, mettono a disposizione tutorial e materiale per iniziare. Puoi quindi procedere da autodidatta, scenario che nel mondo della programmazione è molto comune. Ci sono corsi di formazione in campus sia fisici che remoti. Si spazia anche passando per corsi serali.

Non è necessario essere dei mostri in matematica (come spesso si pensa): la matematica è utile ma diventa davvero necessaria quando si devono scrivere programmi come motori di calcolo fisico o programmi a supporto di ricerca scientifica.

La maggior parte dei programmi, tuttavia, consiste nel prendere dati da uno schermo/tastiera/mouse/tocco/penna, salvarli da qualche parte e recuperarli in un secondo momento.

Costruiamo il primo programma insieme

Ma ora basta con le chiacchiere, ti mostro come creare il tuo primo programma dallo zero totale, in dieci minuti (più o meno, a seconda della velocità del tuo computer).

Come fare un daily stand-up meeting efficiente in “stile kanban”

Gli standup meeting sono un elemento comune dei processi di sviluppo Agile.

Meeting con kanban
Meeting con kanban

Di solito si fanno al mattino primo di iniziare il lavoro e hanno un formato standard. Uno standup meeting tipico consiste nel chiedere a turno ai partecipanti le tre fatidiche domande:

  1. Cosa hai fatto ieri?
  2. Cosa farai oggi?
  3. Sei bloccato con qualcosa e hai bisogno di aiuto?

Ogni membro del team risponde a queste domande e così il team è coordinato per le attività della giornata.

Con l’adozione di una kanban board le cose si svolgono diversamente.

Non c’è bisogno di chiedere a turno ai partecipanti le tre domande perché la loro risposta è implicita dalla posizione dei kanban sulla lavagna. La lavagna contiene tutte le informazioni su chi sta lavorando a cosa. Chi partecipa regolarmente ai meeting si accorge anche di cosa è cambiato e se qualcosa è bloccato o meno è visivamente evidente.

Perciò il processo è leggermente diverso in ambito kanban rispetto a daily meeting tradizionale. Il facilitatore, di soluto un PM, “attraversa la board”. Per rinforzare il concetto di sistema in tirare/pull, convenzione vuole che la kanban board si legga da destra versa sinistra (al contrario del processo di produzione del valore). Questo perché non ha senso spendere tempo ed energie su cose “a monte” quando “a valle” ci sono problemi che ostacolano il flusso del lavoro. Inoltre, questo aiuta a far rispettare i WIP limit per cui nuove attività non possono iniziare se quelle incorso non liberano il loro posto.

Il moderatore del meeting pone enfasi sugli elementi bloccati (visivamente evidenti per delle convenzioni sui colori). Vengono poste domande sul perché questi elementi sono bloccati e si adotta un approccio proattivo per cercare di sbloccarli il prima possibile.

Dopo aver discusso gli elementi problematici, il team può passare in rapida rassegna gli elementi in lavorazione, ma i team più maturi in questo ambito non ne hanno bisogno.

Questo meccanismo consente di ridurre di molto la durata di meeting, considerando che si parlerà solo di cui c’è bisogno in maniera puntuale. La kanban board per sua natura funge da radiatore di informazioni che, con un minimo di pratica, a colpo d’occhio possiamo interpretare e capire lo stato dell’arte con un semplice sguardo.

Video

In questo video una dimostrazione su come fare! 🙂

Libri di riferimento

Kanban, Succeful Evolutionary Changes for Your Technlogy Business | David J. Anderson | Su Amazon

Personal Kanban: Mapping Work, Navigating Life | Tonianne DeMaria Barry, Jim Benson | Su Amazon

(I link ad Amazon sono link affiliati, il che significa che se vengono acquistati gli articoli tramite quel link ricevo una piccola percentuale da Amazon. Per te non cambia niente.)

Show your work! – Recensione

Panoramica

Show Your Work! di Austin Kleon è un libro in formato quadrato di 15×15 cm di 215 pagine. Come dice il sottotitolo, contiene 10 modi per condividere le proprie creazioni ed essere scoperti in un mondo che produce contenuti in quantità enormi.

Show Your Work Book Cover

L’autore espande 10 linee guida su come, secondo lui, si può migliorare il proprio approccio alla condivisione di contenuti on-line:

  1. Non è necessario essere dei geni
  2. Pensa al processo, non al prodotto
  3. Condividi qualcosa di piccolo ogni giorno
  4. Apri il tuo armadio delle curiosità
  5. Racconta belle storie
  6. Insegna ciò che conosci
  7. Non diventare uno spammer
  8. Impara a prendere un pugno
  9. “Venditi”
  10. Resta nei paraggi.

Il libro ha molte illustrazioni, le pagine scorrono velocemente. Per andare da copertina a copertina di fila ci si mette circa un’ora.

Cosa mi è piaciuto

L’autore riesce a essere motivante e riporta molte idee e citazioni di altri artisti sulla condivisione e, in generale, a supporto della sua tesi.

Contiene dei punti di vista diversi dal solito che, personalmente, mi hanno fatto ragionare e ho voluto approfondire ed esplorare per conto mio. In particolare, il primo punto “non devi essere un genio” avvia delle riflessioni sull’abbracciare una mentalità da amatore; l’appassionato se ne frega del “perfetto”, condivide le sue scoperte, il suo processo di apprendimento e non vede l’ora di insegnare agli altri la stessa cosa. Mi trovo anche d’accordo sul puntare sempre al valore e al contenuto di ciò che si crea e condivide: si deve sempre cercare di trasmettere qualcosa di valore per il proprio pubblico. Portiamo rispetto e pensiamo sempre a chi ci legge/ascolta/guarda perché ci sta dedicando tempo, e di quel tempo dobbiamo avere rispetto.

Cosa non mi ha convinto

In alcuni momenti si ha l’impressione che l’autore non stia dicendo niente di suo, ma semplicemente riportando frasi e opinioni di altri con poco contenuto originale. Ad un certo punto l’autore dice che il libro è nato da un serie di tweet, e si vede. Si sente la mancanza di profondità. È come se l’autore dicesse: ecco un’idea, eccone un’altra, ecco una citazione di questo, ecco una citazione di quest’altro, ma senza idee sue.

Conclusione

È un libro che si può leggere tutto d’un fiato poco tempo. Tuttavia, ne consiglio la lettura a pezzi per far sedimentare i concetti che riporta. Può essere utile rileggerlo ogni tanto, anche per ritrovare un po’ di slancio motivazionale.
Un buon libro, per chi si sta approcciando alla creazione di contenuti e vuole trovare degli spunti per far crescere i follower.

Videorecensione

Come parlare in pubblico – 5 linee guida

E così è capitato anche anche a te: un evento, una presentazione a scuola o al lavoro, una conferenza su un argomento a te caro. È giunto il momento: the stage is yours.

Considerazioni sul palare in pubblico

Parlare in pubblico efficacemente è una questione di allenamento. Certo, qualcuno ce l’ha più istintivo d’altri. Come per ogni cosa, tuttavia, ci si può allenare e migliorare parecchio: e questa è una buona notizia!

Personalmente inserirei il parlare in pubblico come materia a scuola dalle medie in su. Nella vita sono moltissime le occasioni che beneficiano di ciò ciò che si impara quando si studia l’arte del parlare in pubblico. In un modo o nell’altro si deve sempre esporre un punto, raccontare una storia, fare un pitch a un investitore per la propria azienda. La comunicazione è parte centrale della nostra vita, e saperne qualcosa in più non fa male.

Non mi considero un esperto dell’argomento, ma un appassionato che per motivi sia personali che professionali si interessa all’argomento da qualche anno.

Condivido qui 5 linee guida che mi sono state utili.

1. Parla di ciò che conosci.

Ciò che conosci e che hai vissuto in prima persona passerà sicuramente molto meglio come messaggio rispetto a qualcosa che hai solo sentito di sfuggita o conosci poco. L’esperienza personale e le “cicatrici” che ci portiamo addosso aggiungono spessore e personalità al discorso.

2. Riordina le idee

Un’esposizione ordinata con un’inizio, un percorso in mezzo, e una fine con una conclusione è la chiave per un discorso chiaro e logico.

3. NON imparare il discorso a memoria.

Imparare il discorso a memoria provoca l’effetto automa che ripete senza personalità. Inoltre, l’emozione del momento potrebbe giocare un brutto scherzo e far sparire il discorso dalla nostra mente. Se conosciamo bene l’arogmento (punto 1), non abbiamo bisogno di imparare a memoria il discorso; ci basta sapere bene i punti che vogliamo toccare e perché.

4. Conosci il tuo pubblico.

Il contesto e chi ci troviamo davanti influiscono su come raccontiamo. La scelta delle parole, il livello dettaglio, il vestire. Conosciamo il pubblico per personalizzare il discorso e fare arrivare il messaggio nel modo più efficace.

5. Pratica, pratica pratica.

Come per tutte le cose, serve pratica. A qualcuno un po’ di più, a qualcuno un po’ di meno. Non possiamo pensare però di prendere semplicemente il microfono in mano e improvvisare se siamo dei principianti. Non è che perché canto sotto la doccia allora domani mi iscrivo a Sanremo!

Approfondimenti

Per approfondire i punti sul parlare in pubblico efficacemente, ecco le 5 linee guida raccontate in un video e un libro che ritengo fondamentale.

Video

Video / Come parlare in pubblico

Libro

Come parlare in pubblico e convincere gli altri, Dale CarnegieAmazon