Jak przeszedłem od nowicjusza do inżyniera oprogramowania w ciągu 9 miesięcy podczas pracy w pełnym wymiarze czasu

wpis w: Articles | 0

w tym poście podzielę się, jak przeszedłem od zera(ish) do sześciocyfrowej oferty pracy w inżynierii oprogramowania w ciągu dziewięciu miesięcy podczas pracy w pełnym wymiarze czasu i bycia samoukiem.

za każdym razem, gdy zaczynałem czytać historię sukcesu, od razu Szukałem tła autora, mając nadzieję, że będzie pasować do mojego. Nigdy nie znalazłem kogoś, kto miał takie samo doświadczenie jak ja, i najprawdopodobniej mój nie będzie dokładnie pasował do twojego.,

Mam jednak nadzieję, że moja historia inspiruje innych i działa jako cenny punkt danych, który można dodać do zbioru danych dotyczących historii sukcesu.

Full Disclosure

w liceum (9 lat temu) brałem udział w kursie Visual Basic for Applications (VBA). Na pierwszym roku studiów inżynierskich (siedem lat temu) nauczyłem się języka C, Python, Matlab i Labview. Ukończyłem dobrą uczelnię z inżynierią chemiczną i dobrą średnią średnią (trzy lata temu). Nie robiłem żadnego programowania poza szkołą, w liceum lub college ' u, dopóki nie zdecydowałem, że chcę się uczyć w zeszłym roku.,

po studiach dostałem pracę jako inżynier procesu w rafinerii. Pracowałem tam, dopóki nie zmieniłem kariery na inżynierię oprogramowania.

dlaczego chciałem zmienić karierę

podobało mi się rozwiązywanie problemów technicznych, ale wiedziałem, że w pewnym momencie chcę dostać się do świata biznesu/startupu. Zawsze myślałem o studiach MBA, ale za każdym razem, gdy patrzyłem na cenę najlepszych szkół, moje zainteresowanie malało.

27 maja 2017 roku znowu znalazłem się w googlach na temat MBA i jakoś natknąłem się na inżynierię oprogramowania. Wyglądało na idealne dopasowanie.,

inżynierowie oprogramowania są w rosnącym zapotrzebowaniu, wynagrodzenia są świetne, i jest to idealna branża, z której można dostać się do świata startupów bez potrzeby Tony kapitału początkowego. Wszystko, czego potrzebujesz, to komputer ,a twoje możliwości są nieograniczone (tak jakby).

w żadnej innej dyscyplinie inżynierskiej nie można po prostu mieć pomysłu, zacząć go budować, pokazać użytkownikom, i iteracji z małym kapitałem i niską barierą wejścia. W inżynierii chemicznej zasadniczo potrzebujesz działającej instalacji lub dużo pieniędzy, aby zaprojektować instalację, jeśli masz pomysł na nowy produkt.,

słyszałem, że ludzie rzucają pracę i biorą udział w bootcampie, ale im więcej czytam o tym w Internecie, tym bardziej zdałem sobie sprawę, że możesz nauczyć się tego wszystkiego na własną rękę, jeśli jesteś zaangażowany i skupiony.

można twierdzić, że tracisz na sieci i porady kariery świadczone przez bootcamp. To może być prawda, ale miałem szczęście, że mieszkałem w Bay Area, co pozwoliło mi uczestniczyć w kilku spotkaniach, więc połączyłem się w ten sposób.

poza tym najgorsze było to, że zdałem sobie sprawę, że sam nie mogę tego zrobić, a potem rzuciłem pracę, aby wziąć udział w bootcampie.,

cel

Zdjęcie Roberta Bakera na Unsplash

musisz mieć cel. Zwłaszcza, jeśli próbujesz się uczyć podczas pracy w pełnym wymiarze godzin. Łatwo jest pozwolić, aby nauka przeciągała się, jeśli nie masz żadnej zewnętrznej presji, która Cię popycha. Więc musisz wytworzyć wewnętrzne ciśnienie. Twój cel powinien być prosty i ilościowy. Powinieneś zrobić wystarczająco dużo badań, aby wymyślić rozsądny cel., Moja była następująca:

dostać pracę w inżynierii oprogramowania w ciągu jednego roku z taką samą lub lepszą pensją niż zarabiam teraz.

