Gabriel Nelle vive nella Germania del Sud, vicino a Baden-Baden. Condivide l'appartamento con la sua ragazza e due gatti. Ha studiato per diventare insegnante di matematica e tedesco all'università di Siegen, dove si è laureato nel 2008.
Jonathan: Beh, ciao a tutti. Mi chiamo Jonathan. È un piacere essere il vostro conduttore questa sera. Ho un ospite che sono molto onorato di avere nella trasmissione di oggi. Vorrei presentarvi Gabriel Nelle. Gabriel è uno dei nostri contributor principali su Exercism. È stato molto coinvolto in particolare nel track Go, ma gli lascio il compito di presentarsi più in dettaglio tra poco. Ma tanto per dire, Gabriel, è bello averti qui. Grazie per esserti unito a noi e speriamo che ti diverta quanto tutti gli ascoltatori della trasmissione di oggi. Allora, Gabriel, perché non prendi tu la parola? Raccontami un po' da dove vieni e come sei arrivato dove sei ora.
Gabriel: Sì. Ciao. Sono Gabriel. Grazie per avermi invitato. Vengo dalla Germania del Sud, è lì che sono cresciuto, e sono ancora lì ora, non nello stesso posto, ma sempre in Germania del Sud. Sì, sono cresciuto in... allora, cominciamo: sono un figlio dei primi anni Ottanta, quindi sono cresciuto, sono nato nell'81. E penso che il punto di partenza sia intorno alla fine degli anni Ottanta, quando mio padre portò a casa il suo primo computer. Quindi credo che la storia cominci lì. Almeno la storia tech.
Jonathan: Sì.
Gabriel: Aveva MS-DOS, non sono sicuro di quale versione esatta. Penso fosse una versione più vecchia, anche perché, se ricordo bene, mio padre lo portò a casa perché in pratica l'avevano buttato via in quell'azienda e avevano preso computer nuovi, così lui poté portarselo a casa. Sì, è stata la mia prima impressione dei computer. MS-DOS. È interessante e strano.
Jonathan: le, le righe, le righe colorate sullo schermo nero? Era piuttosto
Gabriel: Sì, era solo bianco su nero. Sì, in pratica. E in pratica, per lo più era solo la riga di comando, che ho conosciuto per prima. E poi, più tardi, con mio padre, praticamente nell'89, nel '90, intorno al 1991, mio padre ci insegnò i nostri primi cicli for in QBasic. Io avevo circa 10 anni, e poi c'era anche l'apprendimento del vocabolario. Mio padre comprò un programma per imparare i vocaboli ed era basato su... e penso che avessi un mouse per cliccare, ma non ne sono sicuro al cento per cento. Forse era più tardi. Comunque erano decisamente quei tempi in cui ho iniziato a fare cose con il computer e l'ho rotto un paio di volte. Mio padre ha dovuto ripararlo un paio di volte. Quindi ero decisamente interessato a imparare queste cose. Non proprio nel senso che mi sedevo e dicevo a me stesso: devo imparare questo. Ero davvero interessato a capire cosa potevi farci. Mi incuriosiva.
Jonathan: E, e tuo padre, lavorava specificamente con i computer o era solo nel mondo degli affari e gli è capitato di portare a casa un computer, oppure c'era un motivo specifico per cui l'ha portato a casa? Motivi legati al computer o motivi tecnici.
Gabriel: Sì, in realtà lui di mestiere è elettricista, questo ha imparato. Ma allora lavorava alla Bosch e lavorava nel reparto elettronica, dove si sviluppavano nuovi chip o nuove cose per le auto. E lì, ovviamente, c'erano computer e lui è stato responsabile abbastanza presto di tutto ciò che riguardava i computer, le stampanti di rete e quel genere di cose. Quindi in pratica è così che è entrato in questo mondo. In pratica era quello che si occupava di tutto per far funzionare le cose lì. E dato che non aveva un dottorato come la maggior parte degli altri nel suo reparto. Quindi in pratica si prendeva cura di questo genere di cose e ha imparato, ha imparato molto su queste cose, sui computer. Sì.
Jonathan: Sì. Ok, bene. Scusa, sono saltato, sono saltato dentro così. Dicevi quindi che giocherellavi, l'hai rotto un paio di volte, faceva parte della tua introduzione a... ai computer, all'hardware e a tutto quel genere di cose. E poi? Cosa è successo da quel momento in poi? Qual è stata la progressione?
Gabriel: Quindi penso che il passo successivo importante sia stato avere un mio computer, direi forse cinque o sei anni dopo, quando ero un giovane adulto. Ed ero sempre più interessato ai computer e ne avevo anche alcune parti a scuola. Ho iniziato a scrivere i compiti al computer e quel genere di cose. E già allora, in quei tempi c'erano Word e MS Word e quell'epoca. E direi che è iniziato un giorno: mio padre faceva sempre un lavoro di letteratura per la nostra chiesa. Siamo cresciuti in una chiesa molto piccola e avevamo questa letteratura che in pratica usavamo, e mio padre la digitalizzava o aiutava a digitalizzarla. All'inizio era un progetto secondario e i dati su di esso. È diventato in realtà il mio primo lavoro a tempo pieno, lavorando per... per il... fammi, potresti dare un'occhiata a quello? Lavorando per l'editore negli Stati Uniti che era responsabile di quella letteratura.
Jonathan: Mm.
Gabriel: In pratica mio padre mi chiese: sì, ho tutte queste macro. Le ho scritte in un EuroScript che in pratica si basava su una versione di Word, si può dire. Pre-Word, e ora voglio passare a Word e mi servono tutte le mie macro su Word. E io dissi più o meno: okay. Okay. Ed è così che ho iniziato a programmare in Word. Quindi Visual Basic for Applications: potevi prima registrare le macro. Potevi guardare il codice e vedere cosa faceva, e potevi migliorarlo, e in pratica migliorare la macro così tanto che riuscivano a... in pratica. Prima era tipo: metti il cursore qui, premi un tasto e poi fa qualcosa nelle righe successive. Alla fine era tipo: elaborava l'intero documento Word dall'alto verso il basso, completamente automatizzato. E in pratica è stato l'ingresso a un sacco di macro che ho scritto per quella... per quello. Ha creato un certo scalpore e la persona, le persone che avevano dato a mio padre questo tipo di incarico da fare nel tempo libero, dissero: Wow, è fantastico. Facciamone di più e automatizziamo sempre di più. Sì. Quindi è così che sono entrato...
Jonathan: ...lui, hai fatto risparmiare un sacco di tempo a tuo papà
Gabriel: Sì.
Jonathan: in quel senso, in giovane età,
Gabriel: Lo direi. E quindi scrittura di macro in Word, più tardi in Excel, ho scritto un sistema basato su Excel, per così dire, per un piccolo negozio. Era un piccolo negozio di alimenti biologici e così via, e in pratica annotavano tutti i prezzi e poi li calcolavano a mente o sulla carta. E all'inizio funzionava così. E io ho scritto un sistema per quello, con scansione di codici a barre e con una bilancia su cui potevi mettere... pesare qualcosa e ottenere lo scontrino, e poi scansionarlo quando andavi a pagare e quel genere di cose. Quindi in pratica tutto intorno a quello era basato su Excel. Quindi era... Sì, però lo farei decisamente in modo diverso. Excel era il database e allo stesso tempo anche la stampante. Quindi formattavo tutto in Excel, in un foglio Excel, e poi veniva stampato sulla stampante dello scontrino, quel genere di cose. Naturalmente sì, pensavo fosse l'inizio della mia carriera, per così dire.
Jonathan: quanti anni avevi quando, quando facevi tutto questo, e poi cosa ti ha portato da lì? Era prima dell'università, più o meno durante il liceo, e poi questo ha influenzato il tuo percorso professionale, per così dire? In modo piuttosto significativo.
Gabriel: Sì, era tutto prima dell'università. Quindi il sistema per il negozio l'ho fatto quando avevo più o meno 20, 21 anni, e ho fatto il servizio civile più o meno in quel periodo.
Jonathan: Eh?
Gabriel: La scrittura delle macro è stata quando avevo circa 16 anni. Nel frattempo ho anche scritto un sistema basato su Access per stampare etichette per lettere, così si potevano spedire. Quindi indirizzi e così via. E poi sono arrivati gli studi e, sorpresa, non ho studiato informatica.
Jonathan: Okay.
Gabriel: In realtà ho studiato per diventare insegnante di matematica e tedesco per le età... fammi calcolare. Età dai 10 ai 20 e 19. Quindi queste sono le età. Quindi quinta
Jonathan: quindi tu
Gabriel: fino alla tredicesima classe.
Jonathan: il tuo percorso professionale era... stava iniziando a dirigersi e... e su cosa si basava quella decisione, più o meno,
Gabriel: In realtà probabilmente avrei preso la strada della programmazione, forse spesso. Ma durante il servizio civile ho imparato molto più che cose tecniche, direi. Ero responsabile, o facevo parte di una piccola squadra che si occupava di una casa per anziani. Si può dire che c'erano tipo 5, 5, 6 stanze. E c'erano persone diverse e io ero responsabile soprattutto di una. Aveva forse 55, 60 anni e aveva l'Alzheimer. E questo mi fece una grande impressione perché, se a quell'età ti confronti con quel genere di cose, potresti dire: sì, aveva 60 anni e sembrava vecchia per un ventenne, ma mi era comunque chiaro che poteva succedere a chiunque e poteva succedere anche a me. E questo mi ha reso molto più interessato agli ambiti sociali della vita e
Jonathan: Affascinante.
Gabriel: percorsi professionali sociali. Ed è lì che in realtà... È fondamentalmente il motivo per cui allora scelsi di fare l'insegnante. Quindi volevo programmare, ero molto bravo a insegnare o ad aiutare i miei compagni di studi, soprattutto a scuola. E matematica. La matematica era il mio campo più forte e mi è sempre piaciuta. Sì, mi è sempre piaciuto aiutare gli altri. Migliorare le loro capacità, o mi è sempre piaciuto quando all'improvviso capivano. Quando vedevo nei loro occhi che ora avevano capito. Sì. E così, sono diventato davvero insegnante.
Jonathan: Oh, bello. E dimmi, hai menzionato questa cosa come il servizio, il tuo servizio civile, per così dire. In Germania, che è obbligatorio per ogni studente o ragazzo prima di andare all'università? Come, come si inserisce tutto questo nella cultura tedesca?
Gabriel: Allora era un'alternativa, un'alternativa al servizio militare. Quindi o facevi nove mesi, nove mesi di militare, oppure facevi 11 mesi di servizio civile. Questo era il requisito.
Jonathan: Okay.
Gabriel: Per gli uomini, non per le donne.
Jonathan: È ancora così, in Germania?
Gabriel: No, non è più così. No. No.
Jonathan: Okay. So che è così in Svizzera, che è il paese da cui viene mia moglie. Quindi era solo... Quella configurazione è ancora diffusa. Okay. Quindi ora tu, tu hai fatto matematica e hai studiato per diventare insegnante, e ovviamente la programmazione ha giocato un ruolo nella tua vita in modo piuttosto significativo. Quando è successo, quindi hai avuto un momento in cui hai pensato: in realtà sono, sono nell'insegnamento. Mi piace, ma non... c'è ancora questa parte della programmazione che... attiva e coinvolta. Come hanno, come hanno bilanciato le due cose, l'insegnamento e la programmazione?
Gabriel: Come sono tornato alla programmazione? Sì.
Jonathan: Sì
Gabriel: sì. Quindi durante il periodo in cui studiavo, fondamentalmente facevo due cose come lavori secondari. Una era insegnare. Insegnavo presso... un'agenzia di ripetizioni. Insegnavo all'università, ai più giovani, quindi in matematica, soprattutto al primo e secondo semestre. E allo stesso tempo avevo un lavoro in un'azienda tech. Erano per lo più... quindi era per lo più basato su Access.
Jonathan: mm.
Gabriel: Era un'azienda che faceva hardware e software per il car sharing e per aziende che avevano molte auto da noleggiare ai dipendenti. E sì, lì ho iniziato fondamentalmente come redattore di documenti, e poi hanno capito che sapevo anche programmare. Così mi sono spostato rapidamente nell'area della programmazione. Sì. E poi direi che le cose sono cambiate soprattutto durante le ultime parti del... che erano parti dello studio in cui dovevi andare, avevi l'obbligo di sei settimane a scuola e cosa, e una volta quattro settimane e così via. E penso. Mi è diventato chiaro e caro, anche parlando con insegnanti molto esperti e molto, molto... insegnanti davvero dedicati, molto dedicati. Che fondamentalmente i tempi sono cambiati molto. Gli studenti sono cambiati molto. Una insegnante mi ha detto... lei insegnava sempre in quinta e sesta classe, e in pratica mi diceva: cinque anni fa avevo un. Uno studente nella mia classe era un bambino problematico, nel senso che la scuola non era completa, c'erano divorzi o problemi a casa, e così via. E ora ne ha più del 50%,
Jonathan: Certo.
Gabriel: E questo era 10 o 15 anni fa. 2000. Sei o sette, dev'essere stato quindi 15 anni fa. E questo ha mostrato quanto sono cambiate le cose. Ed era anche molto chiaro per me che molti studenti oggigiorno non vogliono più imparare. E l'insegnante è sempre il, in pratica gli insegnanti sono sempre gli ultimi. La coda di tutto... Sì. I genitori, il preside e gli studenti. In pratica sono tutti i padroni dell'insegnante. Sì. L'insegnante è sempre il, uno degli ultimi, si potrebbe dire, o non so come lo diresti in inglese. È sempre quello che deve addossarsi tutte le responsabilità ma non ha diritti, in pratica.
Jonathan: autorità per, sì. Per agire. Sì.
Gabriel: Sì.
Jonathan: Quindi la tua decisione? Beh, scusa, ti sto interrompendo. Continua, continua
Gabriel: Quel tipo di, almeno mi ha fatto riflettere molto. E dopo che ebbi finito con l'università, sono semplicemente scivolato di nuovo nella programmazione perché un mio amico, era quello che aveva dato a mio padre quel lavoro di letteratura. In pratica mi chiese se potevo aiutarlo con un progetto. E quel progetto, che all'inizio doveva essere tipo un progetto di quattro o sei settimane, si è trasformato in due anni e mezzo o tre anni e mezzo. O tre anni e mezzo. Progetto
Jonathan: allo scope creep. Lo scope creep è stato reale
Gabriel: Sì. All'inizio mi ha chiesto di aiutarlo con qualcosa. E poi era sempre in contatto con una persona di questo editore nel... E l'editore diceva sempre: voglio una homepage pubblica per questo, con la letteratura. Voglio che la gente legga interi libri online.
Jonathan: Oh wow.
Gabriel: A un certo punto dissi al mio amico... lui stava parlando con lui al telefono e disse: potrei immaginare di farlo. Non ho davvero niente da fare adesso. E lui disse: Oh, lo fa Gabriel. Ed è così che è iniziato. Quindi
Jonathan: Wow.
Gabriel: Avevo un progetto, sì, e poi ho lavorato tre anni e mezzo a quel progetto. Portando migliaia di libri online, l'intera biblioteca di contenuti
Jonathan: Wow.
Gabriel: indice. Lingue diverse sono collegate tra loro. Sì, il sito web è ancora online. È egwwritings.org. Quindi se qualcuno è interessato a guardarlo, ha un nuovo design. Ora, ho visto intorno a dicembre dell'anno scorso, sono passati al nuovo design, ma il codice sotto è.
Jonathan: Tutto uguale.
Gabriel: Per lo più mio, perché riesco a vederlo, perché era per lo più basato su JavaScript.
Jonathan: Sì.
Gabriel: Il codice sembra molto, è organizzato diversamente in file e tutti gli stili diversi sono ancora gli stessi.
Jonathan: Dovrai mandarmi il link e lo pubblicheremo nelle note della trasmissione al momento giusto. Ma quindi ora tu, hai fatto tre anni e mezzo, cosa, tre anni di questo progetto. Hai messo, hai indicizzato tutta questa roba. Usavi JavaScript come linguaggio principale a quel punto? Qual era il tuo, come dire, il tuo setup tecnico? Si può dire su cosa ti concentravi?
Gabriel: Quindi è stato fondamentalmente il grande passo per allontanarmi dal software basato su Windows, che prima era Visual Basic e Visual Basic .NET. E ora era solo jQuery, JavaScript e PHP nel background.
Jonathan: Okay.
Gabriel: Avevamo anche un accordo: ogni volta che facevo ricerca, avevo una tariffa oraria più bassa,
Jonathan: Mm-hmm.
Gabriel: era un terzo di quando programmavo davvero. E sì, questo mi ha dato la libertà di imparare fondamentalmente sul lavoro. Sì.
Jonathan: Bene. Poi dove, dove. Exercism. E ora tu, tu fai molte cose. Ho ragione a dire che Go è una specie di caratteristica principale di quello che fai? Fai molto mentoring e sei stato, beh, sei stato coinvolto in Exercism su Go e in un certo senso hai aiutato quel lato delle cose. Quando, quando ha iniziato a entrare in scena e perché ti interessava? Vai pure.
Gabriel: Sì, nel 2016, è stato il mio primo lavoro dopo quel grande progetto. In realtà verso la fine di quello, ho iniziato a passare a Go. In quel lavoro ho fatto soprattutto un po' di PHP e Python. E Go è diventato molto rapidamente il mio linguaggio preferito, il mio linguaggio preferito perché ha quella semplicità. In pratica cerca di. Da quel mondo folle di sempre più funzionalità e linguaggi, renderli sempre più complessi e complicati e con molto più overhead per lo sviluppatore, perché deve scegliere. In che modo farlo. E deve anche capire tutti gli altri modi in cui lo fanno gli altri. Quindi tutto questo overhead e Go all'improvviso ha portato questa quiete e questa. Di semplificare di nuovo. E questo è diventato molto rapidamente la mia cosa numero uno, cioè costruire un prototipo in quell'azienda tipo mezzo anno prima che me ne andassi. Perché volevano passare a Go e all'inizio, ovviamente, c'erano queste cose iniziali in cui inciampi in cose che non puoi fare nel linguaggio, e poi capisci perché non ha senso farlo in quel modo, o perché è meglio farlo. Ero davvero interessato a imparare come fare queste cose. Ed è così che ho iniziato ad ascoltare il podcast Go Time. È di Changelog.
Jonathan: Okay.
Gabriel: E Katrina Owen è stata su quel podcast, credo due volte. Almeno due volte l'ho sentita, penso. Sì. Ed è così che ho iniziato a interessarmi. Penso che nel 2017 mi sia registrato a Exercism. Ne sono certo al... per cento, dovrei controllare.
Jonathan: Immagino. Sarebbe giusto?
Gabriel: Sì, penso che potesse essere ancora la versione uno, perché all'inizio non c'era... non ricevevo davvero... non ricevevo alcun feedback. Ho fatto alcuni esercizi, ma non ho mai ricevuto feedback e potevo dare feedback agli altri, e l'ho fatto. E, ma non ho mai ricevuto feedback. Quindi non c'era, nessun processo in atto per ricevere davvero un feedback. Ed era: se vuoi fallo, e se non vuoi, lascia perdere. Per così dire. Sì. Penso che fosse la versione uno, giusto?
Jonathan: Immagino di sì. Voglio dire, penso che Ci siano stati parecchi cambiamenti dalla versione uno alla versione tre.
Gabriel: Sì. Sì.
Jonathan: la uno aveva poco feedback. La versione due richiedeva quantità estreme di feedback, e poi la versione tre si è collocata più o meno da qualche parte. Nel mezzo, un po', forse sul lato, sul lato minore delle cose, ma no. E, e tu, tu sei stato coinvolto nella costruzione della versione tre e come, come hai fatto, più o meno... Sì. Qual è stato il tuo coinvolgimento lì? Voglio dire, non mi è del tutto chiaro, ma mi piacerebbe capire.
Gabriel: Forse un, un passo indietro, se posso. Quindi in pratica sono tornato dopo la seconda intervista. Ho sentito Katrina su Exercism,
Jonathan: Okay.
Gabriel: È stato allora che esisteva la versione due. E quando c'era molto lavoro e c'era questo, tanto feedback necessario. Mi sono buttato dentro e mi piaceva davvero dare quel feedback. E,
Jonathan: Mm-hmm.
Gabriel: In pratica, ho iniziato a pensare a come poterlo rendere più veloce. Sì. Perché ho capito rapidamente che, soprattutto sui primi esercizi, era chiaro che avrei dato la stessa risposta ancora e ancora e ancora.
Jonathan: Sì.
Gabriel: E d'altra parte, naturalmente, a volte, questi due problemi e a volte c'era questo problema e un altro. Quindi in pratica ho iniziato a ottimizzare questo. Ho iniziato a scrivere un piccolo programma Go, che usa l'analisi statica perché volevo entrare nell'analisi. Non l'avevo mai fatto prima. Volevo conoscerla. Quindi ero comunque interessato a provarla e sembrava una buona idea. Perché era comunque codice molto comune o molto simile tutto il tempo. Le soluzioni di un esercizio, soprattutto le prime, sono molto simili. Quindi è così che sono entrato nell'analisi statica e cercavo diversi pattern nel codice e poi aggiungevo automaticamente blocchi di risposte o blocchi predefiniti alla risposta. In pratica ho iniziato in locale e così riuscivo a farne circa 100 a settimana, 100-120 a settimana. E non facevo nemmeno nulla a tempo pieno. Era accanto al mio lavoro. E sì. E poi ha iniziato a... Pitfield credo sia stato il primo. John Arun, credo sia il suo vero nome. È stato tipo il primo a dire: Wow, è fantastico. È super. Ed è così che in pratica il lavoro che facevo ha iniziato a farsi conoscere, con l'analisi statica. E penso che sia stata una gran parte della versione tre, perché abbiamo iniziato a pensare a come ridurre fondamentalmente il lavoro di un mentore avendo questi strumenti, questa automatica, questa analisi statica o gli strumenti che in pratica controllano il codice automaticamente e danno feedback automaticamente. Anche completamente automaticamente, senza che un mentore sia coinvolto o debba esserlo. E perché i mentori, era abbastanza chiaro che abbiamo mentori e non sono abbastanza per il lavoro. Avevamo lo strumento di inversione e abbiamo anche visto che molti mentori si stavano bruciando, sparivano e sì, era semplicemente troppo. Troppo per molti mentori. Sì. Il lavoro era tale che avevano 500 o più soluzioni da seguire e a volte c'erano tempi di attesa di un mese o più. E naturalmente erano condizioni in cui anche gli studenti se ne andavano a un certo punto. Sì.
Jonathan: Hmm. È divertente perché penso che Jeremy dicesse l'altro giorno che di tutte, di tutte le soluzioni che vengono inviate, qualcosa come il 75% sono completamente uniche, il che trovo anch'io affascinante. Voglio dire, vai su un esercizio tipo Hello World, ovviamente è molto semplice. Sicuramente sarà uno schema standard che viene implementato regolarmente, e lui ha detto: è gente che prova ogni sorta di cose diverse. Ed è divertente come si sa che c'è questo incrocio, perché man mano che la programmazione diventa più popolare e sempre più persone si mettono a sviluppare e programmare, ti chiedi: beh, dove inizierà quell'automazione? Ad annullare il ruolo dello sviluppatore. Io, io mi chiedo, non, non so se succederà. Penso che ci sia ancora troppo necessario, ma in termini di, sai, non so quali siano i tuoi pensieri al riguardo, ma mi sembra che con Exercism ultimamente ci sia una spinta enorme al mentoring, che è davvero affascinante perché, come dicevi, prende tutte quelle lezioni ripetitive che devi continuare a dare e le mette in una forma gestibile per le persone, in modo che riescano a gestirle. Allo stesso tempo, si arriva al punto che in realtà hai bisogno di un'interazione umana, di un essere umano che stia davvero con il contenuto. Quindi non so se hai idee al riguardo, ma trovo che sia uno spazio interessante a questo punto.
Gabriel: Sì, non penso che gli sviluppatori verranno sostituiti molto presto. Ci vorrà ancora parecchio tempo. Nello sviluppo, nelle applicazioni in generale, nel mentoring, penso. Penso che l'analisi statica e anche il mentoring automatizzato e il mentoring automatizzato in generale su Exercism possano essere un grande aiuto. Ma i mentori servono per il mentoring vero, direi. Sì. Per esempio, ho una persona che seguo, tipo ogni due o tre mesi facciamo una call, a volte di più. E la seguo nella sua carriera, per così dire. Sì. E anche tecnicamente, molto profondamente tecnico, ma è un modo completamente diverso di fare mentoring rispetto a guardare solo la soluzione e dirti cosa puoi migliorare. E penso che sia questo il motivo per cui i mentori che esistono servono ancora, e serviranno sicuramente, e penso che sia qualcosa su cui possiamo concentrarci. D'altra parte penso penso che non possiamo sostituire completamente i mentori sulle, sulle soluzioni, e non penso che dovremmo. Possiamo automatizzare molte cose, ma un mentore è comunque qualcuno che può indicare la direzione. Ora può vedere i problemi con cui stai lottando e può dirti: capisci questo e questo, non solo: devi migliorare il tuo codice in questo modo.
Jonathan: Sì. Sì.
Gabriel: E ad essere onesto, mi piacerebbe avere più mentoring di nuovo su Exercism. Quindi mi chiedo se dovremmo
Jonathan: interazione faccia a faccia, intendi?
Gabriel: Sì. Mi chiedo se dovremmo. Quindi avevamo questo percorso prima: 10 esercizi e almeno erano 10. Che dovevi attraversare e potevi procedere solo quando era stato seguito da un mentore.
Jonathan: Sì.
Gabriel: E penso che con l'automazione che abbiamo ora in atto, potremmo effettivamente riattivarlo. O forse non ora, ma in futuro. E penso che mi piacerebbe.
Jonathan: potremmo decisamente, dovremmo parlarne in una call della community, perché penso che sarebbe bello riportare, riportare questo al centro dell'attenzione. Allora Gabriel, una delle domande che facciamo spesso e, e non è quella di cui ti ho parlato prima, ma io. Una delle domande che mi piace fare perché è sempre molto interessante e diversa è: la programmazione è stata una specie di click per te? La gente direbbe che c'è stata un'esperienza in cui all'improvviso tutto aveva senso. Quindi uso spesso la storia per me. Faccio un esempio di scuola, quando studiavo chimica e nel Regno Unito dove andavo a scuola. Hai questi esami a... E quindi tutto porta a quegli esami per tre anni prima di quegli esami. Quindi hai tre anni di studio e questo culmina nel tuo esame finale. E questo in tutte le materie. E uno degli argomenti ovviamente era chimica. E ho passato circa tre anni senza avere idea della chimica. Proprio non riuscivo, non riuscivo a capirla, poi una settimana prima dell'esame, è scattato qualcosa, l'espressione tipo: la cosa aveva semplicemente senso. E io ero tipo: Oddio. Posso ricavare tutto dalla tavola periodica. Se conosco i numeri sulla tavola periodica, posso capire questo, quello e quell'altro. E le cose sono diventate davvero semplici ed è stato come... Hai avuto un momento così per la programmazione o era qualcosa che semplicemente... Hai trovato che avesse naturalmente senso per te, e quand'è stato quel momento, se è rilevante?
Gabriel: Non sono sicuro di aver avuto quel momento preciso. Quindi penso che sia stato molto utile avere quella registrazione delle macro e guardare il codice molto presto con Visual Basic for Applications. Non sono sicuro se esista ancora, se ci sia ancora qualcosa del genere oggi. Penso che si possa ancora. Word e farlo. Ma non capita molto spesso di avere qualcosa del genere, dove puoi registrare e poi guardare il codice e imparare in quel modo. Penso che per me sia stato molto più facile perché all'inizio facevo molta fatica. Penso che un, un tipo di momento in cui direi: okay, non che avessi capito le cose, ma che mi sono reso conto di base. Se stavo effettivamente facendo le cose bene o male, è stato quando sono entrato in quell'azienda, quando ero studente, è stata fondamentalmente la prima volta che ho lavorato. Lavoravo insieme ad altri sviluppatori. Prima di allora ero sempre da solo e in pratica dovevo fare tutto. Ed era sempre una grande domanda. Di solito lo fai così? Sembra strano. Sembra complicato. Sembra che funzioni, ma è corretto? E questo tipo di risposta è arrivata quando sono entrato in quell'azienda e ho iniziato ad andare lì e. Sicuramente c'era molto da imparare e ho imparato molto, per esempio, i recordset di Access. Non li avevo mai davvero capiti prima. Ci lavoravo, ma
Jonathan: Mm.
Gabriel: sì, funzionava
Jonathan: Sì. Qualcosa
Gabriel: Poi ho davvero capito, ho iniziato a capirli. Quindi forse è stato qualcosa che per me è scattato perché avevo una collega e lei me li ha spiegati, ed è stato davvero... è scattato un giorno, ho capito. Come funzionano e
Jonathan: Mm-hmm.
Gabriel: come dovrebbero funzionare e come usarli correttamente e così via. Quindi sì, forse è stato uno di quei momenti. Ma penso che quei momenti arrivino molto spesso nel nostro lavoro. Non penso che ci sia quel momento unico, forse quello è stato un punto, un punto iniziale. Ma anche per Go, ci sono così tanti posti in cui può scattare per me, dove capisco. Perché qualcosa è fatto in quel modo e come dovrebbe essere usato. E, per esempio, il context. . Sì. Per esempio, Context.
Jonathan: Sì.
Gabriel: Sì. Il, per esempio, il context sono stati aggiunti, non sono sicuro, uno o sei o sette forse. Più o meno in quel periodo, non li ho. Guardati. Ad essere onesto, all'inizio non ne avevo davvero bisogno. E poi ne ho visto uno. Era tipo un meetup e qualcuno ha presentato il context, come si usavano, come... e così via. E ho pensato
Jonathan: Hmm.
Gabriel: dovrei guardare. Ma ci sono voluti ancora qualche mese prima che li guardassi davvero e capissi perché ci sono. E per esempio il canale chiuso, non so se sei a conoscenza di molte persone che ancora propongono su internet di chiudere una goroutine con un canale chiuso e non dovresti. È per questo che esiste il context. Sì. Usi un context, annulli il context, e poi puoi chiudere la goroutine con quello. Se usi un canale chiuso, in pratica stai facendo manualmente ciò che un context fa internamente, e ci sono così tante armi a doppio taglio da evitare, così tanti problemi. Da evitare che di solito la gente lo fa nel modo sbagliato.
Jonathan: Sono sicuro che hai fatto una live, hai fatto una diretta streaming e hai menzionato qualcosa al riguardo. Io, io, penso di ricordare dove hai detto, sai, usa semplicemente context perché
Gabriel: Sì.
Jonathan: ha molto senso.
Gabriel: Ricordo di averlo menzionato.
Jonathan: Sì. Ma no, quindi, quindi in termini di, tipo, quando hai fatto mentoring in passato, quali sono alcune delle... Riesci a identificare. Azioni o comportamenti o cose che le persone che capiscono le cose e in fretta, riesci a dire cosa fanno che permette loro di posizionarsi per imparare rapidamente o più efficacemente? O è molto dei mentori che, o delle persone che hai seguito, che sono semplicemente coinvolte in quel modo per natura? O ci sono persone di cui dici: Wow, fanno cose, fanno cose che permettono loro di accelerare il loro.
Gabriel: Non sono sicuro di poterlo dire di altre persone. Posso decisamente dirlo di me stesso. Ho imparato, credo, dai miei genitori. Hanno imparato da soli molte cose ed è quello che ho imparato anch'io da loro, a imparare da solo le cose. Quindi ho imparato a programmare. Completamente da solo. All'inizio c'era mio padre. C'erano alcune cose a scuola. La maggior parte del tempo, nelle classi più avanzate a scuola, io ero in realtà, o noi eravamo, quasi tutti noi eravamo comunque meglio dell'insegnante. Quindi non c'era davvero apprendimento. C'era piuttosto una specie di apprendimento reciproco. Ma
Jonathan: Sì.
Gabriel: In generale, ho imparato tutto da solo. E questo è qualcosa che secondo me serve nella programmazione. Perché devi costantemente scavare in cose che non hai mai visto prima. Non le conosci, devi documentarti. Come si dice? Questa. Capacità. Sì. Questa capacità di riuscire a scavare in qualcosa e impararla da solo, penso che sia fondamentale nella programmazione per imparare. E naturalmente puoi imparare molto più velocemente se trovi qualcuno che te ne parla. Quindi non voglio dire che non dovresti cercare un mentore, che non dovresti andare su Exercism e così via. Questo ti aiuta a crescere molto più velocemente, ma comunque questo è. Questo è quello che direi.
Jonathan: mi sembra che il tuo apprendimento sia passato dal tentare praticamente di risolvere problemi. Quindi che si trattasse di creare macro per rendere qualcosa più efficiente, mi colpisce che sia stato come un tema centrale che si è ripetuto nella tua vita in termini di apprendimento, il che penso si allinei molto. Generalmente anche con quello che Exercism cerca di fare in termini di aiutare le persone a fare cose praticamente
Gabriel: Sì. Da percorrerlo.
Jonathan: Quindi sì. È davvero bello. Allora, Gabriel, non ci resta molto tempo, ma ho due ultime... beh, non domande per te. Una è una domanda, e ti chiederò di condividere un'opinione, e poi l'altra sarà, beh, è una specie di opinione che potresti. Ti chiederò di dare un consiglio alla community per qualcosa che devono provare questa settimana. Ma la prima cosa è che abbiamo parlato con molti dei nostri precedenti intervistati, e se hai ascoltato questo podcast o questa diretta streaming per un po' di tempo, saprai che facciamo una grande domanda di solito verso la fine della, della nostra diretta. E la domanda è: qual è la collina su cui saresti disposto a morire nel settore tech? Quindi qual è l'unica opinione che hai molto ferma, che vorresti sostenere e. Tieni presente che devi dare una buona ragione per questo. Non puoi semplicemente dire: questa è la mia opinione e basta. Devi essere in grado di difenderti in quel senso. Ma quale sarebbe quell'opinione se... E può essere tanto, tanto impegnativa o intensa o banale quanto vuoi. Quindi quale sarebbe?
Gabriel: Direi che era un proverbio. Abbiamo un detto, o qualcuno ha detto nella comunità Go, ed è: «Il codice noioso è meglio del codice intelligente».
Jonathan: Mi piace. Che cosa significa?
Gabriel: Che cosa significa? Sì, in pratica è, riassume gran parte della filosofia di Go intorno alla semplicità e alla leggibilità. Quindi se nel codice Go pensi: Wow, è intelligente, in realtà è codice scarso. Anche se chi l'ha fatto era molto intelligente e l'ha fatto in modo molto intelligente. E a volte mi sembra che se segui davvero la semplicità e gli idiomi di Go, non hai davvero codice in tutta la tua codebase che vuoi indicare o che puoi indicare. Guarda quel codice, quanto è bello, perché tutto il tuo codice è in realtà noioso e molto semplice, e chiunque guarderà il tuo codice dirà: cosa ha di speciale? Sì, ma il punto è che sei arrivato alla semplicità perché sei un buon programmatore ed è un processo iterativo, e il codice complicato, scrivere codice complicato è molto facile, scrivere codice semplice è... Perché comunque, prima devi rendere il problema semplice nella tua mente, poi devi scrivere il codice correttamente, e poi devi iterarlo e renderlo semplice. E questo è un processo molto più lungo e richiede sviluppatori molto migliori rispetto a scrivere semplicemente codice complicato, che quando lo guardi è difficile da capire. È difficile da leggere, difficile da mantenere e difficile da cambiare.
Jonathan: È la, è questa costante questione di compromessi, no? Quindi io sono, sono abbastanza giovane nel settore tech, tre anni, e non vengo da una prospettiva di sviluppo. Vengo più dal prodotto, dal lato prodotto delle cose. Dalla prospettiva più business. E se posso, si potrebbe dire. E una delle cose davvero interessanti era che diventava sempre più evidente che si tratta tutto di compromessi. Quindi dici, è come se il compromesso fosse codice semplice contro codice complicato, mentre il codice complicato potrebbe semplicemente essere più ingombrante e insidioso in seguito. Il codice semplice potrebbe richiedere più tempo e più energia e sforzo all'inizio. E questo è il compromesso che viene costantemente fatto. Quindi quello è stato uno dei... non so quali siano i tuoi pensieri al riguardo, ma mi colpisce che, che davvero quel lato della semplicità, perché ricordo che mia mamma aveva, aveva un amico all'università e scriveva sempre e solo temi da due pagine per i suoi compiti. Perché riusciva a condensare tutto in due pagine, e prendeva il massimo dei voti. Quindi penso che si allinei con tutto il concetto di semplicità, e penso che scrivere codice semplice sia davvero difficile perché richiede pensiero chiaro, non solo programmazione. Quindi penso che sia una collina degna, e penso che tu l'abbia iterata. Ne hai parlato davvero bene. Bene. Allora Gabriel, ultima domanda di questa settimana. E ora puoi dare un po' di consigli alla community di Exercism. E può essere qualsiasi cosa. Possono essere consigli sulla salute, sulla dieta. È la tua occasione per condividere un consiglio che daresti alla community e può essere qualsiasi cosa tu voglia. Quindi quale sarebbe la tua raccomandazione alla community di Exercism questa settimana? Qual è l'unica cosa che devono provare o fare, dal tuo per...
Gabriel: Oh, questa è difficile. Okay, visto che dici che può essere qualsiasi cosa, posso darti due cose?
Jonathan: Ti lascio, ti lascio fare due
Gabriel: Okay. Una, una raccomandazione. Quindi in realtà sono vegetariano. Sono cresciuto vegetariano. Non ho mai mangiato carne, e in realtà sono cresciuto vegano, per la maggior parte, per la maggior parte della mia infanzia e giovinezza. Quindi provate una settimana senza latticini. E quindi questa sarebbe una. Quindi noi. E un'altra raccomandazione sarebbe, non sono sicuro se si può fare in una settimana, ma se sei un buon sviluppatore, puoi, è molto interessante e molto utile provare a costruire una memoria condivisa, condivisa tra più servizi, stesso servizio, memoria condivisa. Provate a implementare una memoria condivisa usando il protocollo Raft. Potete usare una libreria. Non dovete implementare Raft stesso, ma
Jonathan: Raft Dovrai darmi, dovrai mandarmi il link così posso pubblicarlo. Quindi quella è la sfida di Gabriel... Beh, forse dovremmo chiamarla la sfida di Gabriel per la settimana. Forse non tanto raccomandazione. Forse dobbiamo
Gabriel: Sì. È più qualcosa da provare.
Jonathan: Tu mandi, tu lanci una sfida. Potrebbe essere, potrebbe essere divertente, ma bene. Quindi settimana senza prodotti a base di carne. Vediamo come va e costruisci un server di memoria condivisa. Cosa diresti? Servizio, condivisa
Gabriel: Sì, potresti chiamarlo il key-value in memoria
Jonathan: Okay.
Gabriel: Quindi più servizi, un database o un servizio. Sì.
Jonathan: Bene. Quello è
Gabriel: Perché ti insegna molto su come funzionano i database. Sì. Sotto. Quindi soprattutto quelli modello che sono condivisi, tipo... sì, non sono sicuro. Sì. Cassandra slash ScyllaDB, non sono sicuro se avete ScyllaDB. È una specie di Cassandra, ma in C++ e ora stanno passando al protocollo Raft. Oppure è un database key-value. Quello condiviso è un database, no, non è un database. È gestione di Redis. Sì, Badger di Dgraph. Quindi quello, penso che usi anche Raft sotto il cofano per distribuire i dati. Non posso dirlo con certezza, dovrei controllare di nuovo. Ma ci sono molti database che lo usano. Sistema distribuito. Quindi il sistema distribuito è fondamentalmente una grande sfida, direi, dei nostri tempi moderni. Siamo nel processo di risolverlo, ma ci sono ancora molte sfide da superare e sì, è sempre bello riuscire a pensare in quella direzione, perché se ci riesci, allora apre molte possibilità.
Jonathan: Hmm.
Gabriel: Se ti serve. Nella mia ultima azienda stavo effettivamente andando in quella direzione, avere una memoria condivisa tra più servizi allo stesso tempo. Sì.
Jonathan: Forse, forse dobbiamo organizzarlo come una master class. Daremo alle persone un paio di settimane per provarci. poi Gabriel,
Gabriel: questa è la master
Jonathan: Sì,
Gabriel: hai finito con Exercism e hai fatto tutti gli esercizi,
Jonathan: Questa è quella grande. Quella grande. Collega tutto, collega tutto insieme. Gabriel, grazie mille per il tuo tempo. È stato un vero piacere chiacchierare con te questa sera. Se vuoi restare ancora un po' dopo, dopo che finiamo la registrazione, solo un attimo, ma volevo solo dire un enorme grazie e apprezzo davvero tutto quello che metti in Exercism e non solo per noi, ma tutto il mentoring che fai anche più lontano e aiutare le persone a scrivere codice migliore. Sono sicuro che sia enormemente apprezzato ovunque. Quindi grazie per il tuo tempo e. Contattate Gabriel. Se siete su Exercism, mandategli un messaggio, chiedete un po' di mentoring e sono sicuro che vi troverete bene con Gabriel. Bene.
Gabriel: Grazie mille.
Jonathan: finiamo la registrazione. Sì, no, grazie per, grazie per essere stato con noi e ci vediamo presto su qualche forma di piattaforma da qualche parte
Gabriel: Grazie.
Ascolta, impara e lasciati ispirare dai membri della nostra community.