Wiadomość dla przyszłego programisty

Więc zdecydowałeś się zostać programistą.

Być może jesteś zainteresowany stworzeniem czegoś nowego.

Być może kuszą Cię duże pensje.

Być może chcesz po prostu zmienić dziedzinę swojej działalności.

Nie o to chodzi.

Ważne jest to, że Ty decydujesz zostać programistą.

Co zrobić teraz?

Wiadomość dla przyszłego programisty

A podejść jest kilka.

pierwszy: iść na studia na specjalność informatyczną i zdobyć wykształcenie specjalistyczne. Najbardziej banalny, stosunkowo niezawodny, niezwykle długi, najbardziej podstawowy sposób. Działa, jeśli jeszcze kończysz szkołę lub masz środki na utrzymanie od półtora roku (w najlepszym wypadku, jeśli wszystko ogarniesz na bieżąco i będziesz mógł zacząć pracować na 2. roku) do czterech (jeśli łączysz pracę i naukę nie jest twoją mocną stroną) lat.

Co warto tu wiedzieć?

  • Konieczne jest wybranie odpowiedniej uczelni. Zobacz programy szkoleniowe, oceny. Dobrym wskaźnikiem są konkursy organizowane przez uczelnię. Jeśli drużyny uniwersyteckie przynajmniej okresowo zajmują miejsca w pierwszej dziesiątce na stosunkowo dużych olimpiadach programistycznych, to kodowanie na uczelni nie będzie podstawą (mimo że osobiście możesz w ogóle nie interesować się olimpiadami). Cóż, ogólnie rzecz biorąc, zdrowy rozsądek rządzi: jest mało prawdopodobne, aby bracki oddział Bajkałskiego Uniwersytetu Państwowego dał ci potężny pełny stos.
    Przykłady dobrych uniwersytetów: Moskiewski Uniwersytet Państwowy/St.Petersburg State University (oczywiście), Baumanka (Moskwa), ITMO (St. Petersburg), NSU (Nowosybirsk). Pomimo całej ich wzniosłości, całkiem możliwe jest dostanie się do nich przy ograniczonym budżecie, jeśli nie celujesz w najlepsze działy.
  • Nie tylko uniwersytet. Pomimo tego, że zostaniesz wszechstronnie przeszkolony w najróżniejszych sprawach, to nie wystarczy. Z powodu biurokracji program szkoleń prawie zawsze będzie odbiegał od współczesnych trendów. W najlepszym wypadku – na rok lub dwa. W najgorszym - przez 5-10 lat. Będziesz musiał sam nadrobić różnicę. Cóż, oczywiste: jeśli będziesz uczyć się materiału razem z innymi uczniami, to każdy z nich będzie Twoim równym konkurentem. Jeśli opcjonalnie wyjdziesz na prowadzenie, będziesz wyglądać znacznie lepiej na rynku.
  • Poszukaj pracy jak najwcześniej. Zacząłem pracować na drugim roku. Pod koniec studiów byłem już całkiem średnim programistą, a nie skromnym juniorem bez doświadczenia. Myślę, że to oczywiste, że po skończeniu studiów przyjemniej jest zarobić 100 tys. niż 30 tys. Jak to osiągnąć? Po pierwsze patrz punkty A i B. Po drugie jedź na spotkania, festiwale, konferencje, targi pracy. Monitoruj rynek i staraj się zdobyć pracę jako junior/stażysta na pół etatu w dowolnej firmie, w której przynajmniej w przybliżeniu się nadajesz. Nie bójcie się płatnych konferencji: często oferują one bardzo dobre zniżki dla studentów.

Jeśli zastosujesz się do wszystkich tych punktów, to do czasu otrzymania dyplomu możesz stać się niezwykle dobrym specjalistą z doświadczeniem zawodowym i bogatą podstawową wiedzą, którą samoucy często zaniedbują ze względu na ich niewykorzystany charakter. Cóż, skorupa może pomóc, jeśli wybierasz się za granicę: często tam na to patrzą.

Jeśli się nie zastosujesz... Cóż, możesz uzyskać wynik, podążając za nurtem, kopiując i przygotowując się do egzaminu przez noc. Ale jak myślisz, jak bardzo będziesz wtedy konkurencyjny? Oczywiście nie twierdzę, że ze wszystkiego trzeba mieć piątki. Trzeba po prostu zdobyć wiedzę. Użyj rozumu. Ucz się tego, co interesujące i przydatne, i nie przejmuj się ocenami.

