Vissza a közösséghez

A problémamegoldás útja a tech lead pozícióig

Gabriel Nelle Dél-Németországban él, Baden-Baden közelében. A barátnőjével és két macskájával osztozik a lakáson. A Siegeni Egyetemen tanult matematika–német szakos tanárnak, ahol 2008-ban végzett.

Nézd meg YouTube-on
HOSSZ 52PERC

Jonathan: Nos, szia mindenki. A nevem Jonathan. Öröm, hogy ma este én lehetek a házigazdátok. Van egy vendégem, akit nagyon megtiszteltetésnek tartok, hogy a mai műsorban köszönthetek. Szeretném bemutatni nektek Gabriel Nelle-t. Gabriel az Exercism egyik fő közreműködője. Főleg a Go kurzushoz kapcsolódott szorosan, de a részleteket hamarosan ő maga meséli el. Annyit azonban mindenképp szeretnék mondani, Gabriel, hogy nagyon jó, hogy itt vagy. Köszönjük, hogy csatlakoztál, és reméljük, hogy legalább annyira jól fogod érezni magad, mint a mai műsor hallgatói. Szóval, Gabriel, miért is ne vennéd át a szót. Mesélj egy kicsit arról, honnan jöttél, és hogyan kerültél oda, ahol most vagy?

Gabriel: Igen. Szia. Gabriel vagyok. Köszönöm, hogy meghívtál. Dél-Németországból származom, ott nőttem fel, és most is ott vagyok, nem ugyanazon a helyen, de még mindig Dél-Németországban. Igen, ott nőttem fel... kezdjük is: a nyolcvanas évek elejei generációhoz tartozom, 1981-ben születtem. És úgy gondolom, hogy az én történetem a nyolcvanas évek vége felé kezdődik, amikor apám hazahozta az első számítógépét. Szóval szerintem itt kezdődik a sztori. Legalábbis a szöveges változata.

Jonathan: Igen.

Gabriel: MS-DOS futott rajta, nem vagyok biztos benne, pontosan melyik verzió volt. Szerintem egy régebbi verzió lehetett, mert ha jól emlékszem, apám azért hozta haza, mert gyakorlatilag kidobták a cégnél, és új számítógépeket kaptak, szóval elvihette, hazavihette azt. És igen, ez volt az első benyomásom a számítógépekről. MS-DOS. Érdekes és különös.

Jonathan: a, a vonalak, a színes vonalak a fekete képernyőn? Az elég menő volt?

Gabriel: Igen, csak fehér volt feketén. Igen, lényegében. És alapvetően, többnyire csak a parancssor volt, amit először megismertem. Aztán később apámmal, nagyjából a nyolcvanas-kilencvenes évek fordulóján, 1991 körül apám megtanította nekünk az első for-ciklusokat QBasicben. Akkoriban 10 éves voltam, és akkor volt a szókincstanulás is. Szóval apám vett egy programot a szókincs tanulásához, és az QBasic-alapú volt, és szerintem volt egér, amivel kattintani lehetett, de nem vagyok száz százalékig biztos benne. Lehet, hogy később volt. Szóval mindenképp azok az idők voltak, amikor először kezdtem számítógépes dolgokkal foglalkozni, és néhányszor el is rontottam. Apámnak néhányszor meg kellett javítania. Szóval mindenképp érdekelt, hogy megtanuljak erről. Nem igazán úgy, hogy leültem, és azt mondtam magamnak, meg kell tanulnom ezt. Igazán érdekelt, és az, hogy megértettem, mit lehet vele csinálni, lenyűgözött.

Jonathan: És, és az édesapád, kifejezetten számítógépekkel foglalkozott, vagy csak az üzleti életben dolgozott, és úgy adódott, hogy hazahozott egy számítógépet, vagy volt valami konkrét oka, hogy hazahozta? Számítógépes okokból vagy technikai okokból.

Gabriel: Igen, ő valójában... a szakmáját tekintve villanyszerelő, azt tanulta ki. De akkoriban a Boschnál dolgozott, az elektronikai részlegen, ahol az új chipeket vagy az autókhoz való új dolgokat fejlesztették. És ott természetesen voltak számítógépek, és ő már elég korán felelt mindenért, ami a számítógépekkel kapcsolatos, hálózati nyomtatók és hasonlók. Szóval lényegében így került bele. Alapvetően ő volt az, aki mindent intézett, hogy a dolgok működjenek ott. És mivel nem rendelkezett doktori címmel, mint a legtöbb más kollégája a részlegén. Szóval lényegében ő foglalkozott ezekkel a dolgokkal, és sokat tanult ezekről, a számítógépekről. Igen.

Jonathan: Igen. Oké, szuper. Bocsánat, csak közbevágtam, közbevágtam. Szóval azt mondtad, hogy játszottál vele, néhányszor elrontottad, ez volt a bevezetésed a számítógépekhez meg a hardverekhez és minden ilyesmihez. És aztán? Mi történt onnantól kezdve? Hogyan haladtál tovább?

Gabriel: Szóval azt hiszem, a következő nagy lépés az volt, hogy megkaptam a saját számítógépemet, ami, azt hiszem, talán öt-hat évvel később történt, amikor már fiatal felnőtt voltam. Egyre jobban érdekeltek a számítógépek, és az iskolában is voltak ilyen részek. Elkezdtem a házi feladataimat számítógépen megírni, meg minden ilyesmit. És ez már azokban az időkben volt, a Word és az MS Word korszakában. És azt mondanám, egy napon kezdődött... apám mindig valamilyen irodalmi munkát végzett a gyülekezetünknek. Szóval egy nagyon kicsi gyülekezetben nőttünk fel, és volt ez az irodalom, amit alapvetően használtunk, és apám digitalizálta vagy segített digitalizálni azt az irodalmat. A kezdet mellékprojekt volt, de ebből lett végül az első főállásom. Az Egyesült Államokban dolgoztam a kiadónak, amely felelős volt ezért az irodalomért.