Plan

Zdjęcie Glenna Carstensa-Petersa na Unsplash

gdy masz cel, potrzebujesz planu, który pomoże Ci go osiągnąć. To miejsce, w którym możesz spożywać jak najwięcej historii sukcesu. Żaden z nich nie będzie pasował do Twojej dokładnej sytuacji, ale możesz skorzystać z porady od każdego z nich., Opracowałem (i powtórzyłem) mój plan przy użyciu zasobów takich jak subreddit learnprogramming, forum freeCodeCamp i Medium.

w dniu 27 maja 2017 roku zdecydowałem, że zrobię zanurzenie w kodowaniu i zanurkowałem w pierwszej kolejności. Tego dnia postanowiłem zacząć poświęcać w pracy nie więcej niż 40 godzin tygodniowo, aby mieć czas na kodowanie po pracy i w weekendy. Na szczęście dla ciebie, zrobiłem całkiem dobrą robotę dokumentując moje postępy.,

mój plan, poprzez wiele iteracji, zakończył się tak:

  1. weź wstęp do kursu CS, aby uzyskać solidne zrozumienie podstawowych pojęć CS
  2. podążaj za freeCodeCamp, dopóki nie będę mógł samodzielnie zbudować pełnych aplikacji internetowych na poziomie portfolio
  3. Refactor, aby wyczyścić kod, Dodać testy, skupić się na zaawansowanych koncepcjach
  4. przyczyń się do open source
  5. przygotuj się na rozmowy kwalifikacyjne
  6. ol>

    na początek mój plan był prosty., W tym czasie myślałem, że będę podążał za technicznym przewodnikiem Google, więc zacząłem od zalecanego przez nich kursu wprowadzającego, Udacity CS101.

    miesiąc 0 – Udacity CS101, Harvard CS50

    wysoki wynik podjęcia tej wielkiej decyzji dał mi mnóstwo energii. Zacząłem kodować, gdy tylko wróciłem do domu z pracy i nie przestawałem, dopóki nie poszedłem do łóżka. I znowu cały weekend. Udacity CS101 śledził procent ukończenia, co było dla mnie dużym motywatorem. Zapisywałem swój procent ukończenia każdego dnia po kodowaniu. Pierwsze 75% skończyłem w 10 dni., Ostatnie 25% było ciężkie w rekurencji i było dla mnie nieco trudniejsze. Podsumowując, Ukończenie Udacity CS101 Zajęło mi 20 dni.

    kiedy brałem Udacity CS101, zacząłem dość intensywnie czytać subreddit learnprogramming. Czytałem, że dla samouków, którzy chcą zmienić karierę, ważne jest, aby być aktywnymi online. Postanowiłem stworzyć nowe konta Twitter, Reddit, Stack Overflow, Medium i Quora używając mojego pełnego imienia i nazwiska, aby móc budować obecność online.,Facebook, Instagram, i non-programming subreddits.

    postanowiłem też przestać czytać rozpraszające media, takie jak Instagram, Facebook i nie-programujące subreddity. Sprawdzałem tylko w telefonie wiadomości i posty związane z programowaniem. Miało to kluczowe znaczenie dla upewnienia się, że dowiaduję się o najlepszych ścieżkach uczenia się i zasobach edukacyjnych. To właśnie z tego powodu dowiedziałem się o Harvard CS50 na edX.

    początkowo byłem zadowolony z jednego kursu intro, ale wszyscy wydawali się polecać Harvard CS50, więc postanowiłem zanurzyć się w tym następnym., Studenci CS w innych szkołach wzięli ten kurs i powiedzieli, że nauczyli się więcej w CS50 niż rok lub dwa na swojej uczelni studiując CS. Ogólny konsensus był, że kurs był trudny, ale warto. Pod koniec miesiąca 0 ukończyłem pierwsze 5 wykładów i zadań domowych.

    miesiąc 1 – Harvard CS50, Linux, 1st Meetup, freeCodeCamp

    ukończyłem CS50 około połowy miesiąca. Nie będę zbytnio komentował moich doświadczeń z CS50, ponieważ napisałem dogłębny post o moim doświadczeniu tutaj.

    TLDR: to świetny kurs, Gorąco polecam., David Malan jest doskonałym wykładowcą i istnieje mnóstwo środków, które pomogą Ci przez to przejść. Zaczynasz w C, przechodzisz do Pythona, a następnie kończysz tworzenie stron internetowych. Jest bardzo gęsty, a materiału jest dużo, ale myślę, że warto.

    Po CS50 postanowiłem skonfigurować mój XPS 15 do podwójnego rozruchu Windows i Ubuntu. To był frustrujący weekend. Zepsułem partycje i prawie zamurowałem laptopa. Byłem bliski wyrzucenia laptopa i zdobycia nowego.

    powoli odstawiałem się od Windowsa i w końcu używałem wyłącznie Ubuntu., Chciałem zmusić się do wygodnego korzystania z linii poleceń, która moim zdaniem do pewnego stopnia zadziałała, ale wciąż mam wiele do zrobienia.

    zacząłem 100 dni kodu, aby upewnić się, że jestem skupiony i kodowany każdego dnia. Ważne jest, aby udokumentować swoje postępy. Jeśli robisz postępy każdego dnia, nie wydaje się to zbyt wiele, ale kiedy spojrzysz wstecz miesiąc lub kilka miesięcy, zdasz sobie sprawę, że rzeczywiście zrobiłeś sporo postępu, który motywuje Cię do kontynuowania.

    wiedziałem, że networking mnie zniszczy lub zniszczy, więc zebrałem się na odwagę, aby iść na moje pierwsze spotkanie z kodowaniem., Nigdy nie byłem na żadnym meetup nie mówiąc już o Meetup kodowania. Byłem tak zdenerwowany, że po podjechaniu tam, parkowaniu i przejściu do drzwi, prawie zawróciłem i poszedłem do domu.

    pomogło to, że było to pierwsze spotkanie grupy. Szybko zdałem sobie sprawę, że nie ma powodu do nerwów. Nikt się nie znał, nikt nie osądzał i wszyscy chętnie się uczyli. To był początek meetup-spree. W ciągu 9 miesięcy brałem udział w ponad 50 spotkaniach.

    cieszę się, że zacząłem wcześnie chodzić na spotkania., Większość ludzi zaczęła uczęszczać na spotkania dopiero wtedy, gdy szukali pracy, ale w tym momencie jest prawie za późno. Jest tak wiele powodów, aby zacząć wcześnie. Aby wymienić tylko kilka:

    1. rozwijanie relacji zajmuje dużo czasu. Wczesne rozpoczęcie oznacza, że masz znajomości, które mogą za Ciebie ręczyć, szukając pracy później
    2. rozmowa o programowaniu z nieznajomymi to świetny sposób na przygotowanie się do rozmów kwalifikacyjnych
    3. możesz nauczyć się nowych frameworków, narzędzi i zasobów edukacyjnych od ludzi, którzy są przed tobą. Może to wpłynąć na twój przyszły plan nauki.,

    była w tym czasie pewna niepewność w mojej podróży kodowania. Chodziło o to, kiedy musiałem zdecydować, jakiego rodzaju programistą chcę być.

    ostatecznie wybrałem tworzenie stron internetowych, ponieważ wydawało się, że istnieje duży popyt, a także wiele zasobów internetowych. Kiedy już to rozgryzłem, musiałem wymyślić, co dalej. Niektórzy zalecali, że na tym etapie powinienem pomyśleć o aplikacjach internetowych, które chciałem zbudować, a następnie zacząć działać. Niektórzy polecali projekt Odin lub freeCodeCamp.,

    facet, który prowadził cotygodniowe meetup, w którym uczestniczyłem, znał Ruby i chciał robić projekty z Ruby. To był wielki powód, dla którego podjąłem decyzję, by zaangażować się w projekt Odina.

    a dwa dni później porzuciłem ten pomysł.

    to jeden z minusów chodzenia drogą samouka. W jednej chwili myślisz, że wiesz, jaką ścieżkę powinieneś obrać, ale następnego dnia zastanawiasz się, czy to był właściwy ruch.

    przeczytałem, że Ruby wypada z gry i udowodniłem to, szukając pracy Ruby vs JavaScript, więc zacząłem uruchamiać freeCodeCamp., Jedną rzeczą, która mnie niepokoiła w freeCodeCamp było to, że wpadli na pomysły projektowe, więc każdy Kamper robi te same projekty. Na początku martwiło mnie to, ponieważ chciałem wyróżnić się wśród rekruterów. Jednak skończyło się na tym, że pokochałem freeCodeCamp, a teraz gorąco go polecam. Aby uzyskać więcej informacji na temat mojego doświadczenia i zaleceń dotyczących freeCodeCamp, sprawdź mój writeup tutaj.

    miesiąc 2 — Ydkjs, Freecodecamp Front End, React

    zacząłem czytać nie znasz JavaScript, bo wszyscy polecali go jako dodatek do freecodecampa., Musiałem ponownie przeczytać kilka sekcji, ponieważ jest dość gęsty, ale jest to doskonały zasób do nauki zakresu leksykalnego, zamknięć, obietnic i wszystkich części JavaScript, które słyszysz i chcesz się nauczyć, ale nigdy nie rób, ponieważ wydają się trudne.

    skończyłem sekcję front-end freecodecampa. Format listy kontrolnej i szacowany czas ukończenia pomogły zmotywować mnie do szybkiego ukończenia. Byłem również swędzenie, aby przejść do następnej sekcji i nauczyć się reagować. Oznaczało to jednak również, że moje projekty miały minimalistyczną stylizację. Zrobiłem wszystko, aby spełnić historie użytkowników i nic więcej.,

    z perspektywy czasu, może powinienem był skupić się na uatrakcyjnieniu projektów. Być może pomogłoby mi to głębiej nauczyć się CSS.

    następnym krokiem była nauka Reacta, a ja byłem dość napompowany.

    tyle o tym slyszalam i bylam gotowa zmiescic sie z fajnymi dzieciakami. Jednak byłem trochę niezdecydowany, biorąc pod uwagę kwestie licencyjne w tym czasie. Cieszę się, że to już nie problem. Nauka Reacta była dla mnie trudna. Nie byłem wtedy świadomy żadnych dobrych samouczków(ale wydaje się, że teraz jest ich mnóstwo).,

    próbowałem czytać dokumenty i śledzić wraz z Facebook ' s Tic-Tac-Toe tutorial, ale nie do końca rozumiem wszystko. Powiedziano mi, że jeśli to nie działa dla mnie, to znaczy, że nie rozumiem JavaScript wystarczająco. Więc wróciłem do czytania nie znasz JavaScript, ale znowu to było zbyt gęste dla mnie.

    miesiąc 3-freeCodeCamp React, CodeClub, Starting Freecodecamp Back End

    ostatecznie zdecydowałem, że przejdę przez projekty Reactowe Freecodecamp, aby zobaczyć, jak poszło. Ten kod był brzydki, ale pomógł mi lepiej zrozumieć Reacta.,

    na meetupie, w którym brałem udział co tydzień, zdecydowali, że będą budować projekty z pełnym stosem JavaScript zamiast Ruby, i zdecydowali, że pierwszym projektem będzie budowa strony internetowej dla grupy Meetup, CodeClub.Towarzyskie.

    opracowałem karty za pomocą Reacta i Meetup API, dzięki czemu użytkownik może zapisać się na kolejne trzy meetupy z naszej strony. Trochę trudno było mi zrobić krótką przerwę od freecodecampa, ale była to okazja, której nie mogłem przegapić. Cieszyłem się, że pracuję nad projektem z niewielką grupą ludzi., Pomogło mi to również nauczyć się Gita i Githuba.

    przed końcem miesiąca zacząłem pracować nad zapleczem sekcji freeCodeCamp.

    miesiąc 4 – zakończony Back End freeCodeCamp, Yeggle

    przejrzałem wszystkie projekty API w freeCodeCamp, ale zacząłem odbiegać od freeCodeCamp w projekcie Image Search Abstraction Layer.

    chciało mi się tworzyć pełne aplikacje webowe, więc jak tylko zobaczyłem tytuł tego projektu, wpadłem na pomysł na własny projekt., Chciałbym zrobić aplikację węzła, który przechowywałby losowe adresy URL imgur w bazie danych, a następnie zrobić front end, który wyświetli określoną przez użytkownika liczbę tych losowych obrazów. To, co wszyscy mówią, jest prawdą: pracujesz ciężej i odnosisz większe sukcesy, gdy pracujesz nad projektem, który był twoim własnym pomysłem.

    Kiedy już to zadziałało, byłem z siebie bardzo dumny. Był brzydki i niezgrabny, ale zadziałał.

    pracując nad freeCodeCamp, dowiedziałem się, jakie projekty będą w moich możliwościach., W tym czasie biegałem regularnie, więc wpadałem na pomysły na moje biegi i zapisywałem je po powrocie do domu. W ten sposób miałem listę pomysłów na projekty, kiedy byłem gotowy.

    w końcu poczułem się gotowy, aby zacząć tworzyć własne przydatne i dopracowane aplikacje internetowe, które można udostępniać użytkownikom i umieszczać w moim portfolio. Byłam gotowa, żeby zacząć.

    szukając nowej restauracji, zawsze otwierałem Yelp, aby sprawdzić recenzje, a następnie otwierałem mapy, aby sprawdzić ich recenzje. Co jeśli zrobię aplikację, która porównuje obie strony obok siebie?

    więc zrobiłem Yeggle., Używałem Node / Express / React wraz z Mapami Google i interfejsami API Yelp. Było kilka przeszkód, których nie sądziłem, że będę w stanie pokonać, ale w końcu skończyłem i byłem bardzo dumny z mojej aplikacji. Potem wysłałem to do Reddita i nikogo to nie obchodziło. To było trochę kiepskie, ale nie zawiodłem się.

    miesiąc 5-StockIT

    w tym miesiącu nie udało mi się zrobić tak dużo, jak zacząłem od dwutygodniowych wakacji do Japonii i Tajlandii!

    ale rozpocząłem i ukończyłem kolejny projekt., Czytałem o tym, jak trudno jest dostać pracę jako samouk programisty, więc pomyślałem, że muszę zrobić coś wyjątkowego. Przypomniałem sobie grę, w której Wykres akcji Dow Jones zaczął trend, i miałeś jedną okazję kupić i jedną okazję sprzedać, a celem było pokonanie rynku. Celem gry było pokazanie, jak trudno jest pokonać rynek.

    moim pomysłem było stworzenie gry podobnej do tej, ale zamiast rynku, grałbyś przeciwko algorytmowi uczenia maszynowego. Więc stworzyłem Stockita.,

    zrobiłem samouczek wideo na pandy i Scikit Learn, który obejmował wiele technik uczenia maszynowego. Początkowo chciałem wykonać kilka fajnych technik uczenia głębokiego, ale zdałem sobie sprawę, że zajęło to ogromne zbiory danych i więcej czasu niż chciałem spędzić.

    zamiast tego przyczepiłem się do prostego modelu regresji liniowej. Myślałem, że to będzie najtrudniejsza część, ale tak nie było. Obie biblioteki chciały kontrolować DOM. Było kilka innych bibliotek, które pomogły dołączyć do tych dwóch, ale czułem, że były zbyt rozdęte., Skończyło się na użyciu D3 do generowania SVGs i React do obsługi DOM, który pracował całkiem dobrze dla mnie.

    tym razem, kiedy podzieliłem się nim z Redditem, wszystkim się spodobał!

    okazuje się, że podobnie jak VCs, redditory są związane z uczeniem maszynowym. Cała miłość od Reddita była wielkim wzmocnieniem zaufania. Ludzie grali w moją grę i cieszyli się nią!

    miesiąc 6-jobSort (), Job Hunt Prep

    Po StockIT, przeniosłem się do mojego następnego osobistego projektu. Chciałem stworzyć tablicę ofert pracy, która zagreguje mniejsze strony internetowe z ofertami pracy skoncentrowanymi na technologii, takie jak Stack Overflow, Github i Hacker News., Aby dodać do niego swój własny, unikalny spin, postanowiłem go sortować w oparciu o technologie, których użytkownik chciał w pracy i jak bardzo chciał każdej z nich.

    na przykład, powiedzmy, że szukałem pracy, która szukała kogoś, kto znał JavaScript, React i / lub Python, i naprawdę chciałem pracować z JavaScript i React, ale nie dbałem tak bardzo O Python. Wtedy mógłbym dać JavaScript 3, React 3, a może Python 1. Oferty będą następnie sortowane odpowiednio.,

    napotkałem różne przeszkody w tym projekcie i musiałem kilka razy zmienić kurs, ale skończyło się na produkcie, z którego byłem zadowolony. Moim ostatnim stosem technologicznym był React / Node / Express / MySQL. Wysłałem projekt do subreddita cscareerquestions i dostałem 650 odsłon, zanim został zdjęty, ponieważ nie pozwalają na osobiste projekty.

    „końcowy” produkt jest tutaj, a jeśli jesteś zainteresowany dowiedzieć się więcej o moich zmaganiach i refakturach, zajrzyj do mojego posta tutaj.

    z powodu moich problemów jobSort() zajął przyzwoitą część miesiąca., Skończyło się na kawie z przyjacielem, którego poznałem na moim pierwszym spotkaniu, a on doradził mi, żebym zaczął ubiegać się o pracę już teraz. Czytałam wszędzie, że wszyscy mówią, że za długo czekali na zgłoszenie. Ponadto, ilekroć widziałem post z pytaniem, Kiedy aplikować, najlepszym komentarzem było zawsze ” teraz.”

    w mojej głowie zamierzałem przebrnąć przez mój zorganizowany plan, aby zbudować moje portfolio z osobistymi projektami, a następnie pracować nad wkładem open source, a następnie przygotować się do rozmów kwalifikacyjnych, a wreszcie zacząć ubiegać się o pracę. Ten przyjaciel przekonał mnie, żebym porzucił ten plan i zaczął się starać., Więc w tym miesiącu zrobiłem portfolio i CV. W następnym miesiącu chciałbym zacząć ubiegać się.

    miesiąc 7 – testowanie, poszukiwanie pracy

    w tym miesiącu skupiłem się na poprawianiu moich projektów i aplikowaniu do pracy. Chciałem również nauczyć się testowania i Redux.

    dodałem flexbox do CodeClub.Społeczne, aby było responsywne. Poprawiłem mobilny UX na jobsort (). Dodałem testowanie do jobsort () z mocha / chai / enzyme, które było trudne do skonfigurowania, łatwe do rozpoczęcia, a następnie trudne do uzyskania 100% pokrycia.

    do końca miesiąca zgłosiłem się na 63 stanowiska. Postrzegałem to jako samoocenę., Czy moje portfolio/CV było wystarczająco dobre? Jeśli tak, to nad czym musiałem pracować, aby przygotować się do rozmów kwalifikacyjnych? Na początku zgłosiłem się do Hacker News: kto zatrudnia i rzeczywiście.

    w Hacker News użyłem funkcji jobSort (), aby określić, o które OFERTY się ubiegać. Rzeczywiście, próbowałem firm nie zajmujących się oprogramowaniem, aby sprawdzić, czy mogę w ogóle dostać telefon lub wywiad gdziekolwiek.

    na początku szybko aplikowałam i nie personalizowałam swojego CV/listu motywacyjnego. Następnie postanowiłem spersonalizować mój list motywacyjny i CV, a następnie spróbować wysłać e-mail do kogoś z firmy., Ta metoda była wyraźnie lepsza niż podejście shotgun.

    otrzymałem pięć telefonów w tym miesiącu — dwa od firm rekrutacyjnych i trzy od firm programistycznych, które obejmowały:

  • kontraktująca rola DevOps/testing w firmie dotcom
  • firma zajmująca się analizą żywności z serii B oraz
  • dość duży i udany startup, który został niedawno zakupiony przez dużą korporację