Wiadomość dla przyszłego programisty

Najważniejsze nie jest to, co próbują w ciebie wcisnąć. Najważniejsze jest to, co jest interesujące i istotne

-

Ponadto drugi sposób: kursy programowania. Internet jest pełen ofert, dzięki którym możesz zostać juniorem w zaledwie 3 miesiące zajęć. Wystarczy portfolio, a nawet pomogą Ci znaleźć pracę. Tylko 10 tys. miesięcznie, tak.
Być może to zadziała dla niektórych, ale wyłącznie IMHO: to kompletna bzdura. Nie marnuj czasu i pieniędzy. I własnie dlatego:

Osoba daleka od IT nie będzie w stanie zrozumieć specyfiki zawodu w 3 miesiące. W ogóle nie ma mowy. Jest za dużo informacji do przyswojenia, za dużo do zrozumienia, a co więcej, za dużo do przyzwyczajenia.

Co wtedy ci sprzedają? Sprzedają ci „umiejętności mechaniczne”. Nie wdając się zbytnio w szczegóły, pokażą Ci, co musisz napisać, aby uzyskać dokładnie taki wynik. Dzięki szczegółowym instrukcjom i pomocy nauczyciela napiszesz swego rodzaju aplikację. Jeden, maksymalnie dwa. Oto portfolio. A pomoc w znalezieniu pracy polega na wysyłaniu ofert pracy do juniorów z dużych firm, w których jest mało prawdopodobne, że dostaniesz rozmowę kwalifikacyjną.

Dlaczego tak jest? To proste: dla programisty bardzo ważne jest myślenie abstrakcyjne. Programista rozwiązuje problemy, które można rozwiązać na miliard możliwych sposobów. A głównym zadaniem jest wybrać jeden, najbardziej poprawny spośród miliardów i wdrożyć go. Stworzenie jednego lub dwóch projektów według instrukcji da Ci pewną wiedzę o języku programowania, ale nie nauczy Cię rozwiązywania abstrakcyjnych problemów. Posłużmy się analogią: wyobraź sobie, że obiecują nauczyć Cię jazdy na orientację, zabiorą Cię na kilka prostych szlaków turystycznych, a potem powiedzą, że jesteś gotowy na podbój tajgi samotnie zimą. No cóż, nauczono cię używać kompasu i rozpalać ogień bez zapałek.

Podsumowując: nie wierz tym, którzy obiecują, że „zwiną” Cię w krótkim czasie. Gdyby to było możliwe, wszyscy już dawno zostaliby programistami.

Wiadomość dla przyszłego programisty

Po lewej: Czego będziesz nauczany. Po prawej: Czego będzie się od Ciebie wymagać w pracy?

-

trzeci sposób - droga wybrana przez większość. Samokształcenie.

Najtrudniejszy, ale być może najszlachetniejszy sposób. Przyjrzyjmy się temu bardziej szczegółowo.

Więc zdecydowałeś się zostać programistą. Gdzie zacząć?

Przede wszystkim musisz odpowiedzieć sobie na pytanie: dlaczego tego chcesz? Jeśli odpowiedź brzmi „no cóż, oczywiście nie jest to szczególnie interesujące, ale dużo płacą”, to możesz na tym poprzestać. To nie jest miejsce dla ciebie. Nawet jeśli Twoja siła woli wystarczy, aby przesiać mnóstwo informacji, napisać tysiące linii kodu, przetrwać setki niepowodzeń, a mimo to zdobyć pracę, w rezultacie bez miłości do zawodu doprowadzi to jedynie do wypalenia emocjonalnego. Programowanie wymaga ogromnego wysiłku intelektualnego i jeśli wysiłki te nie będą napędzane zwrotem emocjonalnym w postaci satysfakcji z rozwiązanego problemu, to prędzej czy później mózg oszaleje i pozbawi Cię możliwości rozwiązania czegokolwiek . Nie jest to najprzyjemniejszy scenariusz.

Jeśli jesteś pewien, że Cię to interesuje, możesz zdecydować o szczegółach - co dokładnie chcesz robić. Jeśli nie wiesz, czym programiści mogą się od siebie różnić, Google może Ci pomóc.