Jonathan: Mm.

Gabriel: Alapvetően apám megkérdezett... Igen, van egy csomó makróm. Egy EuroScriptben írtam meg őket, ami alapvetően a Word egy verzióján alapult, mondhatni. A Word előtt. És most át szeretnék térni a Wordre, és szükségem van az összes makrómra Wordben. És én azt mondtam: oké. Oké. És lényegében így kezdtem el programozni Wordben. Szóval Visual Basic for Applications... először fel tudtad venni a makrókat. Meg tudtad nézni a kódot, és láthattad, mit csinál, és tudtad javítani. És alapvetően annyira fel tudtad javítani a makrót, hogy... Előtte úgy volt, hogy ide teszed a kurzort, aztán lenyomsz egy billentyűt, és akkor csinál valamit, olyasmit, mint a következő néhány sorban. A végén pedig úgy volt, hogy az egész Word-dokumentumot fentről lefelé feldolgozta, teljesen automatikusan. És lényegében ez volt a belépő ahhoz a rengeteg makróhoz, amit ezért írtam. Nagy hullámokat keltett, és akik apámnak ezt a feladatot adták a szabadidejében, azt mondták: Hű, ez nagyszerű. Csináljunk többet, és automatizáljunk egyre többet. Igen. Szóval így kerültem bele,

Jonathan: őt, rengeteg időt megspóroltál az apádnak

Gabriel: Igen.

Jonathan: ilyen értelemben, fiatalon,

Gabriel: Azt mondhatom. Szóval a makróírást Wordben folytattam, később Excelben. Írtam egy Excel-alapú... hogy is mondjam... bolti rendszert egy kis bolt számára. Szóval egy kis bolt volt, biotermékekkel és hasonlókkal, és alapvetően felírták az összes árat, aztán fejben vagy papíron kiszámolták őket. És így működött a dolog az elején. És írtam egy rendszert ehhez, vonalkód-leolvasással és egy mérleggel, amire rá lehetett tenni, megmérni valamit, és megkaphattad a nyugtát, aztán beolvastad, amikor fizetni mentél, meg minden ilyesmi. Szóval alapvetően minden e körül Excel-alapú volt. Szóval igen, én mindenképp másképp csinálnám. Az Excel volt egyszerre az adatbázis és a nyomtató is. Szóval mindent Excelben formáztam, egy Excel-táblában, aztán kinyomtatta a nyugtatároló nyomtató, meg minden ilyesmi. Persze, igen, úgy gondolom, ez volt a karrierem kezdete, mondhatni.

Jonathan: Hány éves voltál, amikor mindezt csináltad, és, és, és mi következett onnantól? Az egyetem előtt volt, gimnáziumban, és ez befolyásolta a karrierutadat, úgymond? Eléggé jelentősen.

Gabriel: Igen, ez mind az egyetem előtt volt. A bolt rendszere 20-21 éves koromban készült, akkoriban csináltam a civil szolgálatomat.

Jonathan: Hm?

Gabriel: A makróírás olyan 16 éves koromban volt. Közben írtam egy Access-alapú rendszert is, címkék nyomtatásához levelekhez, hogy ki lehessen küldeni őket. Szóval címek, címek és hasonlók. Aztán jött a tanulás, és meglepetés: nem informatikát tanultam.

Jonathan: Oké.

Gabriel: Valójában matematika- és némettanárnak tanultam, ... korosztályokra. Hadd számoljam ki. ... 10-től 20-ig és 19-ig. Hát ezek a korosztályok. Szóval ötödik

Jonathan: szóval te

Gabriel: tizenharmadik osztályig.

Jonathan: szóval a karrierutad, a... elkezdett ebbe az irányba haladni, és mi volt az, min alapult az a döntés, valahogy úgy,

Gabriel: Igazából valószínűleg gyakrabban is a programozás útjára léptem volna. De a civil szolgálatom alatt sokkal többet tanultam, mint pusztán technikai dolgokat, azt mondanám. Szóval... felelős voltam, vagy egy kis csapatban voltam, amely egy idősek otthonáért felelt. Mondhatni úgy 5, 5, 6 szoba volt ott. És különböző emberek voltak ott, és én többnyire egyért voltam felelős. Ő talán 55, 60 éves volt, és Alzheimer-kórja volt. És ez nagy benyomást tett rám, mert ha ilyen korban szembesülsz ilyesmivel... mondhatni, igen, 60 éves volt, és ez egy 20 évesnek idősnek hangzott, de mégis világos volt számomra, hogy ez bárkivel megtörténhet, és velem is megtörténhet. És ez sokkal jobban érdekelt az élet szociális területei és

Jonathan: Lenyűgöző.

Gabriel: a szociális karrierutak felé. És valójában ez volt az. Alapvetően ez az oka annak, hogy akkoriban a tanári pályát választottam. Szóval programozni akartam, de nagyon jó voltam a tanításban, illetve abban, hogy segítsek a diáktársaimnak, főleg az iskolában. És a matematika. A matematika volt a legerősebb területem, és mindig szerettem. Igen, mindig szerettem segíteni másoknak, fejleszteni a készségeiket. Vagy mindig imádtam, amikor hirtelen megértették. Amikor megláttam... na, most megvan. Igen. Szóval én... végül valóban tanár lettem.

Jonathan: Ó, ez menő. És mondd csak, említetted ezt a civil... a civil szolgálatodat, úgymond. Németországban ez kötelező, minden diáknak vagy fiatalnak meg kell csinálnia, mielőtt egyetemre megy? Hogyan, hogyan illeszkedik ez mind a német kultúrába?

Gabriel: Akkoriban ez alternatíva volt, a katonai szolgálat alternatívája. Szóval vagy kilenc hónap katonai szolgálatot teljesítettél, vagy 11 hónap civil szolgálatot. Ez volt a követelmény.

Jonathan: Oké.

Gabriel: Férfiaknak, nem nőknek.