w dwóch z nich przeszedłem ekran HR, ale żaden z nich nie uzyskał wywiadu na miejscu. Byłem całkiem zadowolony z tych trzech telefonów i wiele się od nich nauczyłem.,

wszyscy wspominali w Internecie, że młodsi programiści nie powinni wiedzieć tak dużo od samego początku, po prostu muszą być pasjonaci i podekscytowani, aby się uczyć. Pomyślałem, że spokojnie. Jestem pasjonatem i podekscytowany nauką. Z tych rozmów dowiedziałem się jednak, że nikt nie szuka młodszego dewelopera. Oczekują, że będziesz wiedział, co robisz od pierwszego dnia.,

te rozmowy nauczyły mnie, że muszę

  • być wystarczająco dobry, aby dodać wartość od pierwszego dnia
  • być wystarczająco pewny siebie, aby przekonać ich, że mogę dodać wartość od pierwszego dnia

miesiąc 8 – Nocna zmiana, Redux, Open Source, wywiad na miejscu

zacząłem w tym miesiącu pracować na nocnej zmianie przez 40 dni w moim pełnym wymiarze czasu pracy – 6 dni w tygodniu, 12 godzin dziennie, 17: 00 do 5 rano. Ugh.

wiedziałem, że w tym miesiącu nie uda mi się zrobić tak dużo, ale miałem cel i chciałem go osiągnąć, więc nie mogłem wziąć miesiąca wolnego.,

