Ten post ma na celu pomóc przynajmniej jednej osobie tam, która jest w moich butach około rok temu. Porady tutaj jest najbardziej wartościowe, jeśli jesteś poważnie o zostaniu programistą w pełnym wymiarze czasu, ale może być nadal wartościowe, jeśli po prostu szukasz, aby rozwinąć swoje umiejętności lub po prostu ciekawy o rozwoju nauki. Nie chodzi tu o rzeczy techniczne, ale o te na wyższym poziomie, ważne rzeczy.
Około półtora roku temu stanąłem przed trudną decyzją, gdzie dalej poprowadzić swoją karierę. Moja praca jako kontraktowy kierownik projektu dobiegała końca bez możliwości przedłużenia. Rynek pracy dla kierowników projektów jest trudny i konkurencyjny, ale większy problem tkwił wewnątrz. Mimo że pracowałem dla wspaniałych zespołów i organizacji dużych i małych, nie miałem tyle radości, ile oczekiwałem. Czułem się, jakbym płynął pod prąd, nie robiąc tego, do czego byłem stworzony.
Podjąłem najtrudniejszą decyzję, aby zająć się programowaniem, co było trochę szalone, biorąc pod uwagę okoliczności. Miałem wykształcenie biznesowe i żadnego prawdziwego doświadczenia w programowaniu poza kilkoma warsztatami HTML/CSS. Byłem w dużym zadłużeniu osobistym i uniwersyteckim. Wszystko co miałem to niewielkie oszczędności, wiara w to, że mi się uda i (na szczęście) bardzo wspierający mnie partner. Kiedyś przeczytałam książkę, w której stwierdzono, że twój umysł cię sprzeda, ale twoje serce nigdy tego nie zrobi, po prostu nie może. Więc zdecydowałam się podążać za moim sercem.
Wierzę, że jest to najlepsze miejsce na pierwszą lekcję:
… a nawet gdy już tam dotrzesz, nauka nigdy się nie kończy.
To był najtrudniejszy rok, przez jaki kiedykolwiek przeszłam. Musiałem zainwestować mnóstwo czasu, aby się uczyć i budować. Musiałem przejrzeć wszystkie moje oszczędności i zadłużyć się jeszcze bardziej. Musiałem porzucić moje ego i zaakceptować bycie początkującym ponownie, musiałem spędzać mniej czasu z moim partnerem, musiałem zrobić wszystko, co w mojej mocy, aby wyjaśnić mojej rodzinie i przyjaciołom, że całkowicie robię zwrot o 180 stopni bez gwarancji, że kiedykolwiek włamię się do branży, która, chociaż ma duże zapotrzebowanie, jest przepełniona młodymi absolwentami informatyki i chętnymi absolwentami bootcampów deweloperskich.
Nie miałem też pieniędzy na bootcampy. Nie miałem wyboru, ale musiałem nauczyć się sam wszystkiego, czego się nauczyłem. Jedyną rzeczą, która pozwoli ci przejść, jest GRIT. Nie spryt czy pieniądze. Te mogą pomóc, ale wszystko opiera się na ciężkiej pracy, którą włożysz. A jedyną rzeczą, która przeciągnie cię przez te ciężkie czasy jest zabawa.
THIS NEEDS TO BE FUN in order to get through the tough challenges.
Ekscytacja związana z rozwiązaniem naprawdę trudnego problemu musi być dla Ciebie ogromna, ponieważ wysiłek, który włożysz w rozwiązywanie problemów programistycznych, może być czasami stresujący, wyczerpujący i czasochłonny. Jeśli jesteś podekscytowany lub nawet masz obsesję na punkcie rozwiązania czegoś, co okaże się wyzwaniem, pomoże to w dużym stopniu.
Połączenie nie poddawania się, gdy robi się ciężko i bycia podekscytowanym rozwiązaniem ogromnego problemu to niezbędne składniki. Jeśli masz te składniki, ale uważasz, że nie jesteś wystarczająco inteligentny, zrozum, że nie chodzi o to, aby być inteligentnym lub skutecznym na początku. Nikt nie wie wszystkiego, zwłaszcza gdy zaczyna. Liczy się ciągły wysiłek, bez względu na to, ile czasu zajmie Ci dojście do celu.
Pozbądź się przekonania, że w programowaniu chodzi o bycie świetnym w matematyce. Programista musi być świetny w rozwiązywaniu problemów i to takich, których wcześniej nie napotkał. Będzie to miało znaczenie tak samo w pracy, jak i na początku nauki.
Wybierz wcześnie ścieżkę i skoncentruj się na niej.
To może być sprzeczna rada, ale coś, co chciałbym wiedzieć wcześnie. Rozumiem zalety próby nauczenia się wszystkiego po trochu. Twoim naturalnym instynktem może być chęć nauczenia się wszystkiego. Szybko nauczysz się, że jest to niemożliwe i nie tak to działa.
Każdy programista ma szczególne doświadczenie, umiejętności i może stać się bardzo granularny. Firmy zatrudniają cię w oparciu o konkretne umiejętności. Możesz skończyć używając oprogramowania, o którym nigdy nie słyszałeś, gdy zostaniesz zatrudniony, to jest ok i bardzo prawdopodobny scenariusz, ale w procesie zatrudniania jesteś oceniany jako posiadający konkretny zestaw umiejętności.
Wybierz PATH lub prawdopodobnie będziesz cierpiał z powodu tylko znajomości wszystkiego na poziomie podstawowym i nie wiedząc nic na głębokim poziomie, który jest tam, gdzie prawdziwa nauka i wyzwania są.
To może oznaczać najpierw przejście przez krótki okres badań i odkrywania. Po prostu spraw, aby Twoim celem było dotarcie do wybranej ścieżki. Głównym wyborem jest to, jaki rodzaj programowania chcesz zrobić (np. projektowanie stron internetowych, front-end, back-end dev, aplikacje mobilne itp.) Kiedy już zdecydujesz się na ścieżkę, zbadaj standardowe narzędzia używane w branży, nazwy stanowisk, rodzaj umiejętności, których oczekuje się od Ciebie itp. Warto również zdecydować, dla jakiego rodzaju firmy chcesz pracować. Twoja praca i zestawy umiejętności mogą się znacznie różnić na przykład między startupami technologicznymi, dużymi bankami korporacyjnymi i organizacjami non-profit.
BUILD PRODUCT. To powinien być Twój najważniejszy wskaźnik postępu.
Ten jest być może znowu kontrowersyjny, ale zrobił dla mnie różnicę. Jedną z rzeczy, z którą zmagałem się na początku, było to, na czym skupiać się miesiąc po miesiącu, jeśli chodzi o postępy. Łatwo jest się pogubić w osiągnięciach w nauce, zielonych znacznikach i powiadomieniach z gratulacjami za ukończenie kursów online. Są one wspaniałe i niezbędne w procesie uczenia się. Ale na końcu nikt tak naprawdę nie dba o to, czego nauczyłeś się w kursie, ile ich zrobiłeś, ani jakie masz cyfrowe certyfikaty za spędzenie nad nim 120 godzin.
To, co ich obchodzi, to to, co ZBUDOWAŁEŚ. Nie mówię, że kursy online nie są wartościowe, mogą być niezwykle cennym narzędziem w nauce tego, co musisz wiedzieć. Ale nie polegaj na nich za bardzo, naucz się wcześnie tworzyć własne środowisko dev (tak, z początkowo przerażająco wyglądającym terminalem) i budować rzeczy.
To, co zbudujesz sam, miesiąc po miesiącu, powinno być tym, na czym powinieneś się skupić jako kamienie milowe w podróży. Kiedy przeprowadzasz wywiad, to jest to, o czym spędzisz prawie cały swój czas mówiąc i POKAZUJĄC. Ludzie uwielbiają ZOBACZYĆ co zbudowałeś.
Nie bój się nurkować w głąb.
To była chyba najlepsza rada, jaką dostałem wcześnie podczas wywiadów z innymi programistami na temat tej kariery. Jeśli chcesz szybko ustalić, czy programowanie to właściwa ścieżka kariery dla Ciebie, to jest to NAJLEPSZY SPOSÓB, ABY TESTOWAĆ SIEBIE. Będzie to również budować twoją wytrwałość szybciej, jeśli naprawdę chcesz dostać się do pracy w ciągu roku.
Jak już zdecydujesz się na swoją ścieżkę, wybierz trudny projekt. Być może jest to fajna aplikacja, którą miałeś na myśli i użycie zaawansowanego frameworka do jej zbudowania, żaden projekt nie jest zbyt szalony. Celem nie jest ukończenie projektu (choć byłoby to świetne), ale zobaczenie jak daleko zajdziesz, jak zareagujesz na presję bycia w zupełnie nieznanej przestrzeni, jak szybko będziesz w stanie pojąć nową koncepcję.
Po drodze prawdopodobnie natkniesz się na nowe, ale ważne koncepcje, po których będziesz musiał się wspinać (np. ustawienie środowiska programistycznego, zainstalowanie narzędzi, znalezienie i zrozumienie dokumentacji, zrozumienie jak komunikować się z API, zrozumienie jak wykonać wywołanie AJAX, zrozumienie jak działa internet, itd.)
Zaletą tego jest to, że stawia to całą naukę, którą będziesz wykonywał w perspektywie. Nadaje sens lekcjom, kiedy się ich uczysz. To również da ci WIARĘ, że możesz to zrobić. Będziesz jej potrzebował w ciężkich, pracowitych miesiącach, które przed Tobą. Nie bój się nurkować na głęboką wodę, nigdy.
BĄDŹ OTWARTY jeśli chodzi o rodzaj Branży lub Rynku, do którego się dostajesz.
Ważne jest, aby mieć ścieżkę i cel w umyśle dla rodzaju pracy, którą chcesz. Ale ważne jest również, aby pozostać otwartym na możliwości, które się pojawiają.
Moim początkowym celem było dostanie się do startupu technologicznego, ponieważ miałem wiele połączeń i doświadczenie ze sceną startupów w Toronto. Ale zostałam zatrudniona przez niesamowitą organizację non-profit, działającą w branży filmowej i artystycznej, z doskonałym zespołem, wesołym środowiskiem, znaną marką i wieloma możliwościami rozwoju i nauki. Życie jest zabawne i nigdy nie wiadomo, kiedy zupełnie inna branża lub rynek może mieć to, czego szukasz. Pamiętaj, że każdy potrzebuje programistów, ponieważ każdy konkuruje o uwagę w przestrzeni cyfrowej.
Bądź otwarty i podczas poszukiwania pracy, nie bój się wyjść poza swoje zwykłe granice. Aplikuj do przypadkowych, ale interesujących organizacji, które pobudzają twoją wyobraźnię. Nawet jeśli nie zatrudniają one bezpośrednio na Twoje stanowisko. Nigdy nie wiesz, kogo możesz spotkać lub kto może potrzebować Twojego specyficznego zestawu umiejętności. Pasja i zainteresowanie swoją pracą to długa droga i może pomóc w pokonaniu dziur w doświadczeniu. Najmniej oczekiwana branża może być tą, która zapewni Ci największe możliwości.
Praca w sieci jest DOBRA, ale to co jest większe to BUDOWANIE PRODUKTU.
To wynika z poprzednich porad i może czuć się powtarzalne, ale powtarzam je dla ważności. To może być również sprzeczne i bardziej, jeśli pochodzisz z tła biznesowego. Wiem, rozumiem to i żyłem tym. Twoja sieć jest twoim kluczem. W byciu programistą to też jest ważne, ale nie tak ważne jak BUDOWANIE PRODUKTU. Na rynku jest duże zapotrzebowanie na programistów na najbliższą przyszłość. Kiedy będziesz gotowy, będzie wiele możliwości i ludzi, których możesz spotkać. Ale do tego czasu nie ma znaczenia, w ilu konferencjach technologicznych i spotkaniach społecznościowych bierzesz udział.
Nie mówię, żeby nie robić tych rzeczy, są one cenne i ważne, aby nie zgubić się we własnej bańce i dowiedzieć się, o czym mówi się w branży. Ale martw się WIĘCEJ o budowanie produktu. Pomoże Ci to również, gdy będziesz uczestniczyć w wydarzeniach i spotykać się z innymi, ponieważ da Ci to punkt odniesienia dla Twoich rozmów. Możesz uzyskać prawdziwe, szczere informacje zwrotne, pomysły i być może świetne rady, kiedy pokazujesz i rozmawiasz z ludźmi. Wyjmij laptopa (jeśli jest to wskazane) i pokaż ludziom, uzyskaj informację zwrotną, przećwicz wyjaśnianie swojego myślenia i rozumowania, dlaczego zbudowałeś X w określony sposób.
Pamiętaj, że projektowanie ma znaczenie, a pokazując innym, co zbudowałeś, zmusisz się do martwienia się o takie rzeczy jak UI, UX i projekt wizualny. Wiem, że to może brzmieć przerażająco, ale będziesz musiał czuć się komfortowo mówiąc o swoich projektach, jeśli chodzi o wywiady.
Twój cel w wywiadach: Skieruj rozmowę w stronę tego, co zbudowałeś.
Dla maksymalnego sukcesu w rozmowie kwalifikacyjnej, Twoim celem powinno być skierowanie rozmowy w kierunku zbudowanych przez Ciebie produktów. To nie zawsze będzie działać i najprawdopodobniej będziesz musiał zrobić kodowanie i testy techniczne w każdym razie, ale znalazłem to naprawdę pomaga w wywiadzie. Bądź przygotowany do rozmowy o tym, DLACZEGO podjąłeś pewne decyzje.
Dlaczego wybrałeś ten framework/bibliotekę/język? Dlaczego zbudowałeś to w ten sposób? Dlaczego umieściłeś ten przycisk tutaj (tak, jako programista jesteś również częścią procesu projektowania, niespodzianka!)? Dlaczego wybrałeś tę metodę sortowania listy? Kim jest użytkownik (tak, jako programista jesteś również częścią procesu UX, niespodzianka!?)
Bądź przygotowany do rozmowy o użytkowniku. Zrozum użytkownika głęboko i jak Twój projekt rozwiązuje jego ból lub pragnienie. Menedżerowie zatrudniający bardzo chętnie zobaczą, że głęboko troszczysz się o użytkownika i jesteś świadomy wszelkich uprzedzeń lub założeń, które osobiście posiadasz, a które mogą wpłynąć na produkt.
Pamiętaj, że osoba zatrudniająca nie próbuje Cię przestraszyć lub zakwestionować Twoich osobistych decyzji. Chcą, abyś wygrał. Ale najbardziej ciekawi ich to, jak myślisz, jak reagujesz na wyzwania i jak bardzo zależy Ci na użytkowniku i jego problemie. Najlepszym sposobem na zademonstrowanie tych rzeczy są Twoje projekty.
Dąż do celu, aż go osiągniesz.
To trudna podróż, pełna stresu, poczucia zagubienia, czasem nie wiadomo, gdzie się jest. Ważne jest, aby nie pozwolić, by burzliwe wody sprawiły, że się poddasz. Pamiętaj, że każdy problem, który napotykasz, jest w istocie ukrytą szansą. Być może jest to coś, co pozwoli Ci osiągnąć wyższy lub głębszy poziom zrozumienia jakiejś koncepcji. Nie bądź dla siebie surowy za porażkę. Become comfortable with failing many times and embrace it as part of the journey.
I hope this advice reaches someone out there that needs it and is going through what I went through, and I hope it helps. Możesz to zrobić, po prostu KEEP GOING! 🙌🙌🙌
Dziękuję za przeczytanie i proszę, śledź mnie na Medium lub Twitterze @aellenj
.