Jonathan: Ez még mindig így van Németországban?

Gabriel: Nem, ez már nincs így. Nem. Nem.

Jonathan: Oké. Tudom, hogy Svájcban így van, ahonnan a feleségem származik. Szóval csak... Ez a felállás még mindig jellemző. Oké. Szóval most, matematikát tanultál, és tanárnak készültél, és nyilvánvalóan a programozás elég jelentős szerepet játszott az életedben. Mikor... szóval volt olyan pillanatod, amikor azt mondtad, hogy igazából tanítok, élvezem, de... mégis ott van ez a programozás is, ami aktív és jelen van. Hogyan, hogyan egyensúlyozódott ez a kettő, a tanítás és a programozás?

Gabriel: Hogyan kerültem vissza a programozáshoz? Igen.

Jonathan: Igen.

Gabriel: igen. Szóval amikor tanultam, alapvetően két dolgot csináltam mellékállásban. Az egyik a tanítás volt. Egy magántanár-ügynökségnél tanítottam. Az egyetemen is tanítottam, a fiatalabbaknak, szóval matematikát, többnyire az első és második félévben. És ezzel egy időben dolgoztam egy technológiai cégnél. Azok többnyire... szóval többnyire Access-alapú volt.

Jonathan: mm.

Gabriel: Szóval egy olyan cég volt, amely hardvert és szoftvert készített autómegosztáshoz, meg olyan cégeknek, amelyeknek sok autójuk volt, amit a dolgozóiknak adtak bérbe. És igen, ott alapvetően először dokumentumíróként kezdtem, aztán rájöttek, hogy programozni is tudok. Szóval gyorsan átkerültem a programozás területére. Igen. És aztán azt mondanám, a dolgok főleg akkor változtak meg, amikor a tanulmányaim utolsó részeinél tartottam, amelyek olyan részek voltak, ahova el kellett menned, hat hetet kellett az iskolában töltened, aztán négy hetet és így tovább. És azt hiszem... Világossá vált számomra, többek között nagyon tapasztalt és nagyon, nagyon elkötelezett tanárokkal beszélgetve. Hogy lényegében az idők nagyon megváltoztak. A diákok nagyon megváltoztak. Az egyik tanárnő azt mondta nekem, ő mindig ötödik és hatodik osztályt tanított, és lényegében azt mesélte, hogy öt évvel ezelőtt egy... diák volt az osztályomban, aki problémás gyerek volt abban az értelemben, hogy az iskola nem teljes, hogy válás volt vagy problémák otthon, és így tovább. És most több mint 50%-a van,

Jonathan: Persze.

Gabriel: És az 10 vagy 15 évvel ezelőtt volt. 2000... hat vagy hét, az kellett legyen, szóval 15 évvel ezelőtt. És ez megmutatta, mennyire megváltoztak a dolgok. És az is nagyon világos volt számomra, hogy manapság sok diák egyszerűen már nem akar tanulni. És a tanár mindig... alapvetően a tanár mindig az utolsó. Az egésznek a vége, igen. A szülők, az igazgató és a diákok. Alapvetően ők mind a tanár urai. Igen. A tanár mindig az egyik utolsó szalmaszál, mondhatni, vagy nem tudom, hogyan fejeznéd ki ezt angolul. Ő az, akinek minden felelősséget vállalnia kell, de lényegében semmilyen joga nincs.

Jonathan: felhatalmazása... igen. Hogy cselekedjen. Igen.

Gabriel: Igen.

Jonathan: Szóval... a döntésed? Nos, bocsánat, félbeszakítalak. Folyta... folyta...

Gabriel: Valahogy... legalábbis nagyon elgondolkodtatott. És miután végeztem az egyetemmel, egyszerűen visszacsúsztam a programozásba, mert egy barátom, ő volt az, aki apámnak ezt az irodalmi munkát adta. Lényegében megkérdezte, hogy segítenék-e neki egy projektben. És az a projekt, amit először úgy négy- vagy hathetesnek gondoltak, két és fél vagy három és fél évessé nőtte ki magát. Vagyis három és fél éves projektté.

Jonathan: Hogy... scope creep. A scope creep valódi volt

Gabriel: Igen. Először megkért, hogy segítsek neki valamiben. Aztán folyton kapcsolatban volt egy emberrel ettől a kiadótól. És a kiadó mindig azt mondta: szeretnék egy nyilvános honlapot ehhez, az irodalommal. Szeretném, hogy az emberek az egész könyveket online olvashassák.

Jonathan: Ó, hűha.

Gabriel: Egyszer azt mondtam a barátomnak... épp telefonon beszélt vele, és azt mondta, el tudom képzelni, hogy megcsinálom. Most épp nincs igazán semmi dolgom. És ő azt mondta: Ó, Gabriel megcsinálja. És így kezdődött. Szóval

Jonathan: Hűha.

Gabriel: Volt egy projektem, igen, és aztán három és fél évig dolgoztam azon a projekten. Több ezer könyvet vittem fel online, a teljes tartalomtárat

Jonathan: Hűha.

Gabriel: index. A különböző nyelvek össze vannak kapcsolva egymással. Igen, a weboldal még mindig online van. Ez az e g e gw writings.org. Szóval ha valakit érdekel, nézze meg, új dizájnja van. Tavaly december körül láttam, hogy váltottak, de a kód alatta...

Jonathan: Végig ugyanaz.

Gabriel: Többnyire az enyém, mert látom... mert többnyire JavaScript-alapú volt.

Jonathan: Igen.

Gabriel: A kód nagyon hasonlónak tűnik... másképp van szervezve fájlokra, de mind a különböző stílusok még mindig ugyanazok.

Jonathan: Majd el kell küldened nekem a linket, és a megfelelő időben kiteszük a műsor leírásába. De szóval most... három és fél évet, vagy három évet dolgoztál ezen a projekten. Felvitted, indexelted mindezt az anyagot. Akkoriban a JavaScript volt a fő nyelved? Mi volt a... milyen volt a technikai felállásod? Mondhatni, mire összpontosítottál?

