In questa Community Story, Franziska e Jonathan parlano di dinamiche di squadra, di come persone diverse in un'azienda affrontano la collaborazione e di come posizionarti per imparare a diventare programmatore.
Jonathan: Ciao e benvenuti all'Exercism Podcast. Mi chiamo Jonathan e oggi ho il privilegio di fare da host per voi. Con me c'è Franziska, una dei nostri maintainer dei track di Go e JavaScript. È un grande privilegio avere Franziska come parte di Exercism, e collabora con noi da diversi anni. Quindi, se frequentate da un po', potreste esservi imbattuti in Franziska. Magari nelle coorti di apprendimento o nei track di Go e JavaScript. Allora Franziska, un caloroso benvenuto. Grazie mille per essere qui con noi. Vado dritto al punto e ti chiedo come sei arrivata dove sei arrivata?
Franziska: Sì. Ok. Sono Franziska. Su internet sono June, o una June Dev. Al momento vivo vicino a Francoforte, in Germania, appena fuori dal confine della città, in un piccolo sobborgo. E da poco ho iniziato un nuovo lavoro da Atlassian. Atlassian è l'azienda dietro a un sacco di strumenti amati o odiati come Trello, Jira, Confluence. Sì, e quello che faccio lì è sviluppare un nuovo strumento per aiutare i product manager nel loro lavoro. Perché Jira è incentrato sugli sviluppatori, ma non è adatto a quello che devono fare i product manager, dare priorità alle cose e così via. Quindi stiamo costruendo qualcosa apposta per loro. Mi piace Go come linguaggio. Mi piace davvero. E il backend è costruito con Go. Quindi quando ho visto l'annuncio di lavoro ho pensato: ehi, è bello che stiano facendo questo. Ho fatto domanda e ho ottenuto il lavoro. Finora sono passati solo 30 giorni, non so, ma sì, è stata una bella esperienza. Poi, da bambina, ero sempre interessata alle cose di tecnologia e alle scienze naturali, alla fantascienza, ero una grande fan di Star Trek, tutte quelle cose lì. Ho scoperto di essere brava in matematica e fisica a scuola. All'epoca un sacco di gente studiava informatica e ci dicevano sempre di non studiare quello che studiavano gli altri, perché poi ci sarebbero stati troppi di quei tipi in giro, e io pensavo: ok, forse non dovrei fare informatica, perché ce ne saranno troppi. Comunque, ho pensato: ok, facciamo qualcosa di simile. Così ho finito per studiare fisica, che a scuola mi piaceva molto. E informatica l'avevo più come materia secondaria. Quindi ho fatto qualche corso, ma non tanti quanti gli altri. Ho scoperto che arrivi a un punto in cui devi pensare: ok, cosa faccio per il resto della mia vita, no? Come guadagno i miei soldi facendo qualcosa che mi piace davvero fare. E mi sono resa conto che la parte di programmazione era in realtà quella che mi piaceva di più tra le cose che ho fatto all'università, e che ero brava. Volevo farne di più. Ed è anche qualcosa che paga le bollette. Quindi sì, ho pensato: ok, come posso trovare un lavoro in questo campo senza avere, a quel punto, una classica laurea in informatica. L'altra cosa era che a quel punto non volevo diventare una sviluppatrice C, una sviluppatrice Java, quel genere di roba vecchio stile. Codice backend di banca, da qualche parte. Sì, quindi ho pensato: ok, come posso imparare le cose moderne, il web, internet. Voglio costruire qualcosa per quello. E poi un amico mi ha detto che esistono i boot camp di sviluppo web, dove puoi andare da qualche parte per tre mesi e ti insegnano le cose nuove e fighe. Sì. Così ho deciso che volevo farlo. E poi probabilmente da lì avrei avuto un punto di partenza migliore per trovare un lavoro. E all'epoca qui in Germania non ne avevano nessuno, di quei corsi. Sì. C'erano, cioè: o potevi andare all'università per anni e anni, no? Oppure ci sono dei posti dove puoi lavorare un po' e studiare allo stesso tempo, ma anche lì programmi enormi, tipo anni e anni di formazione. E poi, quanto a boot camp, c'erano solo cose tipo acceleratori di startup. Dove impari un po' di codice, ma poi anche cose di management, economia e così via. Quindi per me non era adatto. Sì, così mi sono guardata un po' intorno e poi ho trovato che ce n'era uno buono a Londra, con le materie che volevo imparare.
Jonathan: È quello che fa girare
Franziska: È lì che succede. Sì, esatto. Esatto. Dove succedono le cose nuove e fighe. Sì, ho trovato questo boot camp, e ci sono andata. È stata davvero un'esperienza fantastica. E abbiamo fatto Node.js per il backend. E poi sono tornata a Francoforte e ho trovato lavoro come sviluppatrice Node. E l'azienda era piuttosto figa e la tecnologia davvero figa, e mi sono buttata su tutto molto in fretta, ed è stato molto divertente, ma sono stata un po' sfortunata con il mio team: c'erano un sacco di colleghi con l'ego grosso e macho. Ed era tipo, se avevi una riunione, vinceva l'argomento di chi parlava più forte. E quello non è un bel team con cui lavorare
Jonathan: È un tema piuttosto comune: le persone si mettono a programmare e poi gli aspetti periferici, quelli di squadra, sono sempre la cosa che nessuno si aspetta che sia il problema o la sfida. Quindi sembra una cosa abbastanza comune. Scusa.
Franziska: Sì. Sì. Assolutamente. E all'inizio sopravvaluti la parte tecnica. Pensi: oh, questo lavoro ha esattamente la tecnologia che voglio fare, quindi andrà bene. Ma in realtà la parte del team è quasi più importante della tecnologia esatta che usi. Sì. Quindi poi, dopo due anni, un amico era anche CTO in un'altra azienda qui a Francoforte. Ha detto che anche loro volevano trasformare il loro stack tecnologico e volevano costruire qualcosa di nuovo, ma non volevano usare Node.js. Volevano usare Go. Hanno deciso così per qualche motivo, e lui mi ha detto che potevo unirmi a loro. Ma avresti dovuto imparare Go, naturalmente. E io ho detto: se non ti dispiace che all'inizio mi prenda un po' di tempo per impararlo, ci sto. Ho dato un'occhiata al linguaggio e sembrava tutto figo. Sì, ho cambiato azienda. E nel nuovo posto il team era davvero figo. Lì funzionava davvero così: se discutevi con il CEO e il tuo argomento era migliore, veniva notato. E le persone reagivano a quello. Ed era davvero bello lavorarci, e le persone erano molto interessanti e così via. Così sono rimasta lì cinque anni. Ho costruito molti servizi di growth e anche molta scrittura, scrivendo concetti per aiutare altri sviluppatori a fare onboarding su Go, e ho fatto anche un po' di front end e così via. Sì, ma dopo cinque anni cerchi anche una nuova sfida, e poi quello che mi ha spinta a cercare un nuovo lavoro è stata la situazione del Covid. Ho notato che lavoravo comunque da casa, no? E magari andavo in ufficio tipo una volta a settimana. Così ho pensato che là fuori ci sono un sacco di lavori completamente remoti. Magari posso trovare qualcosa di davvero figo in un'azienda più grande. Se comunque lavoro da casa, potrei anche lavorare per quell'azienda più grande e più figa, no? Sì, quindi è stato allora, mentre lavoravo, che ho trovato questo lavoro da Atlassian.
Jonathan: Quindi credo che la mia domanda fosse: l'intera pandemia ti ha in qualche modo aperta all'idea che, oh, magari c'è di più di Francoforte e della scena delle startup di Francoforte? Perché stavo per chiederti: com'era la scena delle startup di Francoforte come ambiente?
Franziska: Sì, quindi solo sul punto Covid: prima di tutto, quello che il Covid mi ha aperto è stata l'idea di lavorare completamente da remoto. Perché prima ero sempre così, tipo andavo in ufficio. Mi piace vedere le persone di persona, come strutturo la mia giornata e così via. Ma poi, dopo aver lavorato principalmente a distanza per due anni, ho capito che va bene. Riesco a gestirlo. Ho mia figlia, devo comunque uscire di casa in continuazione e così via. Quindi adesso ho abbastanza struttura nella mia giornata. Quindi questa è una cosa che la pandemia un po' mi ha mostrato, e poi mi ha aperta all'idea di guardare altrove. Quanto a Francoforte, qui succedono un sacco di cose, tech e startup, ma è tanto. Come puoi immaginare, c'è molta focalizzazione sul banking, quindi un sacco di fintech e così via. E non è che... cioè, in passato ho lavorato nel FinTech, ma non è una cosa per cui strabocco di passione come tema. Sì, quindi era sempre un po'... no, e inoltre non ci sono nemmeno molti sviluppatori Go in giro. Sì, non c'era niente che mi trattenesse a Francoforte specificamente, o nella scena di Francoforte, più di tanto. Sì, quindi
Jonathan: No, certo. E ci sono linguaggi specifici su cui diresti che Francoforte si concentra? Ovviamente, diciamo il FinTech, tutto quello. Il linguaggio che presumibilmente lo sostiene, è quello su cui c'è più focus? Quindi ti senti un po' una rarità come sviluppatrice Go a Francoforte? O sta aumentando? Cioè, come ti sembra?
Franziska: Sì, al momento è difficile dire se sta aumentando o no, perché non c'erano poi tanti meetup e cose del genere per via del Covid, no? Quindi è difficile dire se al momento, nel tempo, vengono più persone ai meetup. Sì, penso che ci sia molto di più in movimento, tipo nell'ambiente Java, per esempio. Sì, quindi è un po'... è un po' difficile dire come stanno esattamente le cose, ma per esempio con JavaScript di solito non è così difficile mettere insieme una community, perché tutti hanno un po' di front end da qualche parte, no? Quindi di solito c'era più movimento in questo mondo del front end che nel backend.
Jonathan: E, presumibilmente, quando hai iniziato a programmare e sei andata al boot camp, avrai avuto anche una parte di front end. Ci hai dato un'occhiata e ora sei più concentrata sul back end. Cioè, perché preferisci il back end al front end? O è solo un'assunzione che ho fatto io?
Franziska: No, è decisamente... è una cosa che ho capito durante il boot camp: che sono più portata per la parte di backend, e ci sono diversi aspetti in merito. Prima di tutto, io non sono una persona da design, quindi se fai front end di solito devi anche prendere delle decisioni da sola. A volte: come dovrebbe apparire? Cosa posso fare qui? Per migliorarlo, scrivere un po' di CSS e così via. E per me è super difficile prendere queste decisioni. Certo, se lo fai nel mondo reale ti arrivano anche i design. Ma sì, semplicemente non ho così tanto occhio per le cose. E ho visto che gli sviluppatori front end che ce l'hanno, quell'occhio, e che sanno farlo, sono più efficaci nello svolgere il lavoro. Quindi questa era una cosa per cui ho pensato che non fa proprio per me. E l'altra parte era anche che al momento lo spazio del front end è davvero super complesso. I framework che ci sono in giro, la maggior parte di quelli usati comunemente, sono davvero difficili. Quindi in un certo senso anche il backend attuale è un po' più facile. È più difficile nel senso che è più difficile da visualizzare, no? Non vedi il risultato finale come guardando lo schermo: questo è il tuo risultato, come nel front end. Ma, per la complessità della tecnologia coinvolta, al momento lo trovo piuttosto più facile di quello che succede nello spazio del front end. Quindi per me, a un certo punto della mia carriera, voglio decisamente tornare a fare anche front end. Ma aspetto che arrivi un framework migliore. E poi, una volta che tutto il casino che c'è in giro si sarà calmato e ci sarà qualcosa di meglio, allora tornerò e diventerò una front end
Jonathan: Potrei aspettare che decidi tu quando arriva quel framework, e poi mi unisco a te, perché guardando i framework costruiti su JavaScript... e io sono nuovo. In ogni senso della parola. Al momento sto cercando di imparare Go e mi sto divertendo. Ma già solo i concetti e il modello mentale che devi avere, è un mondo nuovo di zecca a sé stante. E poi volevo chiederti come hai colmato il divario, dall'imparare JavaScript quando hai iniziato a programmare fino a imparare Go. Perché lo fai sembrare un processo piuttosto semplice: ok, da JavaScript a Go. Ma com'è stato? Cosa hai fatto per fare quel passaggio?
Franziska: Sì. Bella domanda. Una cosa importante qui è che JavaScript non era il mio unico linguaggio, no? All'università non sono andata in profondità su tanti linguaggi, ma ho imparato C. Ho imparato Java, ho imparato C++, ho imparato tipo Matlab e alcuni di quei linguaggi esoterici. Quindi per me, JavaScript era già il mio quinto linguaggio o giù di lì, e poi Go è stato il sesto. Quindi per me, per esempio, Go era tutta questa cosa, senti anche parlare dei puntatori e così via, e venendo solo da JavaScript sarebbe stata una cosa completamente nuova, e avrei dovuto imparare di cosa si trattava e così via. Ma avendo tutti questi altri linguaggi alle spalle, lo sapevo già da C e C++ e così via. Quindi sì, mi sono appoggiata a un sacco di cose che avevo già imparato prima all'università, e questo ha reso davvero facile entrarci. E l'altra cosa che aiuta con Go è che è un linguaggio piuttosto minimale. Non ha così tante parole chiave, non ha così tanti costrutti che puoi costruire. Puoi finirlo piuttosto in fretta. Io di solito dico: fai il tour ufficiale, vai sul sito o dove vuoi. E in due settimane, tre settimane hai finito. E hai una comprensione solida. E con JavaScript sarebbe impossibile. Cioè, ti serve molto più tempo solo per avere una comprensione solida delle basi, e poi c'è così tanto altro da imparare. Quindi sì. Anche il fatto che il linguaggio di arrivo fosse così ha aiutato molto a rendere il passaggio facile.
Jonathan: Ok. Quindi ora lavori per Atlassian e hai accennato un po' alla sovrapposizione tra prodotti, tecnologia e tutta quella roba lì. E hai detto che il FinTech non ti dà poi molto, non era particolarmente entusiasmante per te. Diresti che lo spazio del prodotto e l'interfaccia tra tecnologia e prodotto è un'area che ti piace davvero? E, o cosa, nello spazio tech in particolare, sarebbe la tua passione, se dovessi riassumerla? So che è una domanda molto grande, ma ci racconti un po'?
Franziska: Sì, ci sono diversi tipi di domini o argomenti che mi interessano. Non solo quello dove lavoro adesso. Per esempio, mi piace molto la roba dei prodotti consumer. Ci sono aziende come Hello Fresh che fanno un sacco di cose fighe. Anche cose fighe legate alla tecnologia. Oppure c'è un sacco di roba nell'ambito dell'istruzione, tipo Exercism e così via. E poi l'altro spazio è quello intorno agli strumenti per sviluppatori, o agli strumenti per i team in generale. Sì, quindi ci sono varie aree, e questa era una di quelle in cui potevo pensare: ehi, ha molto senso aiutare le persone con questo. E poi, in particolare sul product management, posso raccontare questo aneddoto su Jeremy e anche sul mio CEO dell'ultima azienda. Gli ho parlato di questo nuovo lavoro e di cosa avrei fatto, e lui ha detto la stessa cosa di Jeremy, il fondatore di Exercism. Mi ha detto esattamente la stessa cosa: hai scelto questo lavoro perché eri frustrata dalle mie capacità di product management? E quindi tutto questo... e questo ti dice che il product management e il migliorarlo era, o è sempre stato, qualcosa per cui avevo passione. Perché il punto è che, come sviluppatore, puoi scrivere il codice migliore di sempre. Ma se stai scrivendo la cosa sbagliata, se stai costruendo la cosa sbagliata, allora è tutto inutile, no? Quindi se il tuo product manager non ha fatto un buon lavoro nel capire le cose giuste da costruire, allora magari nessuno userà mai la cosa che hai costruito, perché non hanno analizzato bene il mercato, e poi non hanno dato bene le priorità e così via. E l'ho vissuto nei miei lavori passati. Ho costruito un sacco di cose che non hanno mai visto la luce, perché non c'era un buon processo di prioritizzazione, no? Ecco perché penso che migliorare quest'area del product management in generale renda anche la vita degli sviluppatori di tutto il mondo molto migliore, perché così possono costruire le cose giuste e creare davvero valore, e non costruire qualcosa che finirà nella spazzatura o che gli utenti non vedranno mai.
Jonathan: Sì, no, è davvero interessante, perché quello che sembri cogliere è, mentalmente, credo che spesso abbiamo avuto questa mentalità: se sei bravo nella tecnologia, la fai tutta dietro le quinte. Non vedi mai la luce del giorno come persona, perché fai la parte tecnica, ed è davvero lo stereotipo, si potrebbe dire. Ma sembra che negli ultimi anni ci sia stata una sovrapposizione crescente tra la tecnologia e il lato business delle cose. E per me, pensavo sempre all'agile come concetto. E secondo me il concetto agile è davvero una mentalità di business, un modo di vedere le cose imposto a un team tecnico. Nella mia testa, se devo essere davvero onesto, è questo che sembra: è utile, ma non credo di aver mai visto un ambiente agile. O che produca i frutti in tempo, se ha senso. E magari è perché l'ho visto gestito male in passato, ma sembra davvero che ci sia più sovrapposizione, che gli sviluppatori inizino a voler essere più coinvolti nel lato business delle cose, che secondo me è davvero interessante ed è in realtà una buona cosa, perché allora significa che le decisioni, nel complesso, sono migliori.
Franziska: Sì, è che... alcuni sviluppatori vogliono essere più coinvolti, ma altri non vogliono esserlo, eppure devono esserlo comunque. Il punto è che non funziona così: che il product management si siede e spezzetta tutto, poi lo lancia oltre il muro e lo sviluppatore lo costruisce e va tutto bene. Non ha mai funzionato davvero bene, nemmeno in passato, quando quello era il modello standard. E oggi sì, c'è più attenzione su questo, ma è sempre stata la cosa giusta avere più dialogo tra sviluppatori e designer, tra sviluppatori e product manager. E anche quando hai... tipo più a valle, hai un team di supporto e magari qualcuno che fa manutenzione per te o roba simile. Più lavorano vicini e tirano davvero fuori insieme la soluzione migliore per qualcosa, meglio è: più valore potete creare insieme. E questo è sempre stato vero. Per esempio, al momento la funzionalità su cui lavoriamo: il product management ha un sacco di idee su cosa potrebbe far parte della prima iterazione di questa nuova funzionalità, ma loro non possono giudicarlo da soli. Aggiungere questa cosa è tipo un giorno di lavoro in più, oppure farebbe esplodere tutto lo scope e diventerebbe tre mesi di lavoro in più? Sì. Quindi per loro è impossibile giudicare. Quindi l'unico modo per trovare un buon pacchetto per questa prima iterazione è parlare tra noi e dire: questa sarebbe una cosa facile da aggiungere. Questa è una cosa difficile da aggiungere e così via. E poi troviamo uno scope buono. E la cosa bella del mio lavoro da Atlassian è che abbiamo un product manager che la vede allo stesso modo. Dice sempre che lo scope è una cosa a due direzioni. Io ho delle idee qui, ma anche voi dovete darmi il vostro contributo su cosa ha più senso. E poi tiriamo fuori qualcosa insieme. Vedo anche che, quando ho fatto il processo di assunzione, tutto questo tema del comunicare con gli altri, con gli altri team e così via, al momento ha molta attenzione. Cioè, un sacco di gente chiede: come hai lavorato con gli altri team? E loro davvero, anche solo parlando con te, giudicano quanto sai esprimerti, perché è super importante che ti interessi di quello che fanno gli altri team e che tu sia coinvolta. E solo allora puoi davvero sfruttare al massimo il tempo che hai.
Jonathan: Sembra un approccio molto più integrato, in quel senso. E quindi questo mi porta a un altro pensiero: molto spesso
Franziska: Oh, magari prima di andare avanti: hai nominato la parola che mi fa scattare, agile, no? Quindi devo intervenire. Non so se l'hai fatto apposta giusto per provocarmi o no. Sì. Riguardo all'agile, trovo sempre che le idee di base da cui viene tutta questa cosa, le persone sono più importanti dei processi e tutte quelle cose basilari che hanno tirato fuori tanto tempo fa, abbiano ancora molto senso. C'è molta magia intorno a loro. Ma poi sono arrivati tutti i loro consulenti e hanno inventato tutti questi framework enormi e così via, e li hanno venduti, e ci sono gli scrum master e così via. E anche la mia esperienza, come dicevi, è che un sacco di quella roba non aiuta più di tanto. Se per esempio prodotto e sviluppatori non comunicano bene, mettere semplicemente tutte queste strutture sopra non risolve comunque la cosa per bene. Quindi sì, non sono una grande fan nemmeno di queste pratiche scrum standard, delle pratiche agile: non ho mai visto questa roba funzionare granché da nessuna parte.
Jonathan: È interessante, perché sembra... Se vai a cercare lavoro su LinkedIn per product owner o product manager, è tutto scrum, agile. Ovunque. È incredibile. Ma è così buffo come i team di sviluppo più... come dire... più pieni di risorse che ho visto siano quelli che usano Kanban, dove non c'è la pressione di dover necessariamente produrre entro un certo tempo, ma si produce qualità, ed è come se rimettessi la responsabilità sull'individuo, che deve solo risponderne. Ed è stato davvero interessante da attraversare, perché è tipo: i team giovani si incastrano sull'agile, non funziona, si frustrano, e poi finiscono sul Kanban, dove si lavora un pezzetto alla volta, con costanza, e le cose funzionano. Ma penso che sia anche interessante quando hai un prodotto come business, rispetto a quando costruisci prodotti per altri. Non so quale fosse il tuo lavoro precedente, se era un prodotto interno. So che da Atlassian costruite essenzialmente i vostri prodotti.
Franziska: Sì, ho sempre costruito i miei prodotti. Non ho mai lavorato in agenzie
Jonathan: Sì. La roba delle agenzie è un incubo, perché è lì che tutti controllano ogni ora di sviluppo o roba del genere, e fanno: ma non capisco. Perché questo pulsante mi costa $400? E sei tu che volevi spostarlo da qui a qui, il che è stato un rifacimento dell'intero backend. Quindi volevo farti una domanda che abbiamo fatto a molte persone nei nostri vari podcast e live stream. Ed è tutto il concetto della battaglia per cui saresti disposto a morire, o della cosa che difenderesti con tutta la tua vita, quando si tratta di un'opinione o di tecnologia. Non è che vogliamo dire che questa è l'opinione che devi avere, ma è più tipo: quale valore o opinione hai che diresti essere assolutamente fondamentale per te, e che vorresti vedere ovunque nel settore tech. È una domanda piuttosto ampia, ma c'è una cosa che difenderesti con molta forza nel mondo tech?
Franziska: Pensavo che l'avresti resa un po' più leggera. Io volevo andare sulla versione leggera, l'opinione impopolare. Va bene lo stesso?
Jonathan: Sì, assolutamente.
Franziska: Ok, non ne ho poi tante di battaglie enormi per cui morire. Quindi, una delle cose su cui ho opinioni forti è che un sacco di gente ti suggerisce di ottimizzare il tuo setup personale di sviluppo. E secondo me è per lo più sopravvalutato. Quindi tipo la gente ti dice: oh, devi imparare Vim, perché così non tocchi mai più il mouse, ed è fantastico e così via. E poi la gente ci crede, quando è nuova nel settore ci crede. E poi passano un anno a imparare tutte le scorciatoie magiche e così via. E poi, sì. Ma alla fine, non so, risparmiano magari un giorno in un anno o roba simile. Quindi quell'anno di sofferenza non è stato ripagato. E ci sono un sacco di cose così: la gente ti dice che devi avere tutti gli alias configurati per il terminale nei tuoi dot file, e ti dice che devi conoscere tutti i cheat sheet delle scorciatoie e così via, e passi così tanto del tuo tempo a imparare quelle cose, ma poi risparmi solo un tot. E secondo me quello che succede è che le persone sopravvalutano il tempo che passi a digitare nel tuo lavoro, no? Come dicevamo prima, gran parte del lavoro è anche comunicare. Gran parte del lavoro è in realtà pensare. Sì. E solo una parte della tua giornata la passi davvero a digitare qualcosa, a scrivere codice o comandi e così via. Quindi un sacco di gente ottimizza su questa parte davvero piccola della giornata. E secondo me, sì, se quello è il tuo hobby, allora fallo. O se ha un valore simile per te. Se sei un SRE, cioè un site reliability engineer, e ti intrufoli nei server e così via, allora potrebbe avere senso conoscere Vim, no? Perché non puoi aprire un'interfaccia grafica. Ma se non ti serve, non preoccuparti. Usa quello con cui ti trovi a tuo agio, e basta. Per esempio, sulle scorciatoie dico sempre: ok, la maggior parte delle interfacce grafiche ti mostrano la scorciatoia accanto alla cosa su cui clicchi. Quindi se clicchi quella cosa cinque volte al giorno, allora ok, potrebbe avere senso... o ogni cinque minuti, allora potrebbe avere senso ricordarla, sai? La scorciatoia per salvare va bene se la usi in continuazione, ma se no, allora resta felice nella tua interfaccia grafica, fai le tue cose, e piuttosto passa il tempo a migliorare le tue vere capacità di programmazione. Fai qualche esercizio, qualcosa del genere. Impara un nuovo linguaggio. Quello che vuoi. Ma sì, questa è una cosa che cerco sempre di dire ai nuovi sviluppatori: non lasciatevi intimidire da queste persone che ti dicono che devi usare uno di quegli editor antichi e ottimizzare la tua produttività lì e
Jonathan: È buffo, perché spesso le passioni delle persone si insinuano nel discorso, comprensibilmente. Perché è tipo: oh, sono super entusiasta perché ho ottimizzato la mia vita. Ma a pensarci bene, non è sempre la cosa migliore. Quella è stata un po' la mia esperienza con l'apprendimento: c'erano semplicemente così tante cose, raccomandazioni, che la gente riceve. E poi se vai su YouTube e cerchi tipo come imparare a programmare, qualcuno parte da come configurare il tuo GitHub. Qualcuno parte da come capire il terminale, eccetera. Io devo tipo scaricare tutto per lavorare in locale, e poi l'editor online, e così via. Adesso penso che sia davvero un buon consiglio: tienilo piuttosto semplice. Quindi, se poi passerai più tempo a pensare, come fai, cosa fai per ragionare sui problemi? Se ti trovi in una situazione al lavoro, o in generale, cosa fai nella tua giornata? Ti ritagli del tempo? Com'è il tuo processo?
Franziska: Una cosa con cui mi piace iniziare è, in pratica, ricevere il problema un po' in anticipo, prima di doverlo davvero risolvere, e poi tenerlo lì in fondo alla testa per una settimana o giù di lì. E poi, sotto la doccia, ci penso un po'. E prima di dormire ci penso un po' e me lo rigiro in testa per un po'. E di solito questo mi aiuta a trovare qualche punto di partenza. E poi da lì, soprattutto se è per il lavoro, di solito inizio a scrivere alcuni punti, perché scrivere le cose mi aiuta decisamente a schiarirmi la mente, a trovare i punti, per esempio dove devo ancora parlare con il product manager perché non so esattamente di cosa abbiamo bisogno lì per i clienti. Quindi scriverei quello che già so e come risolverlo, e cose così. E scriverei anche, di solito, una tabella piuttosto grande di domande aperte, o per qualcun altro nel team o anche per me stessa, cose da capire. E poi questo mi aiuta davvero a chiarire le cose. E poi, dal concetto ad altissimo livello, provo a spezzettarlo in compiti di programmazione più concreti. Allora, com'è l'API? Quali dati devo memorizzare per questo? E poi come si passa dalla storia ai dati e ritorno, e quale logica deve succedere lungo il percorso. Dipende. Può essere che abbia già trovato un sacco dei problemi da risolvere, tipo durante il mio processo di pensiero precedente, ma a volte, quando inizio a programmare, trovo problemi nuovi che non avevo previsto, e allora devo fare un passo indietro e ripensarci da capo, e poi tornare al codice vero e proprio. Quindi anche questo può succedere. Ma di solito il sistema è tipo: prima provare a ragionare un po' sulla cosa, e risolvere alcuni problemi in anticipo mi aiuta molto. E poi, sì, o il codice a quel punto è semplice, oppure trovo altri problemi e torno indietro, ma va bene anche così.
Jonathan: Ok. No, è bello. Sembra che spesso, nella mia testa, abbia l'idea che se sei un programmatore a tempo pieno, te ne stai letteralmente seduto al computer dalla mattina alla sera a sgobbare un pezzetto alla volta. Ma mi sto rendendo conto che la capacità di ragionare sui problemi, e penso sia qualcosa che anche Exercism cerca di sottolineare, è ragionare bene sul problema. Assicurarti di avere tutto il contesto. E poi la parte di codice è davvero solo l'espressione di quel processo messo in pratica. E anche Jeremy direbbe la stessa cosa. Penso che ragionerebbe su un sacco di cose e poi scriverebbe un codice piuttosto breve.
Franziska: Sì. E anche, sì. Un altro consiglio comune è iniziare a scrivere, nei commenti, cosa vuoi che faccia questa roba. Ok, prima devo fare questo, e poi questo era il risultato, e poi quest'altro, e poi riempio i pezzi di codice per la parte specifica. Quindi anche questo aiuta molto.
Jonathan: È stato buffo, perché quello che dici... adesso ci proverò di sicuro, perché mi rendo conto che quando devi programmare, e soprattutto per imparare Go o quello che sia. Uno degli esercizi che stavo provando a fare era: prendi un input da tastiera, salvalo, e poi restituisci tipo... hai avuto questo numero di tentativi o roba simile. Ma tutto il processo di ragionare, di spezzare quel problema nei suoi compiti davvero granulari, era qualcosa che mi era molto estraneo. Quindi è stato davvero interessante imparare a pensare a un problema del genere, passo dopo passo. Quindi no, sono dei piccoli consigli niente male, me li porterò di sicuro.
Franziska: È anche una cosa che... molte persone l'hanno segnalata su Exercism. Quindi non è che molte persone facciano così tanta fatica a capire il linguaggio e la sintassi. Ma poi è tutto il come risolvo questo problema piuttosto generale che le manda in difficoltà. E abbiamo provato un po' a fornire anche della documentazione su questo, dove diciamo: ecco, questa è una buona risorsa per imparare a pensare da programmatore e così via. Ma sì, magari possiamo anche fare meglio su questo in futuro.
Jonathan: No, è... no, è vero. E quindi penso che porti a una domanda interessante che ho fatto anche a diverse persone, che è sempre interessante quando parlo con altri. Ed è intorno a tutto il concetto di: quando ti è scattato con la programmazione? Non so se hai mai avuto quella sensazione. Erano concetti e teoria e avevi letto i libri di testo, ma poi ti sei svegliata una mattina e all'improvviso eri tipo: oh, adesso ha senso e basta. Sarebbe spesso la mia esperienza nell'imparare qualcosa. Quand'è stato per te, o ti è capitato? O è stato solo graduale: ok, l'ho capito piano piano. Com'è stato?
Franziska: Oh, sì, ci ho pensato un po', e sì, penso che ci sia stato un momento in cui è scattato. Ma fammi iniziare. Prima non era scattato, se va bene. Quindi, quand'ero adolescente, avevo uno di quei. Laptop giocattolo che avevano dentro dei giochi. E avevano anche una funzione per programmare in BASIC. E mio nonno è passato da casa e si è messo a... lui programmava, in pratica, con le schede perforate. Quindi è sempre stato appassionato di tecnologia, e ha detto: oh, che bello che puoi programmare lì. E voleva mostrarmi che programmare è una cosa figa. E ha iniziato come iniziano tutti. Ha digitato print, Hello World, e quello ha sputato fuori Hello World, e io ero tipo: so anche io scrivere Hello World. Ma che stai facendo? E lui: no, fa quello che gli dici di fare. E così via. E poi ha digitato tipo: uno più due, e sputa fuori tre. E io: anche la mia calcolatrice lo fa. Cosa mi vuoi mostrare? Non lo capivo. E poi, più avanti, ho avuto una specie di cosa di informatica a scuola. E lì avevamo Turbo Pascal e c'era tipo un plugin o qualcosa del genere con una piccola tartaruga che disegnava qualcosa sullo schermo. E lì ci hanno dato degli esercizi niente male, dove inserivi una specie di formula e questa disegnava dei frattali davvero intricati e fighi, che sembravano foglie e così via, e ottenevi tutto questo solo digitando la piccola formula che dice alla tartaruga cosa disegnare. E per me quello è stato il punto in cui è scattato, perché mi sono resa conto che dando a questa cosa istruzioni super semplici si può creare questa cosa complessa che io non avrei mai potuto fare da sola. Cioè, non avrei potuto disegnare così tante foglie, no? Quindi per me è stata quella la cosa: ah, ecco. Quindi quella cosa può fare più di quanto potessi fare io comunque, ma sì, prima, con le spiegazioni che mi aveva dato mio nonno e quello che mi aveva mostrato lì in quella cosa, non aveva funzionato. Ma vedere questa cosa grafica e vedere quanto poche istruzioni servono per far fare al computer questa cosa complessa: ecco, è stato lì che è scattato per me.
Jonathan: Ok, è bello, perché l'altro giorno mi è successo con i metodi. Ero tipo: ma che diavolo è un metodo? E non mi era ancora scattato niente. E per me è stato lo stesso con la chimica. Ho dovuto studiarla per due anni e poi, da un giorno all'altro, la tavola periodica ha avuto un senso completo. E all'epoca avevo tipo 16 anni. E ricordo di aver pensato: oh mio Dio, questa è tipo la cosa più facile del mondo. Non riesco a credere che non l'avessi capito. Due anni, ormai. E poi l'esame è stato una passeggiata. Perché ero tipo: tutte le risposte sono nella tavola periodica. Devi solo fare quel piccolo collegamento, e tutto si sincronizza nel mio cervello. Ed è stato interessante anche parlare con le persone di quando è scattato quel momento. E Rebecca, che forse conosci, magari dal track Unison su Exercism, le ho chiesto, perché lei si è laureata in letteratura inglese. E le ho detto: come sei passata dalla letteratura inglese alla programmazione? E qual è stato il metodo che hai usato nella tua testa per concettualizzare... quel passaggio? E lei diceva che immaginava il programma che stava scrivendo come una storia, come una narrazione con un protagonista, e le funzioni erano i personaggi e cose così. E io ero tipo: oh, wow, è davvero interessante. Non ci avrei mai pensato in quel senso. No, è davvero
Franziska: Sì. Ma questo si ricollega a quello di cui parlavamo sui commenti, no? E cioè che scrivi prima... è esattamente così: prima racconti la storia e poi scrivi il codice per realizzarla.
Jonathan: Ed è davvero bello che tu l'abbia menzionato, perché credo che rendermi conto che in realtà sto scrivendo una storia nei miei commenti... me lo porterò di sicuro. No
Franziska: E un'altra cosa su questo tema: hanno fatto degli studi su quali persone sono brave nella programmazione e così via, e hanno scoperto che in realtà le tue capacità verbali, tipo quante parole conosci, e così via, hanno un ruolo importante in questo. Quindi, per esempio, dare i nomi alle cose è qualcosa che si dice sempre essere difficile in programmazione. Quindi se sei bravo a trovare le parole giuste che descrivono ciò con cui hai a che fare, questo rende il tuo codice molto migliore. Quindi in realtà non è solo questione di matematica e di roba analitica. È anche molto questione di essere bravo con le parole, cosa che magari non ti aspetteresti all'inizio.
Jonathan: No, è... alla fine è linguaggio, suppongo, il che è un pensiero interessante che mi è venuto. Per te: sei tedesca di nascita, ma quella è un po' la tua lingua. Adesso sviluppi con Atlassian in inglese. Ed eri in inglese anche prima? Cioè, come... perché, direi, purtroppo è tutto in inglese. E tu parli un ottimo inglese, ma hai imparato l'inglese a scuola e poi la programmazione, era tutta in tedesco? O come hai imparato tutto questo da quell'esperienza?
Franziska: Sì, soprattutto, sono stata abbastanza fortunata perché gran parte della roba di programmazione era in inglese e tutti i commenti erano in inglese e così via. Non è sempre l'inglese migliore, ma va bene. Sì, quanto a imparare l'inglese, a scuola non sono mai stata brava. Ma all'università ho avuto la fortuna di passare un anno, tipo un anno di scambio nel Regno Unito. Quindi è stato un po' come stare davvero dentro la lingua. E poi il mio inglese è migliorato molto. E dopo è stata una passeggiata, ma prima era davvero scarso. E sì, quindi quell'anno, imparare davvero la lingua mi ha aiutata poi, più avanti, a riuscire a comunicare con colleghi che non sono tedeschi e così via. E poi, in generale, è decisamente un fattore. Se l'inglese non è la tua lingua madre, allora di nuovo, ti è più difficile batterti per il nome giusto per le cose, no? E dare i nomi alle cose lo fai con ogni riga di codice che scrivi, no? Assegni sempre qualcosa a qualcos'altro e devi dare a quella cosa il nome migliore possibile per rendere chiaro il codice.
Jonathan: No, non mi sembra così facile per chi non parla inglese. È una cosa che penso inizierà a cambiare anche. L'altro giorno ho visto un articolo che diceva che l'India è il settore tech in più rapida crescita al mondo al momento. E l'inglese: se restano con l'inglese o con i loro dialetti locali, che so che in India ce ne sono tanti. È solo interessante pensarci, ragionare su tutto questo. Quindi siamo quasi a un'ora. Mi sono divertito davvero. Ho un'ultima domanda per te, Franziska. E qui puoi fare una raccomandazione. La community di Exercism. Quale sarebbe la tua unica raccomandazione? Può essere qualsiasi cosa, da un cibo da provare, o qualcosa tipo fare una passeggiata, o qualsiasi cosa tu voglia raccomandare alla community. Quale sarebbe la tua raccomandazione per la community di Exercism questa settimana?
Franziska: Sì, torno al tema della produttività di cui ho parlato nell'opinione impopolare. Quindi la mia raccomandazione sarebbe: prenditi una pausa, guarda tutto d'un fiato quella serie Netflix che hai sempre voluto vedere, o quello che è. Di solito le persone sono molto concentrate sull'essere produttive per tutta la giornata. E non fa bene al cervello. Non fa bene al tuo cervello ottimizzare così tanto: il tuo cervello, per essere bravo al lavoro, per essere creativo e così via, ha bisogno di pause, perché in quelle pause fa delle cose. E sì, e poi semplicemente stare sul divano e guardare distrattamente qualche show o quello che è: è una buona cosa. È una buona cosa da fare, dare al tuo cervello un po' di tempo per fare le sue cose in sottofondo. E penso che fare pause, prendersi del tempo, sia sottovalutato. Quindi questa sarebbe la mia raccomandazione. Non sentirti in colpa per fare pause e per rilassarti.
Jonathan: Bello. No, mi piace molto. Bene, a tutti voi che state ascoltando: questa è la raccomandazione, il consiglio per questa settimana, da Franziska. Quindi Franziska, grazie mille per il tuo tempo, per tutto quello che metti in Exercism e per tutto il pensiero e il coinvolgimento che hai con la community. So che ti sei impegnata tantissimo con Exercism, per migliorarlo e aiutarlo, e lo apprezziamo davvero. Quindi volevo solo dirti grazie, e grazie per il tuo tempo stamattina. In un giorno di festa nazionale, in cui potresti essere fuori a festeggiare o a fare qualcosa di divertente. E invece hai offerto il tuo tempo qui: lo apprezzo enormemente. Sono rimasto bloccato sulla chiamata quando ho fermato la registrazione, ma volevo solo ringraziarti tantissimo e sì, buon proseguimento di giornata. Bello.
Franziska: grazie per avermi ospitata.
Ascolta, impara e lasciati ispirare dai membri della nostra community.