zrefakturowałem jobSort do korzystania z Redux, co było zaskakująco nie tak trudne, jak myślałem, że będzie. Słuchałem wielu podcastów o tym i czytałem blogposty o tym, i nigdy nie miało to dla mnie sensu, dopóki nie zacząłem z niego korzystać.

bardzo podoba mi się przepływ danych z Redux. Ciekawe, że ludzie narzekają na Redux. Nie sądzę, że mam Kwalifikacje do wylewania moich opinii mocno, ale podoba mi się wzór reduktora.

To miał być dla mnie miesiąc open source., Miałem zamiar wnieść swój pierwszy wkład open source i byłby to świetny wkład do fantastycznej biblioteki. Miałem zamiar przyczynić się do reakcji!

wszyscy mówili, że to trudny kod do odczytania, nie mówiąc już o przyczynieniu się do. Ale musiałam się wyróżniać, być wyjątkowa. Wiedziałem, że mój wkład nie będzie znaczący, ale mimo to chciałem to zrobić.

zacząłbym od przeczytania dokumentów aż do końca, a potem przerzucił kod. Oglądaj każdy numer, każdy PR. Pełne przeczytanie React docs było świetnym ćwiczeniem i cieszę się, że to zrobiłem., Ale szybko zdałem sobie sprawę, że problem z wkładem w reagowanie polega na tym, że po prostu nie ma zbyt wielu „dobrych pierwszych problemów” i szybko zostają porwane.

na jednym ze spotkań, w których uczestniczyłem, Anthony Ng polecił mi wypróbowanie Downshift, biblioteki autouzupełniania autorstwa Kenta C. Doddsa. To był gamechanger. To było w mojej sterówce. Odpowiedni poziom trudności, odpowiednia ilość problemów do pomocy, niezbyt wielu współpracowników, super pomocny opiekun, czysty dobrze przetestowany kod. Co więcej, było to idealne rozwiązanie niektórych problemów, które miałem z moją aplikacją jobSort ().,

mniej więcej w połowie miesiąca otrzymałem maila od jednej z firm, do których zgłosiłem się w poprzednim miesiącu. Ustawiają początkowy ekran telefonu, a następnie techniczny ekran telefonu. Technologie, których szukali, były dokładnie tym, czego się nauczyłem-React, Redux i D3. Głównie opowiadałem o swoich projektach i o tym, dlaczego podjąłem pewne decyzje. Potem poprosili mnie, żebym przyszedł na miejsce na wywiad. Mój pierwszy wywiad na miejscu!,

w ogóle nie przygotowywałam się do rozmów kwalifikacyjnych, więc podeszłam do nich z nadzieją, że nie dostanę pracy, ale zdobędę cenne doświadczenie w rozmowach kwalifikacyjnych. Ja też biegałem na trzy godziny snu, ponieważ wciąż pracowałem na nocnej zmianie, co nie pomogło. Na szczęście część techniczna nie była whiteboardingiem, tylko godzinną sesją programowania par. To było dość proste wyzwanie, ale byłem bardzo zdenerwowany.

