Tworzenie własnego indywidualnego programu nauczania

Opublikowany: 2022-03-10
Szybkie podsumowanie ↬ Jako programiści nieustannie uczymy się nowych języków i frameworków. Ale jak możesz ustrukturyzować to uczenie się, aby zapewnić maksymalne korzyści, jednocześnie robiąc postępy? Oto, w jaki sposób możesz opracować własny program nauczania, aby podążać we właściwym kierunku.

Po ukończeniu bootcampu w marcu 2019 roku byłem przytłoczony wyborem frameworków, bibliotek, języków i kursów, które musiałem wybrać, aby kontynuować samodzielną naukę i mam nadzieję, że zdobędę jedną z tych nieuchwytnych prac dla młodszych programistów. Prawie wszyscy, z którymi rozmawiałem, mieli inne zdanie na temat tego, co jest ważne i warte dążenia, ale większość z nich zgodziła się, że nauka „podstaw” jest ważna, nigdy nie precyzując, czym one są.

Nawet po zdobyciu mojej pierwszej pracy programisty zeszłego lata szybko stało się jasne, że muszę regularnie uczyć się poza programem nauczania, aby sprostać wymaganiom tej nowej roli. Przez jakiś czas przeskakiwałem między kursami Udemy i chociaż się uczyłem, często wykonywałem czynności polegające na naśladowaniu instruktora bez samodzielnego rozwijania umiejętności rozwiązywania problemów . Zajęło mi stworzenie własnego małego, bocznego projektu notatnika, aby naprawdę uchwycić nowy materiał. Więc teraz wiedziałem, jaki jest mój styl uczenia się: początkowa ekspozycja na pomysły na kursie lub w pracy, stworzenie szkicu projektu w celu utrwalenia koncepcji, a następnie wykorzystanie tego nowego uczenia się w mojej codziennej pracy, jeśli mogę.

Większość z nas ma solidne (choć ciężko zarobione) wyczucie tego, jak najlepiej się uczymy w krótkim okresie, ale jak to przekłada się na strukturę długoterminowej nauki pozalekcyjnej? Opowiem ci, jak sobie z tym poradziłem. Strategie te będą działać w całym spektrum doświadczeń, niezależnie od tego, czy jesteś nowicjuszem w tworzeniu oprogramowania, czy doświadczonym inżynierem.

Twój własny program nauczania

To jest moja metoda tworzenia programu nauczania . Jako osoba z ograniczonym czasem i skłonnością do poddawania się powiewowi impulsywności kosztem ciągłej, skoncentrowanej pracy, uznałem tę metodę za najbardziej zgodną z moim mózgiem i ogólnym rytmem. Oczywiście Twój przebieg może się różnić.

Użyj specyfikacji ról „Wymarzona praca”, aby ustalić cele

Uważam, że ten krok jest naprawdę przydatny do zagłuszania hałasu otoczenia i skupienia się na rzeczach, które będą praktycznie przydatne w mojej karierze w ciągu najbliższych pięciu lat. (Jako bardziej front-endowy programista, często przyłapywałem się na tym, że ucząc się Rust robiłem lepkie oczy. Chociaż fascynujące, nie jest to do końca priorytetem.)

Możesz nie chcieć samemu pracować w ogromnej firmie technologicznej, ale warto przyjrzeć się, jakie są priorytety przy zatrudnianiu, ponieważ duże firmy, na dobre lub na złe, zwykle nadają ton całej branży. Mam małą listę zakupów niezłych firm , które chciałbym pewnego dnia skończyć i wszystkie mają te same priorytety: semantyczny HTML/CSS, doskonałe umiejętności waniliowego JS, dostępność i popularny framework. Pewnego dnia nauczę się Rusta, ale na razie praca nad tymi umiejętnościami to moje priorytety.