Gabriel: Szóval ez volt lényegében a nagy lépés, hogy elszakadtam a Windows-alapú szoftverektől, ami korábban a Visual Basic és a Visual Basic .NET volt. Most pedig már csak jQuery, JavaScript és PHP volt a háttérben.

Jonathan: Oké.

Gabriel: Meg is állapodtunk abban, hogy amikor kutatással foglalkoztam, alacsonyabb óradíjat kaptam,

Jonathan: Mm-hm.

Gabriel: az harmada volt annak, mint amikor éppen programoztam. És igen, ez megadta nekem a szabadságot, hogy lényegében munka közben tanuljak. Igen. És

Jonathan: szuper. aztán hol, hol... Exercism. És most te... sok mindent csinálsz. Jól gondolom, hogy a Go nagyjából a fő profilod? Sokat mentorálsz, és hát, részt vettél az Exercism-nél a Góban, és segítettél azon az oldalon. Mikor, mikor került ez képbe, és miért érdekelt? Rajta!

Gabriel: Igen, 2016-ban, az volt az első állásom a nagy projekt után. Igazából annak a végéhez közeledve kezdtem el Go-ra váltani. Azon a munkahelyen többnyire PHP-t és Pythont használtam. És az nagyon gyorsan a kedvenc nyelvemmé vált, a kedvenc nyelvemmé, mert megvan benne az az egyszerűség. Alapvetően megpróbál... Attól az őrült világtól, ahol egyre több funkció és nyelv van, és egyre összetettebbé és bonyolultabbá teszik őket, sokkal több terhet róva a fejlesztőre, mert választania kell. Hogyan csinálja. És meg kell értenie az összes többi módot is, ahogy mások csinálják. Szóval az egész teher, és a Go hirtelen behozta ezt a nyugalmat és ezt a... Hogy újra egyszerűsítsünk. És ez nagyon gyorsan az első számú dologgá vált számomra, amikor is prototípust építettem abban a cégben, úgy fél évvel azelőtt, hogy elmentem. Mert át akartak térni Go-ra. És az elején persze ott voltak ezek a kezdeti dolgok, amikor olyanokba botlasz, amiket nem lehet megcsinálni a nyelvben, aztán megérted, miért nincs értelme úgy csinálni, vagy miért jobb úgy csinálni. Hogy nagyon érdekelt megtanulni, hogyan kell ezeket a dolgokat csinálni. És így kezdtem el hallgatni a Go Time podcastot. Az a Change Log-tól van.

Jonathan: Oké.

Gabriel: És Katrina Owen is szerepelt abban a podcastban, azt hiszem, kétszer. Legalábbis kétszer hallottam őt, szerintem. Igen. És így kezdtem el utánanézni. Azt hiszem, 2017-ben regisztráltam az Exercism-re. Nem vagyok benne biztos, utánanéznem kellene.

Jonathan: Elképzelem. Ez korrekt?

Gabriel: Igen, szerintem még az első verzió lehetett, mert az elején nem volt... igazából nem kaptam visszajelzést. Megcsináltam néhány feladatot, de soha nem kaptam visszajelzést, viszont én tudtam adni másoknak visszajelzést, és adtam is. De soha nem kaptam visszajelzést. Szóval nem volt semmilyen folyamat, amivel igazi visszajelzést kaphattál volna. És úgy volt, hogy ha akarod, csinálod, ha nem, akkor hagyd. Úgymond. Igen. Szerintem az az első verzió volt, ugye?

Jonathan: Elképzelem. Úgy értem, azt hiszem... Elég sok változás történt az elsőtől a harmadik verzióig.

Gabriel: Igen. Igen.

Jonathan: Az elsőben kevés visszajelzés volt. A második verzió rengeteg visszajelzést igényelt, a harmadik pedig valahol a közepén helyezkedik el, kicsit talán a kevesebb oldalán, de mindegy. És te, részt vettél a harmadik verzió felépítésében, és hogyan, hogyan... Igen. Mi volt ott a szereped? Úgy értem, ez nem teljesen világos számomra, de szívesen megérteném.

Gabriel: Talán egy, egy lépést vissza, ha szabad. Szóval lényegében a második interjú után tértem vissza. Katrina beszélgetését hallottam az Exercism-ről,

Jonathan: Oké.

Gabriel: Akkor már létezett a második verzió. És amikor sok munka volt, és rengeteg visszajelzésre volt szükség. Belevetettem magam, és nagyon szerettem azt a visszajelzést adni. És

Jonathan: Mm-hm.

Gabriel: Alapvetően elkezdtem azon gondolkodni, hogyan tudnám ezt felgyorsítani. Igen. Mert gyorsan rájöttem, hogy főleg az első feladatoknál világos volt, hogy ugyanazt a választ adnám újra meg újra meg újra.

Jonathan: Igen.

Gabriel: Másrészt persze néha... ez a két probléma, és néha ez a probléma és egy másik. Szóval alapvetően elkezdtem ezt optimalizálni. Elkezdtem írni egy kis Go-programot, amely statikus elemzést használ, mert be akartam kerülni az elemzés világába. Addig még nem csináltam ilyet. Meg akartam ismerni. Szóval mindenképp érdekelt, hogy kipróbáljam, és jó ötletnek tűnt. Mert még mindig olyan kód volt, ami nagyon gyakori vagy nagyon hasonló volt mindig. A megoldások egy feladatra, főleg az elsők, nagyon hasonlóak. Szóval így kerültem bele a statikus elemzésbe, és csak kerestem a különböző mintázatokat a kódban, majd automatikusan hozzátettem válaszblokkokat vagy előre meghatározott blokkokat a válaszhoz. Alapvetően helyben kezdtem, és így tudtam hetente körülbelül 100, 102-t csinálni. És még csak nem is csináltam ezt teljes munkaidőben. A munkám mellett volt. És igen. Aztán kezdett... Pitfield, azt hiszem, ő volt az első. John Arun, azt hiszem, ez az igazi neve. Ő volt az első, aki azt mondta: Hű, ez nagyszerű. Ez szuper. És lényegében így kezdett ismertté válni a munkám, a statikus elemzéssel. És azt hiszem, ez nagy része volt a harmadik verziónak. Elkezdtünk azon gondolkodni, hogyan tudnánk lényegében csökkenteni a mentor munkáját ezekkel az eszközökkel, ezzel az automatikus... statikus elemzéssel vagy azokkal az eszközökkel, amelyek alapvetően automatikusan ellenőrzik a kódot és automatikusan adnak visszajelzést. Akár teljesen automatikusan, anélkül hogy egy mentor egyáltalán érintett lenne, vagy érintettnek kellene lennie. És mert a mentorok... elég világos volt, hogy vannak mentoraink, és nem elegen a munkához. Volt egy mentorálási eszközünk, és azt is láttuk, hogy sok mentor kiégett, eltűntek, és igen, ez egyszerűen túl sok volt. Túl sok sok mentor számára. Igen. A munka olyan volt, hogy... volt, akinek 500 vagy több megoldást kellett mentorálnia, és néha egy hónapos vagy annál hosszabb várakozási idők voltak. És persze ezek olyan körülmények voltak, ahol a tanulók is egyszerűen otthagyták egy ponton. Igen.

Jonathan: Hmm. Ez vicces, mert azt hiszem, Jeremy mondta a minap, hogy az összes beküldött megoldás közül úgy 75% teljesen egyedi, amit én is lenyűgözőnek találok. Úgy értem, elmész egy Hello World feladathoz, nyilván nagyon egyszerű. Biztosan van egy szabványos minta, amit rendszeresen alkalmaznak. És ő azt mondta: az emberek mindenféle különböző dolgot próbálnak ki. És vicces, hogy... tudod, ez az átfedés. Mert ahogy a programozás egyre népszerűbb lesz, és egyre többen kezdenek fejlesztéssel és programozással foglalkozni, az ember elgondolkodik: hol kezdődik majd ez az automatizálás? Semmissé téve a fejlesztő szerepét. Én... nem tudom, nem tudom, hogy így lesz-e. Szerintem még mindig túl sok minden kell hozzá valójában. De ami azt illeti... nem tudom, mi a véleményed erről, de úgy tűnik, hogy az Exercism-nél mostanában hatalmas lendület van a mentorálás felé, ami igazán lenyűgöző, mert, ahogy mondtad, ez... Mindazokat az ismétlődő, ismétlődő leckéket, amelyeket folyton adnod kell, olyan formába önti, ami kezelhető az emberek számára. Ugyanakkor átcsap-e abba, hogy valójában szükség van a... egy emberi interakcióra, egy emberre, aki igazán foglalkozik a tartalommal. Szóval nem tudom, van-e bármi gondolatod erről, de szerintem ez érdekes terület jelenleg.

Gabriel: Igen, nem hiszem, hogy a fejlesztőket nagyon hamar felváltanák. Az még elég sokáig fog tartani. A fejlesztésben, az alkalmazásokban általában, a mentorálásban, azt hiszem. Szerintem a statikus elemzés, valamint az automatikus mentorálás és általában az automatikus mentorálás az Exercism-ön nagy segítség lehet. De a mentorokra szükség van az igazi mentoráláshoz, mondanám. Igen. Például van valaki, akit mentorálok, olyan két-háromhavonta beszélünk, néha többször is. És a karrierjében mentorálom őt, úgymond. Igen. És technikailag is, nagyon mélyen technikailag, de ez teljesen másfajta mentorálás, mint csak ránézni a megoldásra és megmondani, min lehetne javítani. És azt hiszem, erre van még szükség a létező mentorok esetében, és erre mindenképp szükség lesz, és szerintem erre összpontosíthatunk. Másrészt azt hiszem... Azt hiszem, nem tudjuk teljesen helyettesíteni a mentorokat a... a megoldásoknál, és nem is kellene. Sok mindent automatizálhatunk, de a mentor mégis valaki, aki irányt tud mutatni. Látja a problémákat, amelyekkel küszködsz, és meg tudja mondani: értsd meg ezt meg ezt, nem csak azt, hogy így kell javítanod a kódodat.

Jonathan: Igen. Igen.

Gabriel: És őszintén szólva szeretném, ha több mentorálás lenne újra a feladatoknál. Szóval azon gondolkodom, hogy vissza kéne-e hozni...

Jonathan: személyes interakciót, úgy érted?

Gabriel: Igen. Azon gondolkodom, hogy vissza kéne-e hozni. Szóval korábban volt ez az útvonal, 10 feladat, legalábbis 10. Amelyen végig kellett menned, és csak akkor haladhattál tovább, ha mentorálták.

Jonathan: Igen.

Gabriel: És azt hiszem, a mostani automatizálással, amink van, valójában újra be tudnánk kapcsolni. Vagy talán nem most, hanem a jövőben. És azt hiszem, szeretném.

Jonathan: Igen, mindenképp, ezt fel kellene hoznunk egy, egy közösségi hívásban, mert szerintem az jó lenne, ha ezt visszahoznánk a, a, a fókuszba. Szóval Gabriel, az egyik kérdés, amit gyakran felteszünk, és ez nem az, amiről korábban beszéltem veled, hanem... Az egyik kérdés, amit szeretek feltenni, mert mindig nagyon érdekes és változatos: hogy hirtelen „kattant-e be” neked a programozás? Az emberek gyakran mondják, hogy volt egy élmény, amikor hirtelen minden értelmet nyert. Nálam gyakran ez a történet... Példát hozok az iskolából, amikor kémiát tanultam, az Egyesült Királyságban, ahol iskolába jártam. Vannak ezek a vizsgák. És minden ezekhez a vizsgákhoz vezet, három évvel a vizsgák előtt. Szóval három évig tanulsz, és ez a záróvizsgádban csúcsosodik ki. És ez az összes tantárgyra vonatkozik. És az egyik téma nyilván a kémia volt. És úgy három évig halvány fogalmam sem volt a kémiáról. Egyszerűen nem... nem tudtam, nem tudtam megérteni. Aztán egy héttel a vizsga előtt... mintha leesett volna a tantusz, ahogy mondani szokás, hirtelen értelmet nyert. És azt mondtam: jaj, istenem. Mindent le tudok vezetni a periódusos rendszerből. Ha ismerem a periódusos rendszer számait, meg tudom érteni ezt, azt és amazt. És a dolgok igazán egyszerűvé váltak. Olyan volt, mintha... Volt neked ilyen pillanatod a programozással kapcsolatban, vagy ez olyasmi volt, ami magától... Természetesnek találtad, hogy értelmet nyer, és mikor volt az a pillanat, ha ez releváns?

Gabriel: Nem vagyok biztos benne, hogy megvolt ez a határozott pillanat. Szóval azt hiszem, sokat segített, hogy ott volt az a makrófelvétel, és hogy nagyon korán ránézhettem a kódra a Visual Basic for Applications-szel. Nem vagyok biztos benne, hogy ma is létezik még ilyesmi. Azt hiszem, Wordben még mindig meg lehet csinálni. De nem gyakran van az embernek ilyesmije, ahol fel tud venni, aztán megnézheti a kódot, és így tanulhat. Szerintem ez sokkal könnyebbé tette számomra, mert az elején sokat küszködtem. Azt hiszem, egyfajta pillanat, ahol azt mondanám: oké, nem az, hogy megértettem a dolgokat, hanem hogy rájöttem, lényegében... hogy jól vagy rosszul csinálom-e a dolgokat, az volt, amikor csatlakoztam ahhoz a céghez diákként. Alapvetően ez volt az első alkalom, hogy dolgoztam. Együtt dolgoztam más fejlesztőkkel. Előtte mindig csak egyedül voltam, és alapvetően mindent nekem kellett csinálnom. És mindig nagy kérdés volt. Általában így szokás csinálni? Furcsának tűnik. Bonyolultnak tűnik. Úgy tűnik, működik, de helyes-e? És erre valahogy választ kaptam, amikor csatlakoztam ahhoz a céghez, és elkezdtem odajárni. Határozottan sok mindent meg kellett tanulnom, és sokat is tanultam. Például az Access rekordhalmazok. Korábban sosem igazán értettem meg őket. Dolgoztam velük, de

Jonathan: Mm.

Gabriel: igen, működött

Jonathan: Igen. Valami...

Gabriel: Aztán igazán megértettem, elkezdtem megérteni őket. Szóval ez talán olyasmi volt, ami nekem „bekattant”, mert volt egy kollégám, és ő elmagyarázta nekem, és tényleg... egy nap bekattant, megértettem, hogyan működnek, és

Jonathan: Mm-hm.

Gabriel: hogyan kellene működniük, és hogyan kell helyesen használni őket, és így tovább. Szóval igen, talán ez volt az egyik ilyen pont. De azt hiszem, ezek a pontok nagyon gyakran jönnek el a munkánkban. Nem hiszem, hogy csak az az egy pont van, talán az az egy kezdeti pont. De a Go esetében is rengeteg hely van, ahol bekapattanhat nekem, ahol megértem, miért olyan valami, amilyen, és hogyan kell használni. És például a context. Igen. Például a Context.

Jonathan: Igen.

Gabriel: Igen. Például a context... amióta bekerültek, nem vagyok biztos benne, talán 1.6-ban vagy 1.7-ben. Valamikor akkortájt. Nem néztem meg őket. Őszintén szólva az elején nem is igazán volt rájuk szükségem. Aztán egy az egyben... Egy meetup volt, és valaki előadást tartott a contextről, hogyan használták őket, hogyan... és így tovább. És az a gondolat

Jonathan: Hmm.

Gabriel: meg kellene néznem. De még eltelt néhány hónap, mire igazán megnéztem őket, és megértettem, miért vannak ott. És például a close channel, nem tudom, tudsz-e róla, sok ember még mindig azt javasolja az interneten, hogy egy goroutine-t egy csatorna lezárásával zárj le, és ezt nem kellene. Pont ezért van a context. Igen. Használsz egy contextet, megszakítod a contextet, és akkor ezzel le tudod zárni a goroutine-t. Ha lezárt csatornát használsz, alapvetően manuálisan csinálod azt, amit a context belsőleg csinál, és rengeteg buktatót kell elkerülni, rengeteg problémát. Hogy elkerüljük ezeket, általában az emberek rosszul csinálják.

Jonathan: Biztos vagyok benne, hogy volt egy élő... élő adásod, és említettél valamit erről. Azt hiszem, emlékszem is, ahol említetted, tudod, csak használj contextet, mert

Gabriel: Igen.

Jonathan: sok értelme van.

Gabriel: Emlékszem, hogy említettem azt a részt.

Jonathan: Igen. De nem, szóval ami azt illeti, hogy amikor korábban mentoráltál embereket, mik azok a... Fel tudod ismerni. Cselekvéseket vagy viselkedéseket vagy dolgokat, amelyeket azok az emberek, akik gyorsan megértenek dolgokat... Fel tudod sorolni, mit tesznek, ami lehetővé teszi számukra, hogy gyorsan vagy hatékonyabban tanuljanak? Vagy sok mentorált esetében... az emberek, akiket mentoráltál, egyszerűen természetes módon elkötelezettek ebben az irányban? Vagy vannak olyan emberek, akikről azt mondod: Hű, csinálnak dolgokat, olyan dolgokat tesznek, amelyek felgyorsítják a fejlődésüket.

Gabriel: Nem vagyok biztos benne, hogy másokról ezt el tudom mondani. Magamról viszont mindenképp elmondhatom. Azt hiszem, a szüleimtől tanultam. Ők maguktól megtanultak sok mindent, és tőlük tanultam meg, hogy magamtól is megtanuljak dolgokat. Szóval a programozást teljesen egyedül tanultam meg. Az elején ott volt apám. Voltak dolgok az iskolában. Legtöbbször, a későbbi iskolai osztályokban, én, illetve mi, szinte mindannyian jobbak voltunk a tanárnál. Szóval nem volt igazi tanulás. Inkább valamiféle egymástól tanulás volt. De

Jonathan: Igen.

Gabriel: Általában mindent magamtól tanultam meg. És szerintem erre szükség van a programozásban. Mert folyamatosan bele kell ásnod magad olyan dolgokba, amiket korábban még nem láttál. Nem ismersz őket, utána kell olvasnod. Hogy is mondjam? Ez... a képesség. Igen. Ez a képesség, hogy beleássad magad valamibe és magadtól megtanuld, szerintem kulcsfontosságú a programozásban, a tanuláshoz. És persze sokkal gyorsabban tudsz tanulni, ha találsz valakit, aki mesél neked erről. Szóval nem szeretném azt mondani, hogy ne keress mentort, ne menj az Exercism-re, és így tovább. Ez segít, hogy sokkal gyorsabban fejlődj, de mégis ez az. Ezt mondanám.

Jonathan: Úgy tűnik számomra, hogy a tanulásod gyakorlatilag a problémák megoldásán keresztül zajlott. Akár makrókat írtál, hogy hatékonyabban csinálj valamit, akár mást... és úgy tűnik, ez egy központi téma volt, amely ismétlődött az életedben a tanulás szempontjából, ami szerintem nagyrészt egybeesik azzal, amit általában az Exercism is próbál tenni, hogy segít az embereknek gyakorlatiasan dolgokat csinálni.

Gabriel: Igen. Ki kell próbálni.

Jonathan: Szóval igen. Ez igazán menő. Szóval, Gabriel, nem sok időnk van hátra, de van két utolsó... nos, nem is kérdés. Az egyik egy kérdés, és arra kérlek, hogy oszd meg a véleményedet, a másik pedig az lesz... nos, ez is egyfajta vélemény. Arra kérlek, hogy adj a közösségnek egy ajánlást valamire, amit ki kell próbálniuk ezen a héten. De az első dolog: sok korábbi emberrel beszéltünk, akiket interjúvoltunk meg, és ha egy ideje hallgatod ezt a podcastot vagy élő adást, tudod, hogy általában egy nagy kérdést teszünk fel az élő adásunk vége felé. És a kérdés az: melyik az a dolog a tech-iparban, amiért készen állnál meghalni? Szóval mi az az egy vélemény, amelyet nagyon határozottan képviselsz, és amely mellett ki szeretnél állni? És ne feledd, erre jó érvet kell adnod. Nem mondhatod csak azt, hogy ez az én véleményem, és kész. Képesnek kell lenned megvédeni magadat ebben az értelemben. De mi lenne az a vélemény... És lehet olyan komoly vagy olyan intenzív vagy olyan jelentéktelen, amilyet csak szeretnél. Szóval mi lenne az?

Gabriel: Azt mondanám, ez egy közmondás. Van egy mondásunk, vagy valaki azt mondta a Go közösségben, mégpedig az, hogy az unalmas kód jobb, mint az okos kód.

Jonathan: Tetszik. Ez mit jelent?

Gabriel: Ez mit jelent? Igen, alapvetően ez... összefoglalja a Go filozófiájának nagy részét az egyszerűség és az olvashatóság körül. Szóval ha a Go-kódban azt gondolod: Hű, ez okos, az valójában rossz kód. Még akkor is, ha a kódoló, aki csinálta, nagyon intelligens volt, és nagyon okos módon csinálta. És néha úgy érzem, hogy ha igazán követed a Go egyszerűségét és idiómáit, akkor valójában nincs a kódbázisodban olyan kód, amire rá akarsz mutatni, vagy amire rá tudsz mutatni. Nézd meg azt a kódot, milyen jó, mert az egész kódod valójában unalmas és nagyon egyszerű, és mindenki, aki ránéz a kódodra, azt mondja majd: Mi olyan különleges ebben? Igen, de a lényeg, hogy azért érted el az egyszerűséget, mert jó programozó vagy, és ez egy iterációs folyamat, a bonyolult kód... bonyolult kódot írni nagyon könnyű. Egyszerű kódot írni... Mert először egyszerűvé kell tenned a problémát a fejedben, aztán helyesen kell megírnod a kódot, aztán iterálnod kell rajta, és egyszerűvé tenni. És ez sokkal hosszabb folyamat, és sokkal jobb fejlesztőket igényel, mint egyszerűen bonyolult kódot írni, ami, ha ránézel, nehezen érthető. Nehéz olvasni, nehéz karbantartani és nehéz módosítani.

Jonathan: Ez az állandó dolog a kompromisszumokról, nem? Szóval én elég fiatal vagyok a tech világában, három éve, és nem fejlesztői oldalról jövök. Inkább a termék oldaláról, a termék oldaláról jöttem. Inkább az üzleti szemszögből. És ha mondhatom, egyik igazán érdekes dolog az volt, hogy egyre nyilvánvalóbbá vált, hogy minden a kompromisszumokról szól. Szóval azt mondod, a kompromisszum az egyszerű kód kontra bonyolult kód, ahol a bonyolult kód lehet, hogy később csak körülményesebb és bonyolultabb lesz. Az egyszerű kód tovább tarthat, és több energiát és erőfeszítést igényelhet előre. És ez az a kompromisszum, amit folyamatosan meg kell hozni. Szóval ez volt az egyik... nem tudom, mi a véleményed erről, de úgy tűnik számomra, hogy valóban az egyszerűség oldala... mert emlékszem, anyámnak volt egy barátja az egyetemen, és ő mindig csak kétoldalas esszét írt a feladataihoz. Mert képes volt mindent két oldalba sűríteni, és kitűnő jegyeket kapott érte. Szóval azt hiszem, ez összhangban van az egyszerűség egész fogalmával, és szerintem nagyon nehéz egyszerű kódot írni, mert világos, világos gondolkodást igényel, nem csak kódolást. Szóval szerintem ez egy, ez egy méltó domb, és szerintem ezt jól kifejtetted. Nagyon jól beszéltél erről. Szuper. Szóval Gabriel, a hét utolsó kérdése. És most adhatsz egy kis tanácsot az Exercism közösségnek. És bármi lehet. Lehet egészségügyi tanács, étrendi tanács. Ez a te lehetőséged, hogy megossz egy tanácsot, amit a közösségnek adnál, és bármi lehet, amit csak szeretnél. Szóval mi lenne az ajánlásod az Exercism közösségnek ezen a héten? Mi az az egy dolog, amit ki kell próbálniuk vagy meg kell tenniük, a te szemszögedből...

Gabriel: Ó, ez nehéz. Oké, most, hogy azt mondod, bármi lehet, adhatok két dolgot?

Jonathan: Megengedem, legyen kettő

Gabriel: Oké. Egy, egy ajánlás. Szóval igazából vegetáriánus vagyok. Vegetáriánusként nőttem fel. Soha nem ettem húst, és igazából vegánként nőttem fel, a gyerekkorom és a fiatalságom nagy részében. Szóval próbálj meg egy hetet tejtermékek nélkül. És ez lenne az egyik. A másik ajánlás pedig az lenne, hogy... nem vagyok biztos benne, hogy meg tudod csinálni egy hét alatt, de ha jó fejlesztő vagy, akkor igen. Nagyon érdekes és nagyon megéri megpróbálni megosztott memóriát építeni, amely több szolgáltatás között van megosztva, ugyanaz a szolgáltatás, megosztott memória. Próbálj meg implementálni egy megosztott memóriát a Raft protokollal. Használhatsz egy könyvtárat. Nem kell magát a Raftot implementálnod, de

Jonathan: Raft El kell küldened nekem, el kell küldened a linket, hogy ki tudjam írni. Szóval ez Gabriel kihívása... nos, talán nevezzük Gabriel heti kihívásának. Talán nem is annyira ajánlás. Talán kellene...

Gabriel: Igen. Ez inkább valami, amit ki lehet próbálni.

Jonathan: Küldesz, küldesz egy kihívást. Ez jó móka lehet, de szuper. Szóval egy hét hústermék nélkül. Nézzük, hogy sikerül, és építs egy megosztott memória szervert. Mit mondanál? Szolgáltatást, megosztott

Gabriel: Igen, nevezheted memóriabeli kulcs-érték

Jonathan: Oké.

Gabriel: Szóval több szolgáltatás, egy adatbázis, vagy egy szolgáltatás. Igen.

Jonathan: Szuper. Ez...

Gabriel: Mert sok mindent megtanít arról, hogyan működnek az adatbázisok. Igen. A motorháztető alatt. Szóval főleg a megosztott... a megosztott modellek... igen, nem tudom. Igen. Cassandra, illetve Scylla, nem tudom, nálad van-e Scylla. Ez olyasmi, mint a Cassandra, de C++-ban, és most váltanak a Raft protokollra. Vagy... ez egy kulcs-érték adatbázis. A megosztott... egy... nem, ez nem adatbázis. Ez konfigurációkezelés. Igen, a Badger a Dgraph-tól. Az is azt hiszem, Raftot használ a motorháztető alatt, hogy elossza az adatokat. Nem tudom biztosan, újra meg kellene néznem. De sok adatbázis használja, elosztott rendszer. Szóval az elosztott rendszer alapvetően nagy kihívás, azt mondanám, a modern korunkban. Éppen megoldjuk, de még mindig sok kihívást kell leküzdeni, és igen, mindig jó, ha az ember tud ilyen szempontból gondolkodni, mert ha képes rá, akkor sok lehetőség nyílik meg.

Jonathan: Hmm.

Gabriel: Ha bármire szükséged van... Az utolsó cégnél valójában efelé az irány felé haladtam, hogy egyszerre több szolgáltatás között legyen megosztott memória. Igen.

Jonathan: Talán, talán be kellene ezt szerveznünk mesterkurzusnak. Adunk az embereknek egy-két hetet, hogy kipróbálják. Aztán, Gabriel,

Gabriel: ez... ez a mester...

Jonathan: Igen,

Gabriel: ha végeztél az Exercism-mel, és megcsináltad az összes feladatot,

Jonathan: Ez a nagy dobás. A nagy dobás. Ez mindent összeköt. Gabriel, nagyon köszönjük az idődet. Igazi öröm volt beszélgetni veled ma este. Ha szeretnél még maradni, miután befejezzük a felvételt, csak gyorsan, de mindenképp szerettem volna egy hatalmas köszönetet mondani, és nagyon értékelem mindazt, amit az Exercism-be fektetsz, és nem csak értünk, hanem az összes mentorálást is, amit távolabb végzel, és segítesz az embereknek jobb kódot írni. Biztos vagyok benne, hogy mindenhol nagyra értékelik. Szóval köszönjük az idődet. És keressétek Gabrielt. Ha az Exercism-ön vagytok, küldjetek neki egy üzenetet, kérjetek mentorálást, és biztos vagyok benne, hogy jól fogjátok érezni magatokat Gabriellel. Szuper.

Gabriel: Nagyon köszönöm.

Jonathan: befejezzük a felvételt. Igen, nem, köszönjük, köszönjük, hogy csatlakoztál, és hamarosan látunk valamilyen platformon valahol

Gabriel: Köszönöm.

További történetek a közösségünkből

Hallgass, tanulj és meríts ihletet a közösségünk tagjaitól.