Od razu napiszę pierwszą radę, żebyście nie zapomnieli: uczcie się angielskiego. Potrzebny jest angielski. Bez angielskiego nie możesz nigdzie się ruszyć. Nie ma mowy. Bez języka angielskiego nie można zostać normalnym programistą. Otóż ​​to.

Następnie wskazane jest sporządzenie mapy drogowej: planu, według którego będziesz się rozwijać. Przestudiuj specyfikę, przejrzyj oferty pracy w swojej specjalności, dowiedz się powierzchownie, jakie technologie są tam stosowane.

Przykładowy roadmap dla programisty backendowego (nie dla każdego oczywiście, to tylko jedna z możliwych opcji):

  1. Podstawy HTML/CSS.
  2. Pyton. Podstawy.
  3. Programowanie sieciowe. Interakcja między Pythonem a siecią.
  4. Ramy rozwoju. Django, kolba. (uwaga: aby zrozumieć, jaki to rodzaj „Django” i „kolby”, musisz spojrzeć na wolne miejsca pracy i przeczytać, co jest tam wymagane)
  5. Dogłębne badanie Pythona.
  6. podstawy j.

To bardzo, Powtarzam, bardzo przybliżony plan, którego każdy z punktów sam w sobie jest ogromny i nie uwzględniono wielu tematów (na przykład testowanie kodu). Ale jest to przynajmniej pewien rodzaj usystematyzowania wiedzy, który pozwoli ci nie pomylić się z tym, co wiesz, a czego nie. W miarę studiowania stanie się jaśniejsze, czego brakuje, a plan działania zostanie uzupełniony.

Dalej: znajdź materiały, których będziesz używać do nauki. Główne możliwe opcje:

  • Kursy online. Nie te kursy, które „czerwiec za 3 dni”, ale takie, które uczą jednej konkretnej rzeczy. Często te kursy są bezpłatne. Przykłady stron z normalnymi kursami: stepik, coursera.
  • Podręczniki internetowe. Są darmowe, shareware, płatne. Sami się przekonacie, gdzie płacić, a gdzie nie. Przykłady: htmlakademia, Learn.javascript.ru, Książka Django.
  • Książki. Jest ich wielu, wielu. Jeśli nie możesz wybrać, trzy rady: staraj się sięgać po nowe książki, bo... informacje bardzo szybko stają się nieaktualne; Wydawnictwo O'Reilly ma dość wysoki poziom jakościowy i normalną prezentację; Jeśli to możliwe, czytaj po angielsku.
  • Spotkania/konferencje/wykłady. Niezbyt przydatny pod względem bogactwa informacji, ale niezwykle przydatny pod względem możliwości komunikowania się ze współpracownikami, zadawania odpowiednich pytań i nawiązywania nowych znajomości. Być może nawet znaleźć wakat.
  • Google. Wiele osób nie docenia, ale umiejętność prostego znalezienia odpowiedzi na niektóre pytania jest bardzo ważna. Możesz śmiało wypisywać w Google rzeczy, których nie rozumiesz. Robią to nawet doświadczeni seniorzy. Możliwość szybkiego znalezienia informacji o czymś jest w istocie tym samym, co wiedza o tym.

OK, ustaliliśmy źródła informacji. Jak z nimi pracować?

  1. Przeczytaj/słuchaj uważnie. Nie czytaj, gdy jesteś zmęczony. Wgłębiaj się w znaczenie, nie pomijaj punktów, które wydają się oczywiste. Często przejście od oczywistego do niezrozumiałego następuje dość szybko. Zapraszam do powrotu i przeczytania jeszcze raz.
  2. Robić notatki. Po pierwsze, łatwiej będzie Ci zrozumieć swoje notatki, gdy będzie ich dużo. Po drugie, w ten sposób informacje są lepiej przyswajane.
  3. Wykonaj wszystkie zadania, które sugeruje Ci źródło. Chociaż nie, nie w ten sposób. Do Wszystko zadania, które oferuje Ci źródło. Nawet te, które wydają się proste. Zwłaszcza te, które wydają się zbyt skomplikowane. Jeśli utkniesz, poproś o pomoc przepełnienie stosu, przynajmniej za pomocą Tłumacza Google. Zadania są pisane po coś, są potrzebne do prawidłowego przyswojenia materiału.
  4. Sam wymyślaj zadania i też je wykonuj. Idealnie byłoby, gdyby było więcej praktyki niż teorii. Im mocniej zabezpieczysz materiał, tym większe prawdopodobieństwo, że za miesiąc go nie zapomnisz.
  5. Opcjonalnie: podczas czytania twórz własne quizy. Zapisz trudne pytania w osobnym źródle, a po tygodniu lub miesiącu przeczytaj i spróbuj odpowiedzieć. Jeśli to nie zadziała, spróbuj ponownie.