Grafika pokazująca, jak specyfikacje pracy mogą przekładać się na cele uczenia się
Warto zajrzeć do tablic ogłoszeniowych i przestudiować, jakich wymagań stawiają firmy przy zatrudnianiu programistów. (duży podgląd)

Zwykle wolę Indeed, Guardian Jobs i LinkedIn, aby uzyskać szeroki wachlarz ofert pracy, które są na rynku, ale równie przydatny jest Twitter (wystarczy wyszukać [nazwa firmy, którą jesteś zainteresowany] i „oferty pracy”) i od czasu do czasu obserwować na stronie „Kariera” kilku Twoich ulubionych firm co kilka miesięcy. Jessica Rose, która tweetuje jako @jesslynnrose, często pisze długie wątki na Twitterze z ofertami pracy w „niezłych firmach”, które czasami nie są zbyt dobrze nagłośnione w innych miejscach.

Po zebraniu kilku specyfikacji pracy spróbuj dostrzec podobieństwa między nimi i zanotuj je. Wykorzystamy je w następnym kroku.

Zidentyfikuj możliwości rozwijania pożądanych umiejętności

Pamiętasz tę listę, o której wspomniałem? Podziel go na dwie kolumny. Kolumna pierwsza: rzeczy, nad którymi możesz pracować w swojej codziennej pracy. Kolumna druga: rzeczy, na które musisz spojrzeć w swoim czasie.

Nauka w pracy

Rzeczy z twojej listy, które są objęte twoją codzienną pracą, to rzeczy, o które musisz się najmniej martwić. Bez względu na wszystko, Twoje umiejętności w tych dziedzinach z czasem się poprawią. Niektórzy z Was będą pracować w ogromnych organizacjach, w których pracuje wielu programistów o różnym stażu i specjalizacjach, i radzę Wam to wydoić za wszystko, co jest warte, mówiąc wprost.

Jeśli dostępność jest Twoją luką w wiedzy , którą chcesz poprawić, spróbuj przełknąć wszelkie nerwy i podejdź do kogoś w Twoim miejscu pracy, kto ma te umiejętności, na pogawędkę/kawę Zoom. Spróbuj sparować z nimi, rozumiejąc, że możesz „sparować” rzeczy, które nie powodują problemów z kodowaniem. Porozmawiaj z nimi o tym, gdzie znajdują swoje informacje, z których kont na Twitterze, blogów i podcastów są na bieżąco i jak sami są na bieżąco z nowymi osiągnięciami.

Więcej po skoku! Kontynuuj czytanie poniżej ↓

Nauka w domu

Jako osoba z dwiema wcześniejszymi karierami, z których żadna nie była związana z informatyką, która weszła do branży przez dziewięciotygodniowy bootcamp rok temu, mam podstawową wiedzę na temat informatyki i wielu z was prawdopodobnie znajduje się w tej samej sytuacji.

Odkryłem, że Frontend Masters są nieocenione, jeśli chodzi o naprawdę dobrze zaprojektowane kursy dotyczące zasad informatyki i bardziej szczegółowej nauki. Osobiście uważam, że kursy Willa Sentance na temat Frontend Masters są cenne dla zrozumienia, jak i dlaczego, jeśli chodzi o waniliowy JavaScript. Podobnie, kursy Briana Holta „Cztery semestry informatyki w 5 godzin” pozwalają studentom zapoznać się z koncepcjami, które mogą pojawić się podczas wywiadów technicznych.

Istnieje miesięczna opłata abonamentowa dla Frontend Masters i jest tego warta, ale istnieje wiele wspaniałych bezpłatnych zasobów . Naprawdę polecam, aby każdy, kto jeszcze tego nie zrobił, zapisał się do CS50. Kurs prowadzony przez Harvard University jest wspaniałym, darmowym źródłem, które zaprezentuje Ci C, Python, JavaScript oraz moduły dotyczące etyki i podstawowych struktur danych. Wykłady są niesamowitą frajdą i możesz zrobić tyle, ile chcesz, bez ograniczeń czasowych.

Studenci na scenie podczas wykładu z programowania CS50 na Harvardzie
CS50 to wspaniały darmowy zasób, który uczy gruntownego wprowadzenia do informatyki i sztuki programowania. (duży podgląd)

Podobnie FreeCodeCamp zasłużył sobie na status kluczowego punktu wyjścia zarówno dla programistów samouków, jak i tych, którzy chcą wykorzystać swoje dotychczasowe umiejętności. Zachęcam Cię do szukania na Udemy kursów odpowiadających Twoim zainteresowaniom (radzę nie kup kurs Udemy, który nie jest objęty dużą zniżką. Ich wyprzedaże pojawiają się raz na kilka tygodni i zawsze pojawiają się kody rabatowe).

Moim szczególnym faworytem jest The Complete Node.js Developer Course autorstwa Andrew Meada, a ja uwielbiam kursy Colta Steele'a (jest tam szczególnie dobry kurs o algorytmach i strukturach danych, który pomoże ci, jeśli kiedykolwiek znajdziesz się po stronie bardziej wymagającej algorytmów spektrum wywiadów technicznych). Smashing Magazine prowadzi również częste warsztaty online na różne tematy, które pomogą Ci poprawić swoje umiejętności.

Jak być może wiesz, umiejętności, które dają ludziom pracę w branży technologicznej, mogą często odbiegać od umiejętności, których ludzie muszą używać w pracy. Kursy te nauczą Cię podstaw informatyki, zachowując jednocześnie elastyczność podczas wywiadów i pomogą wypełnić wszelkie potencjalnie miażdżące ciszy zgrabnymi podsumowaniami różnych struktur danych oraz ich zaletami i wadami. Nie chodzi o to, żeby robić wszystkie te kursy, ale o zidentyfikowanie i połączenie tych, które pasują do specyfiki pracy , na którą się kierujesz.

Uważam, że Twitter jest niezwykle pomocny w znajdowaniu osób, z którymi można porozmawiać o problemach z kodem. Zeszłej wiosny krzyczałem w pustkę o problemie, który miałem z Android Studio i byłem zaskoczony, że mniej niż dziesięć minut później odbyłem rozmowę wideo z programistą Androida, a nie tylko, wydawał się zadowolony, że może pomóc!

Nie lekceważ życzliwości społeczności programistów i nie wstydź się zwracać do niej o pomoc, gdy jej potrzebujesz, i postaraj się znaleźć w sytuacjach, w których możesz rozmawiać z ludźmi z podobnego do Ciebie świata w obrębie szerszy kontekst branży technologicznej. Hashtag #CodeNewbie to przydatna rzecz, której możesz użyć, jeśli kiedykolwiek będziesz potrzebować pomocy.

Ustaw cele i harmonogramy

Teraz nadszedł czas, aby powiązać cele związane z samokształceniem z niektórymi celami. Staraj się nie ustawiać poprzeczki zbyt wysoko — jeśli ukończenie kursu Udemy w ciągu jednego tygodnia jest nierealne, nie próbuj zmuszać się do robienia tego tak ciężko, że albo osiągniesz cel kosztem innych ważnych rzeczy w swoim życiu lub nie osiągniesz celu i poczujesz się jak porażka. Chodzi o to, aby trzymać się na dobrej drodze , wywierając delikatny nacisk, aby pozostać zmotywowanym, ale nie tak bardzo, że czujesz się przytłoczony i tracisz całą motywację.

Jako osoba rano czuję się najlepiej, gdy mogę skoncentrować się na nauce na kilka godzin przed rozpoczęciem mojej codziennej pracy o 9:30. Mając to na uwadze i korzystając ze wspaniałego narzędzia do śledzenia czasu, Toggl, spędzam od 7 do 9 dwa poranki w tygodniu na studiowaniu kodu. Korzystanie z Toggl było dla mnie niezwykle ważne, ponieważ bez względu na to, ile robię, często czuję, że to nie wystarczy. Ale z pomocą Toggla mogłem z całą pewnością stwierdzić, że robię minimum cztery godziny tygodniowo (z dodatkowymi wieczorami i w weekendy, jeśli mam na to ochotę) i czułem się lepiej, kiedy mogę odejść od laptopa i odpocząć, gdy mój czas minął, bezpieczna, wiedząc, że przepracowałam akceptowalną ilość godzin według moich własnych standardów.

Spraw, aby postęp był mierzalny

Pomyśl o swoim przeciętnym tygodniowym harmonogramie i postaraj się zablokować taki moment w ciągu dnia, w którym masz największe szanse na zachowanie nieprzerwanej koncentracji. Niektórzy z was będą opiekunami lub w inny sposób będą bardzo zajęci i prawdopodobnie będzie dla was lepiej, jeśli poświęcicie swój czas, kiedy tylko będziecie mogli.

Jeśli to pomoże ci zobaczyć przykład, moje osobiste cele są następujące:

  • Ukończ kurs Node.js Udemy do końca lutego.
  • Codziennie wykonuj 30 minut Execute Program przed pracą.

Staraj się zachować ostrożność przy pierwszym zestawie celów. Zawsze możesz zwiększyć presję, jeśli chcesz, ale lepiej to zrobić, gdy uda ci się kilka; upewnij się, że masz wolną przestrzeń psychiczną i fizyczną, aby naprawdę skoncentrować się na tym, co musisz zrobić, aby pozostać na dobrej drodze.

Znajdź mentora lub kumpla lub jedno i drugie!

Mentoring to coś, co większość programistów poleciłaby, aby poprawić swoje umiejętności, ale z mojego osobistego doświadczenia wynika, że ​​znalezienie kogoś, kto może Cię poprowadzić, jest wyzwaniem, szczególnie teraz. Istnieją zasoby, takie jak Coach Coach, które mogą ci pomóc, a znam kilku programistów, którzy znaleźli swojego wymarzonego mentora na spotkaniach i w mediach społecznościowych, ale znalezienie idealnego dopasowania jest łatwiejsze do powiedzenia niż do zrobienia.

Rozmawiałem z Faliną Lothamer, projektantką instrukcji w Thinkful — masowym otwartym kursie online (w skrócie MOOC), aby dowiedzieć się, jak profesjonaliści podchodzą do niezależnego uczenia się. Wyraźnie stwierdziła, że ​​znalezienie mentora i praca z nim jest kluczem do rozwoju umiejętności programisty.

„Jeśli potrzebujesz czegoś dla siebie, poproś mentora, aby powiedział:„ Oto, na czym moim zdaniem powinieneś się skupić ”, pokazując, co robią w swojej pracy i dzieląc się swoją opinią na temat przyszłości Twojej okolicy technologii bardzo pomoże. Myślę, że w branży jest wielu ludzi, którzy chcą pełnić tę rolę mentora i robić dla innych to, co ktoś dla nich zrobił”.

Po tym, jak wyraziłem swoją frustrację, gdy uderzyłem w mur z kilkoma kursami Udemy, po prostu zorientowałem się, że przechowuję informacje i niekoniecznie mam zaufanie do tego, czego nauczyłem się, aby zastosować je w innych obszarach lub w innych projektach, Fallina była jasne, że bycie odpowiedzialnym przed inną osobą — najlepiej mentorem, ale równie innym programistą o podobnym do ciebie doświadczeniu zawodowym — jest niezbędne.

„Jako programista musisz szukać okazji do zademonstrowania tego, co wiesz i jak się uczysz. Posiadanie kogoś innego, z kim można porozmawiać o wyzwaniach, przed którymi stoisz, i przestrzeń, by porozmawiać o tym z kimś i uświadomić sobie, że „to, co próbuję zrobić, jest skomplikowane, nie jestem kiepskim programistą”, mając to walidacja może być ogromna”.

Tym, którym nie udaje się znaleźć starszego programisty, który wziąłby ich pod swoje skrzydła, polecam skorzystać z rady Falliny i zobowiązać się do odpowiedzialności przed kimś innym w branży na podobnym poziomie. Deweloperzy, którzy łączą siły i dzielą się historiami, potwierdzą, że ta praca jest ciężka i że nie są jedynymi inżynierami, którzy mają problemy z przetrwaniem w pracy przez kilka dni. Ta praca może być bardzo obciążająca emocjonalnie, a posiadanie kumpla, z którym można się zmagać , będzie nieocenione w tych dniach, kiedy wydaje się, że nic nie idzie dobrze.

Zalecam zapisanie się na Interview Cake, Execute Program lub odpowiedni kurs Udemy odpowiadający Twojemu poziomowi umiejętności i specjalizacji oraz wykonanie tych samych ćwiczeń, co Twój znajomy, mniej więcej w tym samym czasie. Omów, co znalazłeś łatwiej i gdzie upadłeś, i utrzymuj ze sobą kontakt przez cały czas. Chociaż z pewnością możesz robić te rzeczy sam, pielęgnowanie poczucia wspólnoty pomoże ci pozostać na zadaniu i zwiększy prawdopodobieństwo, że będziesz się go trzymać.

Etui do aplikacji Scratch Pad

Jeśli masz czas i energię, aby przelać się na duży projekt poboczny do pracy, więcej mocy dla ciebie, ale uważam, że presja, aby to zrobić, jest nieco uciążliwa. Zamiast tego jestem fanem projektu notatnika, przede wszystkim dlatego, że naprawdę czerpię korzyści z podążania za wieloma nowymi pomysłami na raz i szybko tracę zainteresowanie osobistymi projektami, nie ma presji czasu, która by mnie napędzała.

Jeśli Twój projekt poboczny wykonuje wywołanie API, wyświetla informacje w sposób na wpół atrakcyjny, a Ty nauczyłeś się czegoś z tego procesu, a przekształcenie projektu w większą aplikację nie pasuje do Twojej neurologii, Twojego harmonogramu opieki , lub gusta, daj sobie przerwę . Nie szydziłbyś z artysty za szkicowanie, a na pewno nie powinieneś czuć się źle, jeśli twoje projekty poboczne są na wpół uformowanymi mutantami, o ile coś wyciągasz z procesu. Moje repozytoria GitHub są elegią dobrych pomysłów, które już minęły, i pogodziłem się z tym.

Podsumowanie

Biorąc pod uwagę obecny stan świata, ostatnią rzeczą, jaką chcę być, jest kolejny głos domagający się produktywności w zamknięciu. Nie o to chodzi. Są to po prostu kroki, które zadziałały dla mnie, gdy musiałem się uczyć z czasem, bez wypalania się lub wywierania na siebie nadmiernej presji. Jeśli pracują dla ciebie, to wspaniale. Jeśli nie, nie martw się. Wszyscy mamy swoje własne tempo.

Kroki

  1. Użyj specyfikacji pracy, aby zidentyfikować kluczowe umiejętności.
  2. Podziel te umiejętności między uczenie się w pracy i uczenie się we własnym czasie.
  3. Wyznaczaj jasne, mierzalne, realistyczne cele i podnoś je dopiero wtedy, gdy znajdziesz swój rytm.
  4. Znajdź mentora lub kumpla, aby odpowiadać za te cele.
  5. Zrelaksować się! Brudna nauka jest lepsza niż brak nauki.

Przydatne zasoby

  • Udemy
  • Wywiad Ciasto
  • CS50
  • Wykonaj program
  • Trener kodowania
  • Przełącz
  • #CodeNewbie
  • Warsztaty online Smashing Mag
  • FreeCodeCamp
  • Mistrzowie frontendu
  • Rzeczywiście
  • Praca opiekuna
  • LinkedIn

Powodzenia!