Dit bericht is bedoeld om ten minste één persoon te helpen die zich ongeveer een jaar geleden in mijn situatie bevond. Het advies hier is het meest waardevol als je serieus bent over het worden van een software-ontwikkelaar full-time, maar kan nog steeds van waarde zijn als je gewoon op zoek bent om je vaardigheden uit te breiden of gewoon nieuwsgierig naar het leren van ontwikkeling. Dit gaat niet over de technische dingen, maar over de belangrijke dingen op een hoger niveau.
Over anderhalf jaar geleden stond ik voor de moeilijke beslissing hoe ik mijn carrière nu verder wilde ontwikkelen. Mijn werk als projectmanager liep ten einde, zonder verlenging. De arbeidsmarkt voor projectmanagers is hard en competitief, maar het grotere probleem zat van binnen. Hoewel ik voor geweldige teams en grote en kleine organisaties had gewerkt, had ik er niet zoveel plezier in als ik had verwacht. Ik had het gevoel dat ik tegen de stroom invloog en niet deed waarvoor ik was voorbestemd.
Ik nam de moeilijkste beslissing om door te gaan met programmeren, wat een beetje gek was gezien de omstandigheden. Ik had een bedrijfskundige graad en geen echte programmeerervaring, afgezien van een paar HTML/CSS workshops. Ik had een grote persoonlijke en universitaire studieschuld. Alles wat ik had was een klein beetje spaargeld, de overtuiging dat ik het kon laten werken, en (gelukkig) een zeer ondersteunende partner. Ik heb ooit een boek gelezen waarin stond dat je verstand je zal verraden, maar je hart zal dat nooit doen, het kan het gewoon niet. Dus besloot ik mijn hart te volgen.
Hier vind ik de beste plek voor de eerste les:
… en zelfs als je daar eenmaal bent, houdt het leren nooit op.
Dat was het moeilijkste jaar dat ik ooit heb meegemaakt. Ik heb veel tijd moeten investeren om te leren en op te bouwen. Ik moest al mijn spaargeld aanspreken en me nog dieper in de schulden steken. Ik moest mijn ego loslaten en accepteren dat ik weer een beginner was, ik moest minder tijd met mijn partner doorbrengen, ik moest mijn best doen om mijn familie en vrienden uit te leggen dat ik een draai van 180 graden aan het maken was zonder enige garantie dat ik ooit zou doorbreken in een industrie waar weliswaar veel vraag naar is, maar die overspoeld wordt door jonge afgestudeerden in de informatica en gretige bootcamp-alumni van ontwikkelaars.
Ik had ook geen geld voor bootcamps. Ik had geen andere keuze dan alles wat ik leerde mezelf aan te leren. Het enige wat je er doorheen helpt is doorzettingsvermogen. Niet slim of geld. Die kunnen helpen, maar het is allemaal gebaseerd op het harde werk dat je erin steekt. En het enige dat je door die moeilijke tijden heen helpt, is als je Plezier hebt.
DIT MOET PlezierIG ZIJN om door de moeilijke uitdagingen heen te komen.
De opwinding van het oplossen van een echt moeilijk probleem moet enorm voor je zijn, want de inspanning die je zult leveren om programmeerproblemen op te lossen, kan soms stressvol zijn, slopend en tijdrovend. Als je opgewonden of zelfs geobsedeerd bent om iets op te lossen dat een uitdaging blijkt te zijn, zal dit op een grote manier helpen.
Een combinatie van niet opgeven als het moeilijk wordt en opgewonden zijn over het oplossen van een groot probleem zijn noodzakelijke ingrediënten. Als je deze ingrediënten hebt maar denkt dat je niet slim genoeg bent, begrijp dan dat het er niet om gaat dat je in het begin slim of effectief bent. Niemand weet alles, zeker niet als hij begint. Waar het om gaat is de voortdurende inspanning, ongeacht hoe lang het duurt tot je er bent.
Ga af van de perceptie dat programmeren gaat over goed zijn in wiskunde. Een programmeur moet goed zijn in het oplossen van problemen, problemen die hij nog niet eerder is tegengekomen. Dit is net zo belangrijk op de werkvloer als wanneer je begint met leren.
Kies al vroeg een pad en FOCUS OP HET.
Dit is misschien tegenstrijdig advies, maar iets waarvan ik wilde dat ik het al vroeg wist. Ik begrijp de voordelen van het proberen om van alles een beetje te leren. Je natuurlijke instinct kan zijn om alles te willen leren. Je zult snel leren dat dit onmogelijk is en niet hoe het werkt.
Elke programmeur heeft een bepaalde expertise, vaardigheden en het kan heel korrelig worden. Bedrijven huren je in op basis van bepaalde vaardigheden. Als je eenmaal bent aangenomen, kun je software gaan gebruiken waar je nog nooit van hebt gehoord, dat is niet erg en een zeer waarschijnlijk scenario, maar in het aannameproces word je beoordeeld op een bepaalde vaardigheden.
Kies een PATH of je zult er waarschijnlijk onder lijden dat je alles alleen op basisniveau weet en niets op een diep niveau, waar het echte leren en de uitdagingen liggen.
Dit kan betekenen dat je eerst een korte onderzoeks- en ontdekkingsperiode doormaakt. Maak het gewoon je doel om op een gekozen pad te komen. De belangrijkste keuze is wat voor soort programmering je wilt doen (bijv. webdesign, front-end, back-end dev, mobiele applicaties, enz.) Als je eenmaal hebt besloten welk pad je wilt volgen, onderzoek dan de standaard tools die in de industrie worden gebruikt, de functiebenamingen, het soort vaardigheden dat van je wordt verwacht, enz. Het is ook nuttig om te beslissen voor welk type bedrijf u wilt werken. Je baan en vaardigheden kunnen sterk verschillen, bijvoorbeeld tussen tech startups, grote banken en non-profit organisaties.
BUILD PRODUCT. Dit zou je belangrijkste indicator van vooruitgang moeten zijn.
Deze is misschien weer controversieel, maar maakte voor mij het verschil. Een van de dingen waar ik in het begin moeite mee had, was waar ik me maand na maand op moest richten in termen van vooruitgang. Het is gemakkelijk om je te verliezen in leerprestaties, groene vinkjes en feliciterende meldingen bij het voltooien van online cursussen. Deze zijn geweldig en noodzakelijk in het leerproces. Maar aan het eind van de rit kan het niemand echt iets schelen wat je in een cursus hebt geleerd, hoeveel je er hebt gedaan, of welke digitale certificaten je hebt omdat je er 120 uur aan hebt besteed.
Wat ze belangrijk vinden is wat je BOUWT. Ik zeg niet dat online cursussen niet waardevol zijn, ze kunnen een uiterst waardevol instrument zijn om te leren wat je moet weten. Maar vertrouw er niet te veel op, leer in een vroeg stadium je eigen dev-omgeving op te zetten (ja, met de in eerste instantie eng uitziende terminal) en bouw dingen.
Wat je in je eentje bouwt, maand na maand, zou datgene moeten zijn waar je je op moet richten als mijlpalen in je reis. Als je solliciteert, is dit waar je bijna al je tijd aan besteedt om over te praten en het te laten zien. Mensen houden ervan om te zien wat je hebt gebouwd.
Don’t be Afraid to DIVE INTO THE DEEP END.
Dit was misschien wel het beste advies dat ik al vroeg kreeg tijdens het interviewen van andere programmeurs over deze carrière. Als je snel wilt bepalen of programmeren het juiste carrièrepad voor je is, is dit de BESTE MANIER om jezelf te testen. Het zal ook je doorzettingsvermogen sneller opbouwen als je echt binnen een jaar een baan wilt hebben.
Als je eenmaal hebt besloten welk pad je wilt bewandelen, kies dan een HARD project. Misschien is het een coole app die je in gedachten had en gebruik je een geavanceerd framework om hem te bouwen, geen project is te gek. Het doel hier is niet de voltooiing van het project (hoewel dat geweldig zou zijn), maar zien hoe ver je komt, hoe je reageert op de druk van het zijn in een volledig onbekende ruimte, hoe snel je een nieuw concept kunt begrijpen.
Gaande weg zul je waarschijnlijk tegen nieuwe maar belangrijke concepten aanlopen waar je overheen zult moeten klimmen (bijv. het opzetten van een dev omgeving, het installeren van je tools, het vinden en begrijpen van documentatie, begrijpen hoe je met een API communiceert, begrijpen hoe je een AJAX call maakt, begrijpen hoe het internet werkt, etc.)
De voordelen van dit doen is dat het al het leren dat je gaat doen in perspectief plaatst. Het geeft betekenis aan de lessen wanneer je ze leert. Het geeft je ook het vertrouwen dat je het kunt. Je zult het nodig hebben voor de zware, hardwerkende maanden die voor je liggen. Wees niet bang om in het diepe te duiken, nooit.
BE OPEN in termen van het type Industrie of Markt waar je je in begeeft.
Het is belangrijk om een pad en een doel voor ogen te hebben voor het soort baan dat je wilt. Maar het is ook belangrijk om open te staan voor de kansen die zich voordoen.
Mijn oorspronkelijke doel was om bij een tech-startup te gaan werken, aangezien ik veel connecties en ervaring had met de startupscene in Toronto. Maar ik werd aangenomen door een ongelooflijke non-profitorganisatie in de film- en kunstwereld met een geweldig team, een leuke omgeving, een bekend merk en veel groei- en leermogelijkheden. Het leven is grappig en je weet nooit wanneer een compleet andere industrie of markt misschien heeft wat je zoekt. Vergeet niet dat iedereen programmeurs nodig heeft, want iedereen concurreert om aandacht in de digitale ruimte.
Ben open en wees tijdens je zoektocht naar een baan niet bang om buiten je gebruikelijke grenzen te gaan. Solliciteer bij een aantal willekeurige maar interessante organisaties die je fantasie prikkelen. Zelfs als ze niet expliciet vacatures hebben voor jouw functie. Je weet nooit wie je kunt ontmoeten of wie jouw specifieke vaardigheden nodig heeft. Passie en interesse in je werk helpen je een heel eind op weg en kunnen helpen om gaten in je ervaring te dichten. De minst verwachte sector zou wel eens de sector kunnen zijn die je de grootste kansen biedt.
Netwerken is GROOT, maar wat nog groter is, is het BOUWEN VAN PRODUCTEN.
Dit volgt op eerder advies en voelt misschien repetitief aan, maar ik herhaal het voor het belang. Dit kan ook tegenstrijdig zijn en nog meer als je uit een zakelijke achtergrond komt. Ik weet het, ik snap het en ik heb het meegemaakt. Je netwerk is je sleutel. Bij het worden van een programmeur is dat ook belangrijk, maar niet zo belangrijk als het BOUWEN van PRODUCTEN. Er is een sterke behoefte in de markt voor ontwikkelaars voor de nabije toekomst. Als je er klaar voor bent zullen er genoeg mogelijkheden zijn en mensen om te ontmoeten. Maar tot die tijd maakt het niet echt uit hoeveel tech-conferenties of sociale netwerkevenementen je bijwoont.
Ik zeg niet dat je deze dingen niet moet doen, ze zijn waardevol en belangrijk om niet te verdwalen in je eigen bubbel, en om te leren waar de industrie het over heeft. Maar maak je MEER zorgen over het bouwen van een product. Dit helpt je ook wanneer je evenementen bijwoont en anderen ontmoet, omdat het je een focus geeft voor je gesprekken. U kunt echte, eerlijke feedback, ideeën en misschien geweldig advies krijgen als u mensen iets laat zien en met ze praat. Pak je laptop (indien van toepassing) en laat het mensen zien, krijg feedback, oefen met het uitleggen van je denkwijze en je redenering waarom je X op een bepaalde manier hebt gebouwd.
Bedenk hierbij dat design ertoe doet en door anderen te laten zien wat je hebt gebouwd, dwingt het je om je zorgen te maken over zaken als UI, UX en visueel design. Ik weet dat dit misschien eng klinkt, maar je zult je op je gemak moeten voelen om over je projecten te praten als het gaat om interviews.
Je doel voor interviews: Leid het gesprek naar WAT JE BOUWT.
Voor een zo succesvol mogelijk gesprek, moet u ernaar streven het gesprek in de richting van uw producten te leiden. Dit zal niet altijd lukken en je zult waarschijnlijk hoe dan ook codering en technische tests moeten doen, maar ik heb gemerkt dat dit echt helpt bij het interviewen. Wees bereid om te vertellen waarom je bepaalde beslissingen hebt genomen.
Waarom heb je dit framework/bibliotheek/taal gekozen? Waarom heb je dit op die manier gebouwd? Waarom heb je deze knop hier geplaatst (ja, als programmeur ben je ook onderdeel van het ontwerpproces, verrassing!)? Waarom heb je deze methode gekozen om deze lijst te sorteren? Wie is de gebruiker (ja, als programmeur maak je ook deel uit van het UX-proces, verrassing!?)
Bereid je voor om over de gebruiker te praten. Begrijp de gebruiker diepgaand en hoe jouw project hun pijn of verlangen oplost. Aanwervende managers zullen het erg prettig vinden om te zien dat je veel om de gebruiker geeft en je bewust bent van vooroordelen of aannames die je persoonlijk hebt en die het product kunnen beïnvloeden.
Bedenk dat degene die aanwerft je niet probeert bang te maken of je persoonlijke beslissingen in twijfel trekt. Ze willen dat je wint. Maar waar ze vooral nieuwsgierig naar zijn, is hoe je denkt, hoe je reageert op uitdagingen, en hoeveel je geeft om de gebruiker en hun probleem. De beste manier om dit te laten zien is door middel van je projecten.
Doe net zo lang totdat je er bent.
Het is een moeilijke reis, vol stress, je verloren voelen, soms niet weten waar je bent. Het is belangrijk dat je niet opgeeft door de woelige wateren. Onthoud dat elk probleem dat je tegenkomt eigenlijk een vermomde kans is. Iets dat je misschien op een hoger of dieper niveau van begrip over een concept brengt. Wees niet hard voor jezelf als je faalt. Voel je op je gemak als je vaak faalt en omarm het als onderdeel van de reis.
Ik hoop dat dit advies iemand bereikt die het nodig heeft en doormaakt wat ik heb doorgemaakt, en ik hoop dat het helpt. Je kunt het, gewoon door blijven gaan! 🙌🙌🙌
Dank je voor het lezen en volg me alsjeblieft op Medium of Twitter @aellenj