I powtarzamy te 5 punktów dla każdej badanej technologii. Tylko w ten sposób (po dokładnym przestudiowaniu teorii i szerokim zakresie praktyki) stworzysz wysokiej jakości bazę wiedzy, dzięki której możesz stać się profesjonalistą.

I wydawałoby się, że wszystko jest proste: uczymy się technologii jedna po drugiej, rozumiemy Zen i zabieramy się do pracy. Tak właśnie jest, ale tak nie jest.

Większość osób uczących się programowania postępuje mniej więcej tak:

Wiadomość dla przyszłego programisty

zdjęcie zostało szczerze skradzione stąd

I tutaj musisz bardziej szczegółowo przyjrzeć się każdemu z kroków:

Zacznij: Masz zerową wiedzę. Punkt wyjścia. Nic nie jest jeszcze jasne, ale prawdopodobnie jest niezwykle interesujące. Ścieżka zaczyna się pod górę, ale lekko. Już niedługo będziesz się wspinać

Szczyt szaleństwa: „Hurra, ukończyłeś kilka pierwszych kursów! Wszystko się układa!” Na tym etapie euforia po pierwszych sukcesach zaślepia oczy. Wydaje się, że sukces jest już blisko, mimo że jesteś jeszcze na początku swojej drogi. A dążąc do tego sukcesu, możesz nie zauważyć, jak zacznie się Twój szybki upadek w dół. I nazwa tego dołu:

Dolina Rozpaczy: A więc ukończyłeś podstawowe kursy, przeczytałeś kilka książek i zdecydowałeś się zacząć pisać coś własnego. I nagle nie działa. Wydaje się, że wszystko jest znane, ale nie jest jasne, jak to połączyć, aby działało. "Nic nie wiem", „Nie uda mi się”. Na tym etapie wiele osób się poddaje. Tak naprawdę wiedza istnieje naprawdę i nigdzie nie wyparowała. Jasne wymagania i wsparcie po prostu zniknęły. Zaczęło się prawdziwe programowanie. Kiedy trzeba manewrować w przestrzeni, w której jest cel, ale nie ma etapów pośrednich, wiele osób wpada w odrętwienie. Ale tak naprawdę to tylko kolejny etap nauki – nawet jeśli za pierwszymi dziesięciu razy wszystko okaże się jakoś, przy ogromnym wysiłku, brzydkie. Najważniejsze jest to, aby sprawę doprowadzić do końca na nowo, przynajmniej w jakiś sposób. Za jedenastym razem wszystko będzie łatwiejsze. Pięćdziesiątego pojawi się rozwiązanie, które wyda Ci się piękne. Po setnej nie będzie już tak strasznie. I wtedy to nadejdzie

Skok Oświecenia: Na tym etapie wyraźnie wyłaniają się granice twojej wiedzy i twojej ignorancji. Niewiedza nie jest już przerażająca; istnieje zrozumienie, jak ją pokonać. Łatwiej będzie manewrować w przestrzeni bez podejmowania decyzji. To już jest meta. Już zdając sobie sprawę, czego Ci brakuje jako specjalisty, uzupełnisz i utrwalisz to, co niezbędne i ze spokojną duszą wejdziesz w teren.

Płaskowyż Stabilności: Gratulacje. To jest linia mety. Jesteś ekspertem. Możesz pracować, nie zgubisz się w obliczu nieznanej technologii. Niemal każdy problem można pokonać, jeśli włoży się w to wystarczający wysiłek. I choć to już meta, to dopiero początek jeszcze większej podróży.

Ścieżka programisty.

Powodzenia!

Literatura do przeczytania fakultatywnego:
O zostaniu programistą i efekcie Dunninga-Krugera: szturchać.
Hardkorowy sposób na zostanie programistą w 9 miesięcy (nie odpowiedni dla każdego): szturchać.
Lista projektów, które możesz realizować samodzielnie w trakcie studiów: szturchać.
Trochę dodatkowej motywacji: szturchać.

Źródło: www.habr.com

Dodaj komentarz