na początku martwiłem się o to, czy Wiem wszystko, bez sprawdzania tego., Kiedy zdałem sobie sprawę, że nie zamierzam zakończyć wyzwanie, zdałem sobie sprawę, że muszę przestać martwić się, co rozmówca myśli o mnie i po prostu google / stack przepełnienie, aby znaleźć odpowiedzi. Nie skończyłem i myślałem, że zawiodłem.

ponieważ myślałem, że nie udało mi się zaprogramować pary, czułem się zrelaksowany przez resztę wywiadu. Ostatecznie, wyszedłem z wywiadu z podbródkiem do góry. W najgorszym przypadku mam cenne doświadczenie w rozmowach kwalifikacyjnych, a w najlepszym przypadku dostałem pierwszą ofertę pracy.,

miesiąc 9 – oferta pracy

otrzymałem swoją pierwszą ofertę pracy 9 miesięcy i 7 dni po tym pierwszym dniu, kiedy zdecydowałem, że będę nurkował head first w programowaniu z zamiarem zmiany kariery. Czułem się pewnie, biorąc pod uwagę, że otrzymałem ofertę po pierwszej rozmowie na miejscu, ale jednocześnie, jeśli nie skorzystam z oferty, co jeśli byłaby to jedyna oferta, którą otrzymałbym przez kilka miesięcy? Ostatecznie przyjąłem ofertę i jestem zadowolony z mojej decyzji. Chciałem dostać zapłatę za Kod!,

porady

do tej pory dzieliłem się głównie moją historią z kilkoma poradami. Są szanse, że jeśli to czytasz, albo myślisz o zmianie kariery lub jesteś w trakcie nauki kodowania z zamiarem zmiany kariery. Mam nadzieję, że poniższe porady pomogą Ci opracować plan lub trzymać się obecnego planu i osiągnąć swój cel.

  1. dowiedz się, co cię motywuje i wykorzystaj to na swoją korzyść. Dla mnie były to listy kontrolne, dokumentujące moje postępy i interakcje z różnymi społecznościami programistycznymi., Jeśli nie jesteś zmotywowany, aby osiągnąć swój cel, to nic innego się nie liczy, ponieważ nie skończysz.
  2. stawiaj sobie cele i spełniaj je. Powiedziałbym, że powinieneś mieć cele Miesięczne, a może nawet codzienne. Cele Miesięczne, aby upewnić się, że jesteś na dobrej drodze, aby osiągnąć swój główny cel, i codzienne cele, aby upewnić się, że rzeczywiście robisz codzienne postępy. Jedną ze strategii, która mi się sprawdziła, było wyznaczanie sobie dziennych celów poprzedniej nocy. W ten sposób nie możesz wykonywać bezproduktywnej pracy przez cały dzień i czuć się, jakbyś robił postępy, kiedy naprawdę tego nie zrobiłeś., Zmusza cię do porównywania swoich codziennych osiągnięć z codziennymi celami.
  3. wejdź na meetups zanim uznasz, że jesteś gotowy. Chodzenie na spotkania może być przerażające, ale jak wspomniałem powyżej. Ale ogólnie każdy jest miły i chętny do pomocy. Możesz znaleźć ludzi, którzy nie są zainteresowani rozmową z tobą, ale są mniejszością i nikt nie będzie osądzał. Ponadto, każdy uwielbia udzielać porad(jak robię teraz).
  4. przyczynić się do open source sposób, zanim myślisz, że jesteś gotowy., Kiedy zaczynasz programowanie, Github wydaje się być przerażającym miejscem, do którego nigdy nie chcesz iść. W rzeczywistości jest bardzo przyjazny dla początkujących i jest doskonałym miejscem, aby zobaczyć dobry kod i uzyskać własny kod zweryfikowany. Jeśli nadal nie jesteś przekonany, sprawdź mój post, dlaczego powinieneś teraz przyczynić się do open source.
  5. zacznij stosować, zanim uznasz, że jesteś gotowy. To było dla mnie trudne, bo myślałem, że jestem inny. Myślałem, że nie muszę testować rynku, aby poczuć, nad czym pracować. Myślałem, że będę wiedział, kiedy będę gotowy do złożenia wniosku. Mówię ci teraz., Nie będziesz wiedział, kiedy złożyć wniosek. Więc równie dobrze możesz zacząć teraz. Nie powinieneś zwariować i zgłosić się do 300 firm, zanim nauczysz się pętli. Ale powinieneś wiedzieć, że najlepszym sposobem, aby dowiedzieć się, czego musisz się nauczyć, jest zastosowanie i przetestowanie rynku.

a teraz wracaj i koduj!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *