Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aggiunta prima stesura per capitolo formazione #124

Closed
wants to merge 8 commits into from
Closed

Conversation

passasooz
Copy link

No description provided.

docs/formazione/README.md Outdated Show resolved Hide resolved
docs/formazione/README.md Outdated Show resolved Hide resolved
@storrisi
Copy link

Credo che alcune cose che hai detto @passasooz saranno menzionate altrove (la spiegazione di Fullstack, Front, Back eccetera), quindi non so se debbano necessariamente essere incluse in questo capitolo.

Forse dovremmo concentrarci puramente sugli aspetti formativi ad ampissimo raggio, includendo tutte le possibilità, da quelle accademica (diploma, università), per poi parlare di tutti i percorsi professionali, passando dalla formazione da autodidatta ed altro, senza escluderne nessuna e scendendo in profondità su ogni aspetto.

Non so se questo è il luogo giusto per lo scambio di pareri, magari nel weekend provo a buttare giù una bozza di macro topic di questo specifico capitolo.

@Cadienvan
Copy link
Member

Per comodità ho fatto direttamente la proposta di commit

@Cadienvan Cadienvan linked an issue Sep 25, 2023 that may be closed by this pull request
docs/formazione/README.md Outdated Show resolved Hide resolved
docs/formazione/README.md Outdated Show resolved Hide resolved
docs/formazione/README.md Outdated Show resolved Hide resolved
docs/formazione/README.md Outdated Show resolved Hide resolved
docs/formazione/README.md Outdated Show resolved Hide resolved
docs/formazione/README.md Outdated Show resolved Hide resolved
@guizzo
Copy link
Member

guizzo commented Sep 26, 2023

@passasooz Ho letto tutto quanto, ti dò un mio personalissimo feedback.

Il contenuto (inteso come informazioni che vuoi passare) secondo me ci sta; non sono invece convinto della forma utilizzata... ma ammetto che il mio è un giudizio un po' di parte, in quanto preferisco un approccio più narrativo e "romantico".

In ogni caso credo di aver colto la tua intenzione (ti chiedo di correggermi se sbaglio): dare un overview introduttiva sul panorama formativo ed i percorsi che quest'ultimo offre, e introdurre dei concetti (come front-end path, back-end path, etc...) che verranno poi approfonditi e sviscerati nei capitoli successivi del libro.

P.S.: Ho beccato alcuni errori di battitura qua e là e mi sono permesso di segnalarteli, spero di aver fatto cosa gradita 😄

P.P.S: Chiederei alla nostra super @serenasensini di darci un parere al riguardo quando ne ha modo ❤️

@passasooz
Copy link
Author

@passasooz Ho letto tutto quanto, ti dò un mio personalissimo feedback.

Il contenuto (inteso come informazioni che vuoi passare) secondo me ci sta; non sono invece convinto della forma utilizzata... ma ammetto che il mio è un giudizio un po' di parte, in quanto preferisco un approccio più narrativo e "romantico".

In ogni caso credo di aver colto la tua intenzione (ti chiedo di correggermi se sbaglio): dare un overview introduttiva sul panorama formativo ed i percorsi che quest'ultimo offre, e introdurre dei concetti (come front-end path, back-end path, etc...) che verranno poi approfonditi e sviscerati nei capitoli successivi del libro.

P.S.: Ho beccato alcuni errori di battitura qua e là e mi sono permesso di segnalarteli, spero di aver fatto cosa gradita 😄

P.P.S: Chiederei alla nostra super @serenasensini di darci un parere al riguardo quando ne ha modo ❤️

La forma penso sia una cosa troppo soggettiva per uniformarla, sarà un problema comune in questo progetto temo...

Per il resto ti ringrazio del feedback mi piacerebbe avere anche pareri altrui, ogni suggerimento/correzione è preziosa per il progetto stesso.

Copy link
Member

@Cadienvan Cadienvan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mi sono permesso di fare il puntiglioso perché hai giustamente chiesto dei pareri ed è giusto partire con il piede giusto, ma mi piace l'impronta che hai dato al tutto.

Non ho letto il terzo punto ma ci tenevo a darti la mia opinione.

docs/formazione/README.md Outdated Show resolved Hide resolved
docs/formazione/README.md Outdated Show resolved Hide resolved
docs/formazione/README.md Outdated Show resolved Hide resolved
docs/formazione/README.md Outdated Show resolved Hide resolved
docs/formazione/README.md Outdated Show resolved Hide resolved
docs/formazione/README.md Outdated Show resolved Hide resolved
docs/formazione/README.md Outdated Show resolved Hide resolved
docs/formazione/README.md Outdated Show resolved Hide resolved
docs/formazione/README.md Outdated Show resolved Hide resolved
docs/formazione/README.md Outdated Show resolved Hide resolved
@halfpass25
Copy link
Contributor

@passasooz : se nessuno si è già proposto, potrei contribuire a questo capitolo per quanto riguarda la sezione "autodidatti".
Mi fai gentilmente sapere?
Grazie!

@halfpass25
Copy link
Contributor

Ragazz*, ho iniziato a scrivere un contributo specifico su auto formazione/autodidatti per il capitolo "Formazione".
Appena ho un draft abbastanza strutturato ve lo sottopongo.
Buona giornata a tutt* ;)

@halfpass25
Copy link
Contributor

Ragazzi, quello che segue è il frammento "introduttivo" della sezione "autodidatti" di cui mi sto occupando.
Domanda: fisicamente, come e dove la inserisco, qui nel capitolo "Formazione"?
Grazie per i chiarimenti, review e quant'altro, buona giornata.

FORMAZIONE PER AUTODIDATTI

Impadronirsi dei fondamenti di informatica e programmazione, sia per farne una professione che per scopi puramente hobbistici, è certamente un’impresa stimolante ed eccitante, tanto per i risultati a cui può condurre, quanto per il puro piacere del “viaggio” nella conoscenza che state intraprendendo.

Prima di proporvi un possibile itinerario di apprendimento, però, trovo utile e necessario porvi di fronte ad un esame di coscienza: più sinceramente ed onestamente risponderete a voi stessi, maggiore vantaggio trarrete dal quadro che le vostre risposte delineerà.

Un noto adagio recita “tutti possono programmare, ma non tutti possono diventare programmatori”.
Sembra una contraddizione in termini ma in realtà questa frase nasconde una grande verità: al di là di qualunque eccitazione iniziale per la faccenda, è utilissimo essere onesti con se stessi e capire -magari facendosi aiutare da chi può valutare con obiettività e cognizione di causa la vostra predisposizione-, se effettivamente la programmazione può essere per voi una strada serena o se è destinata a trasformarsi in una fatica improba, costellata solo di frustrazioni.

Contrariamente a quello che vi aspettereste di sentirvi dire, qui, in questo libro, il mestiere del programmatore è un mestiere molto più creativo e molto meno tecnico di quanto si pensi.
Guardare il monitor e vedere schermate di codice che scorrono sotto i vostri occhi non è sufficiente; è necessario che quel codice lo vediate con “gli occhi della mente” e che nella vostra testa si delinei subito il quadro complessivo in cui quel codice si innesta.
Meglio ancora: dovreste poter guardare il codice –sempre con gli occhi della mente-, e dovreste essere in grado di immaginare scenari diversi, dovreste sentire una voce interna che vi dice “ah, si, questo codice fa questa cosa ma si può fare meglio/più rapidamente/con meno dispendio di energie e risorse se facessi in quest’altro modo…”
In due parole: se non siete “naturalmente portati” verso la materia, potete farcela lo stesso, ma la vostra vita professionale sarà una fatica perenne.
Vi conviene? Solo perché avete in mente un’immagine “romantica” del programmatore e del suo mestiere, magari tratta dai numerosi film che potreste aver visto?
Non che il mestiere in se’ sia gelido, tutt’altro: a volte l’eleganza di una soluzione ad un problema, può commuovere fino alle lacrime e non per densità semantica condensata in due righe di codice ma per l’idea che dietro quelle due righe di codice c’è stato un guizzo creativo, subito accompagnato da finezza nella tecnica, ma pur sempre prodotto da un essere umano: questo, è il bello ed il romantico di questo mestiere.
Inutile dire che di sola romanticheria non si vive e che spesso e volentieri, anche utilizzando gli strumenti più appropriati e più adatti per sollevarci da lavori ripetitivi, la vita quotidiana di un programmatore non è sistematicamente soggetta a scariche di adrenalina.
Anzi, dietro un lavoro ben fatto, di norma, c’è tanta, tanta “falegnameria”.
Insomma, se alle domande “ho una reale predisposizione?” e “sono disposto ad accettare che il percorso di istruzione che sto per intraprendere non sarà tutto un tappeto di petali di rose?” avete risposto con un SI netto e sicuro, siete già a metà dell’opera, congratulazioni!

Tutti possiamo programmare, allora?
In teoria, nel momento stesso in cui pensate “ah, ora vado a mettere su la caffettiera”, voi tutti avete in mente –senza rendervene conto-, un piano precisissimo che consiste nei passi di

  1. Prendere la caffettiera
  2. Riempire d’acqua la caldaia fino al segno
  3. Inserire il filtro
  4. Svuotare dell’eccesso di acqua
  5. Riempire il filtro con il caffè senza pressarlo
  6. Ecc…. fino alla tazzina fumante

Non tutti i problemi si risolvono altrettanto facilmente ma spesso, più che la competenza tecnica, quello che fa un’enorme differenza è l’approccio al problema e –di riflesso-, anche alla sua soluzione.
Esempio banale ma calzante: una volta mi è capitato di avere a che fare con un’applicazione discretamente complessa nella quale, ad un certo punto del processo, avrei dovuto stabilire in un loop molto pesante se nel database dovevo effettuare un’operazione di INSERT o di UPDATE.
Richiedendo la cosa molti controlli e volendola semplificare a tutti i costi, risolsi felicemente la faccenda inizializzando valori nelle tabelle all’apertura dell’applicazione.
E ciò, fece in modo che avessi automaticamente ed a gratis, solo operazioni di UPDATE e quindi potei eliminare tutta una serie di controlli lunghi, complessi, farraginosi e forieri di errori.
Non è un esempio esaustivo, ma spero vi abbia suggerito un’idea migliore di quella che poche righe fa ho chiamato “creatività”.

Tra l’altro, l’esempio che vi ho appena fornito, mette in luce che la programmazione, sia pure con una buona dose di creatività, richiede comunque ed in prima istanza un approccio analitico ai problemi e a seguire, la conoscenza dei metodi/mezzi/strumenti con cui implementare una possibile soluzione (perché si: “c’è sempre più di un modo per farlo”).
Fortunatamente, è possibile migliorare le proprie capacità analitiche attraverso un lungo periodo di esercitazione mentre per la creatività… o ce l’hai o non ce l’hai, punto.
Questo non vuol dire che un programmatore che esegua i suoi compiti in maniera canonica sia peggiore di uno baciato dalla Musa della Creatività ma è fuori discussione che quest’ultimo avrà una marcia in più.
Ora, zoomiamo sul nostro specifico interesse, l’auto-formazione: è ovvio che la discussione filosofica sin qui fatta si applica a tutti, autodidatti e/o persone che hanno seguito un corso di studi classico (università) ma per entrambi, la storia della creatività continua a valere.
Di contro, è anche vero che seguire un percorso universitario non ha mai fatto male a nessuno ed offre il vantaggio di frequentare un ambiente nel quale è possibile confrontarsi con altre persone con la nostra stessa passione ed interessi, mentre se siamo autodidatti, queste possibilità sono un po’ più ridotte, ma non insuperabili.
Resta il fatto, che in generale sarete “soli” davanti a libri, monitor, codice e… caffè!
Ad ogni modo, a volte è “meglio soli che male accompagnati” e se siete veramente motivati ed appassionati alla materia, anche lo studio e la sperimentazione in solitaria non vi peserà più di tanto.

Da non sottovalutare, nel 2023, che la pervasività e disponibilità H24 7/7 di una connessione ad internet è di grandissimo aiuto ad un autodidatta, perché le risorse che può reperire in rete, a gratis o con poca spesa, sono praticamente sterminate e –soprattutto agli inizi-, costituiscono un validissimo aiuto alla comprensione di argomenti che tutto sono meno che romantici.
Superate le domande motivazionali, prima di mettervi all’opera, dovete porvi parecchie altre domande, stavolta di natura squisitamente più tecnica/tecnologica.

Il termine “programmare” è un ombrello enorme che accoglie sotto di se’ innumerevoli sfumature di codice e dunque, sapere con la miglior precisione possibile a quale tipo di programmazione volete dedicarvi, vi tornerà utilissimo per sfrondare l’inutile e farvi invece una lista utilissima degli strumenti dei quali dovreste impadronirvi.
Non esiste una sola forma di programmazione ma qualunque applicativo (a meno che non vogliate scrivere solo script bash di amministrazione), di solito ha una “interfaccia utente”, in genere ma non necessariamente anche grafica che è detta “Frontend” e tutto quello che succede quando un utente clicca su un pulsante del Frontend; questa parte, è nota come "Backend" o retrobottega.
Il Backend non è visibile all’utente e quindi non viene applaudito e lodato come i Frontend ma state certi che se avrete fatto un buon lavoro –chessò?-, su un sistema bancario, l’utente finale vi sarà grato per avergli ad esempio evidenziato in maniera chiara e precisa problemi o anche opportunità legate al suo conto corrente.

Fatta questa prima scelta, dovete preoccuparvi di capire su quali tecnologie volete formarvi e prepararvi.
Un mio consiglio, opinione del tutto personale, è: evitate come la peste di gettarvi a corpo morto sui numerosi “frame work” in circolazione.
Che siano frame work frontend o back end, è essenziale che prima di utilizzarli vi impadroniate di ciò che c’è alla loro base.
Questo approccio, non solo vi permetterà di comprendere le cose a basso livello, ma, in seguito, quando vi avvicinerete ad un qualunque frame work, vi consentirà di comprenderne molto più rapidamente e facilmente i suoi “internals”, che sono invariabilmente basati proprio su… le basi.
Non posso suggerirvi tecnologie linguaggi specifici ma posso dirvi che in generale, è vero che dovreste sentirvi molto “falegnami” e sapere quale è l’attrezzo, lo strumento, l’utensile più idoneo ad assolvere ad una determinata funzione.
E dato che le funzioni possono essere molte, questo spiega anche il proliferare dei frameworks e la necessità di sapere almeno “che cosa fanno”, per quale compito meglio si prestano.
Diversamente, sarebbe come andare a casa dell’anziana signora per ripararle una tapparella ed accorgersi solo una volta sulla scala, che avremmo avuto bisogno di un cacciavite a croce oltre che di quello a lama piatta.
Il che significa scendere dalla scala, tornare in officina, prendere il cacciavite mancante e quindi tornare sulla scala; una perdita di tempo ed energie inutile, vi pare?

@Cadienvan
Copy link
Member

Ciao @halfpass25 , la cosa migliore è sentire l'opinione di @passasooz e @guizzo che sono i primi due assegnatari dell'argomento. Hai fatto bene a inserire il commento così da non interferire con la PR in corso.

A loro la decisione di integrare la tua proposta e individuare il come.

Personalmente non commento il contenuto, non è un mio capitolo e non voglio creare bias, ma dico che la differenza tra bootcamp, scuola e formazione da autodidatta è un ottimo tema da trattare, ma forse l'argomento migliore è il #101 , non credi? Chiedo anche a @storrisi che insieme a @guizzo è assegnatario di quell'area.

@halfpass25
Copy link
Contributor

halfpass25 commented Oct 9, 2023

@Cadienvan per me un capitolo o un altro non fa differenza purché il mio contributo abbia un senso nello specifico contesto.
Avevo capito che #124 fosse il luogo appropriato comunque attendo @passasooz e @guizzo per i loro commenti e indicazioni, grazie ;)

@nicolaerario nicolaerario changed the title feat: prima stesura per capitolo formazione Aggiunta prima stesura per capitolo formazione Oct 21, 2023
Copy link
Contributor

@ugho16 ugho16 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ho cercato di rendere più inclusivo il linguaggio e corretto altre sottigliezze. Ovviamente sono proposte, vedi tu se e quali vale la pena implementare

docs/formazione/README.md Show resolved Hide resolved
docs/formazione/README.md Show resolved Hide resolved
docs/formazione/README.md Show resolved Hide resolved
docs/formazione/README.md Show resolved Hide resolved
docs/formazione/README.md Show resolved Hide resolved
docs/formazione/README.md Show resolved Hide resolved
docs/formazione/README.md Show resolved Hide resolved
docs/formazione/README.md Show resolved Hide resolved
docs/formazione/README.md Show resolved Hide resolved
docs/formazione/README.md Show resolved Hide resolved
@Cadienvan
Copy link
Member

D'accordo con @passasooz prendo ownership del capitolo giusto per applicare le modifiche e riaprirlo per permettere a chiunque di partecipare, avendo lui impegni privati.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants