Hvad jeg lærte at gå fra Twitter praktikant til fuldtids Twitter software ingeniør

Mere kodning og vækst!

* Ser på kalenderen * Whoa! Har det været seks måneder allerede ?! Den første dag i min Twitter-praktik vidste jeg, at det ville tage evigt at se slutningen af ​​tunnelen, men her er vi. Jeg er fuldtidsingeniør på Twitter !! ?

Det var bestemt en sprint, og jeg lærte mere, end jeg kunne forestille mig. Jeg er glad for, at jeg kunne opsuge det meste af viden. Nu vil jeg tage mig tid til at skrive om min erfaring med at gennemføre programmet. Jeg ved, at de fleste praktikprogrammer har enkle veje til fuldtidsbeskæftigelse. Så jeg vil fremhæve nogle af de faser, jeg har gennemgået, faldgruber jeg stod over for og reflektere over alt det, jeg lærte. Hvis jeg kan hjælpe en person på deres kodning fra dette indlæg, så →? !!

Bemærk: Hvis du er nysgerrig efter, hvordan jeg landede Twitter-praktikken, kan historien findes her: Hvordan jeg gik fra ansat luftvåben til softwareingeniør praktikant @ Twitter

Spændingen

Så snart jeg fandt ud af, at jeg ville praktisere på Twitter, følte jeg mig som den største motor i verden. Fuld af energi og klar til at erobre de projekter, der var uheldige nok til at lande på min vej.

Bortset fra at en motor ikke er noget uden resten af ​​bilen, og det er usandsynligt, at du vil dukke op som en fuld bil. Selvom du tidligere har arbejdet som ingeniør, er der ting, der varierer fra firma til virksomhed. Men uddannelse på arbejdspladsen bliver din nye bedste ven. Med en god del af dette kører du på ingen tid!

Det første skridt mod at bygge resten af ​​bilen var New Hire Orientation. Det var her, jeg indså, at Tech Company XYZ ikke baserer deres stack ud af FreeCodeCamp-lommeregnerprojektet.

Under orienteringsugen på Twitter får ingeniører et overblik over, hvordan Twitter fungerer, og detaljer om, hvordan brikkerne kommer sammen for at få det til at ske.

Først fremkalder det en woah-dette-er-sindssygt-kompleks type følelser. ? Når du begynder at arbejde igennem, giver det meget mere mening. Pludselig arbejder du på et projekt og støder på ting, du husker at have hørt om i orientering. M ake sikker på at du ikke føler, tænker over, ønsker, eller overveje behovet for at dykke ned i hver eneste af stakken.

Disse forklaringer på højt niveau er stadig nyttige. De hjælper dig med at se det store billede og hvordan dit team bidrager til virksomhedens mission. Så mens jeg var ivrig efter at komme i gang, ville det have givet mig mulighed for at rampe op meget mere glat, hvis jeg havde tid til at blive bosat i!

Begynderen

At starte på et nyt firma i en helt ny branche, der gjorde et helt nyt job, var et massivt skift for mig. Jeg følte pludselig, at jeg var i grundlæggende træning igen. Da jeg startede, vidste jeg ikke engang, hvordan jeg skulle bruge en Mac. ? Jeg har været pc-person hele mit liv. Det er en ret skræmmende følelse, for som en ny ansættelse vil du give værdi - og i stedet kan du nogle gange føle dig temmelig ubrugelig. Bare vær tålmodig med dig selv. Ikke at have denne tålmodighed var en af ​​de mest udfordrende ting at håndtere, da jeg først kom i gang.

Som jeg sagde, har du denne motor, der er klar til at gå helt ud. Men der er lidt arbejde, der skal lægges ned, før du kan overtage verden! At være tålmodig hjælper dig med at blive hurtigere produktiv. Det vil også hjælpe dig med ikke at føle dig spild af ilt, mens du lærer. ?

Opbygningen

For at forstærke de færdigheder, jeg havde brug for for at blive produktive, vidste jeg, at jeg skulle bryde dem op i etaper. Jeg ville først lære de mest nødvendige færdigheder, nogle produktivitetsfremmende færdigheder osv.

Det problem, jeg havde i starten, var at finde ud af, hvilken færdighed i disse faser jeg skulle lære først. Antallet af ting, der kunne læres, var overvældende. Der var bare så meget nyt omkring mig! Jeg vidste dog, at kun en lille brøkdel ville være relevant for det, jeg forsøgte at opnå.

Som reference havde jeg aldrig brugt størstedelen af ​​de teknologier, som jeg ville bruge i de kommende seks måneder. Ok ok undtagen Git, men bortset fra det følte jeg, at jeg var på en ny planet!

Til sidst fik jeg det første mål at lære at bruge den nye IDE. Editoren, jeg ville bruge, hedder IntelliJ, og den har en skør mængde knapper på, og jeg brugte tidligere Atom. Så endnu en enorm switch!

Da jeg endelig var klar til at skrive en kode, var mit første instinkt at finde ud af, hvordan jeg lavede et lille projekt, som jeg var bekendt med. I det væsentlige laver jeg et oversættelsesprojekt med mine nye værktøjer. Så her prøvede jeg at komme til et helloWorld Scala-program (Ja, jeg regner dette som et lille projekt?) For at udskrive til konsollen. Jeg følte det som om det var dag ét i FreeCodeCamp igen.

Efter at jeg fik det projekt til at arbejde, fik jeg et større praksisprojekt. Det eneste problem var, at jeg ikke vidste, hvordan jeg skulle bygge og teste dette projekt med mine nye værktøjer. Hvad der var endnu skørere var, at jeg havde bygget dette øvelsesprojekt før (The Bit.ly style URL Shortener). Så jeg vidste, hvordan man implementerede logikken, og jeg kunne endda vedvare dataene. Men uden Atom, NPM, MongoDB og NodeJS var jeg tabt! I det mindste var jeg anstændig til at navigere rundt på Mac på dette tidspunkt.

At lære et nyt sprog (Scala) og IDE (IntelliJ) på samme tid bremsede mig lidt ned. Naturligvis var det en langsom proces for mig at ”føle” mig produktiv.

Når jeg ser tilbage, har jeg lært, at sortering og prioritering af, hvilke emner jeg skal lære nu, og hvilke, der skal grave dybere ind i senere, er uhyre nyttigt. Det kan faktisk være lettere at fjerne alle de ting, du ikke behøver at lære, og fokusere på, hvad der er tilbage.

Der var mindst to eller tre ting, jeg gravede ind i, når jeg ser tilbage, havde jeg ingen forretning, der afsatte tid til. Hvis jeg kunne starte forfra, ville jeg udelukkende have startet med et par IntelliJ-tutorials. På denne måde kunne jeg i det mindste have kørt enkle programmer og ændret dem til at eksperimentere med miljøet. Jeg ved, at dette måske lyder som en no-brainer, men når du bliver bombarderet med halvtreds ting, du aldrig har hørt om, er det lidt svært at sige igennem dem.

Uanset hvilken rute du tager, kommer det hele sammen med tiden. Bare stop ikke. Det er bare et spørgsmål om, hvor effektiv du vil være! (Prius eller Hellcat?) Før jeg vidste af det, byggede jeg faktisk projekter! Den glæde, jeg følte, var fantastisk. Jeg skrev Scala-kode ved hjælp af IntelliJ og brugte endda min Mac uden at google, hvordan man bruger enkle funktioner. Absolut et "W" men stadig ikke tiden til at hvile!

Bedrager

Dette afsnit berører et emne, som mange måske har oplevet. Hvis du ikke har gjort det, er der lidt heads-up, hvis du gør det en dag! Dette emne er bedrageres syndrom. Det har en hel del former, men de kommer alle tilbage til ikke at føle, at du er i stand. Den underlige del er, at du kan opleve dette, mens du har en track record for at få tingene gjort eller bevise dig selv gentagne gange.

Jeg oplever det næsten hver gang jeg begynder at arbejde på et nyt projekt. Jeg finder hurtigt ud af, at der er ramping at gøre for næsten ethvert projekt, uanset hvor lille. Dette vidensgab, som jeg har før hvert projekt, får mig til at føle mig utilstrækkelig. Dette fører mig naturligvis til "hører jeg til her?" sindstilstand. Og jeg tror, ​​at jeg endelig har fundet ud af hvorfor!

Det faktum, at jeg ikke har en formel CS-uddannelse eller endda kode boot camp-træning, er en del af det. Jeg mener, jeg ved, at jeg ikke er en nybegynder, men at jeg også ved, at jeg mangler små stykker kernevidenskabelig viden. I et stykke tid føltes min CS-viden som et stykke schweizisk ost. Med tiden fyldte jeg dog mange af disse videnhuller og fik mere selvtillid.

Men dette er ikke at sige, at det var slutningen på at føle sig som en bedrager! Næsten hver gang jeg kom ansigt til ansigt med et nyt projekt, ville bedrageres syndrom dukke op igen. ? Til sidst lærte jeg, at denne resurfacing kun skyldtes, at jeg havde 0% –25% kendskab til et givet projekt eller en codebase. Dette lyder som en "godt duh" -type, men da jeg fik tildelt et projekt, begyndte min hjerne bare at køre for at finde ud af, hvordan jeg skal tackle det. Min hjerne tænker over målstregen, og samtidig ved den, at jeg ikke forstår alle de indviklede dele af projektet. Så min hjerne siger noget som "Bro, vi har ingen anelse om, hvad der foregår her, hvordan skal vi gøre dette ?!".

Efter at have gravet ind i koden og læst dokumentationen, ville vi være tilbage på "Jeg fik dette!". Lad resten af ​​jer indhente. ? For mig er analogien ovenfor størstedelen af ​​grunden til, at jeg ville føle mig og undertiden stadig føle mig som en bedrager. Nu hvor jeg forstår dette mere, kan jeg argumentere med min hjerne og derefter slappe af for at indhente. Enhver, der oplever bedragerisyndrom, ved, at vi altid “indhenter”!

Mit råd

Nu var min praktik fantastisk! Jeg lærte så meget. Men jeg ville gøre alle en bjørnetjeneste for at udelade den vigtigste feedback, jeg modtog. Selvfølgelig er jeg ikke perfekt! ? Så her er en liste over de mest almindelige feedback, jeg modtog i løbet af mine seks måneders praktikophold.

  1. Skriv notater (jeg har en god hukommelse, men efter møder om forskellige ting kan du glemme nogle ting). Det var fantastisk at tale med mine holdkammerater i Slack. Jeg kunne altid bare rulle op 24/7 og se detaljer. Hvis jeg bare kunne have det til hver samtale. ? Åh jahh, en notesbog eller et Google Doc.
  2. Giv holdkammerater mere kontekst, når de stiller spørgsmål. Jeg har lyst til, at dette er et almindeligt problem for nye ingeniører. Jeg stillede nogle gange spørgsmål, som om den anden person havde arbejdet i den samme fil og på den samme kode kode, som jeg havde arbejdet med. Og ikke overraskende ville det føre til forvirring, hvis ikke et forkert svar på mit spørgsmål. Det er næsten som at ringe til nogen på din telefon og sige “Hej! Kan du give mig vejvisning hjem? ”. (Før Google Maps, GPS og lignende naturligvis) Men hvis du siger "Jeg er ved skæringspunktet mellem Blah og Blah på vej mod vest og forsøger at komme hjem, kan du hjælpe?" de kan helt sikkert hjælpe meget mere! Hvis de har et kort aka deres mere senior ingeniørhjerne!
  3. Vær ikke en gladiator! Softwareudvikling er en teamsport. Jeg kunne dog ikke ryste følelsen af, at jeg var nødt til at bevise mig selv. Ikke at jeg ikke ville arbejde som et team, men jeg følte, at jeg var nødt til at vise, at jeg kunne håndtere et projekt alene. Det eneste problem var ... ..Jeg behøvede ikke at gøre dette. Denne obsessive mission om at bevise mig selv fik mig kun til at modtage det, som jeg betragter som den eneste store negative feedback i min anden praktikophold. Jeg mener, medmindre du opretter en opstart, vil du have et team til at støtte dig! Arbejd med dem, og alle drager fordel af det!

Bonus: Ud over at være mere specifik, når du stiller spørgsmål, skal du sørge for at stille alle spørgsmål, du måtte have. Dette er super nyttigt råd til os herude og lære os selv at kode.

Der er bare ingen quiz at tage for at se, om din viden kan sammenlignes med nuværende junior softwareingeniører. Så ærligt talt ved du ikke, hvad du ikke ved. Og jeg har lyst til, at de fleste af os accepterer dette som sandt .

Dette er ikke et problem, før du hører noget, der lyder som almindelig teknisk viden. Hvis du nogensinde hører andre ingeniører chatte, og du tænker ved dig selv "det skulle jeg nok vide?" dette er hvad jeg taler om.

Som det viser sig, er det HELT fint, hvis du ikke ved det. Faktisk stiller nogle af de mere senior ingeniører det nøjagtige spørgsmål, jeg tænkte på. Så er du klar over, at enhver ingeniør ikke ved alt. Derefter ser du, at hvert medlem af teamet, som alle ved en god mængde, er det, der gør holdet stærkt. Og spørgsmål og deling gør resten! Sæt dig ikke i frygt for, at emnet er noget grundlæggende, som du bør vide. Spørg løs!!

Konklusionen

For at være helt ærlig havde jeg ingen idé om, hvad jeg kunne forvente på vej ind i denne praktik. Bare at jeg ville skrive kode på et eller andet tidspunkt. Jeg havde aldrig arbejdet inden for teknologi eller arbejdet i et team, der udviklede software.

Alt i alt synes jeg, det gik perfekt. Fra de succeser, jeg havde, sammen med den konstruktive feedback, jeg fik. At komme fra militæret gjorde det bestemt interessant! Især efter at du er uddannet til at følge ordrer i årevis og pludselig skal du beslutte det meste af din daglige arbejdsgang.

Som altid vidste jeg dog, at jeg ville finde ud af det. Ligesom grundlæggende militær træning, da vi var skaldede og forvirrede og skulle finde ud af tilfældige ting på 1,5 sekunder. Først nu er jeg ikke skaldet.

Der er faktisk mange ting, jeg har lært af militæret, som jeg føler hjælper mig meget inden for teknologi. Vi gemmer det dog til et andet indlæg. Jeg vil også takke alle, der hjalp mig på min rejse, og min familie for at håndtere tiden væk fra dem. Jeg følte bogstaveligt talt, at jeg havde en lille landsby, der opdragede mig til at blive en stor ingeniør. Jeg er super taknemmelig og heldig for det supportsystem, jeg har. Tak fordi du læste!