Zostać programistą (2) - czy się nadajesz?

Programowanie to nie jest zajęcie dla wszystkich. Tylko nieliczni mogą nimi zostać. I to jest jeden skrajny pogląd, jaki można usłyszeć. Programiści jako elita narodu. Mamy też podejście skrajnie odmienne, lansowane przez twórców bootcampów - każdy się nadaje na programistę. Nawet kasjer, co to wczoraj jeszcze skanował kajzerki. Nawet pracownica magazynu, która wczoraj jeszcze jeździła na wózku widłowym. Czyli totalny egalitaryzm.

A jak jest naprawdę?

Po pierwsze trzeba zwrócić uwagę na to, kto mówi i po co.

Z jednej strony mamy ludzi, którzy są przeświadczeni o wyjątkowości swojego zajęcia. To nic, że na codzień klepią rzeczy nie tak wcale wyjątkowe, jak klepanie formatek w React, pisanie wywołań do API czy kod na zasadzie kopiuj->wklej->modyfikuj. I tak uparcie będą twierdzić, że są niezastąpieni i wyjątkowi.

Z drugiej strony mamy bootcampy, które zarabiają na drogich kursach, więc w ich interesie jest twierdzić, że każdy może zostać programistą. Łowią sobie klientów.

Czyli każdy kłamie. Jedni po to, żeby wywindować ego, inni w celach marketingowych.

A może odpowiedź jest gdzieś pośrodku? A może odpowiedź jest nieco bardziej skomplikowana?

W tym poście postaram się naszkicować warunki wstępne, jakie są potrzebne do tego, żeby zostać programistą.

Działanie

Wiele osób chciałoby nauczyć się programować, ale na chceniu się kończy. Planują sobie naukę na miesiące w przód, zastanawiają się tygodniami nad wyborem języka, a nie robią tej jednej podstawowej rzeczy - nie zaczynają programować.

A przecież to proste - chcesz zacząć, to:

  1. Wybierasz jakikolwiek język programowania (możesz rzucić kostką, jak nie wiesz który. Chociaż ogólnie warto wybierać te popularne, bo masz więcej materiałów na ich temat)
  2. Przygotowujesz środowisko (ściągasz narzędzia do danego języka i edytor ew. po prostu wchodzisz na jakiś sandbox w necie. Na sam początek wystarczy)
  3. Otwierasz jakiś tutorial czy podręcznik do danego języka i piszesz pierwsze programy wg instrukcji z podręcznika/tutoriala

I cała filozofia.

Pewnie, można potem myśleć o kolejnych kursach/podręcznikach/tutorialach, można też w przyszłości zmienić język programowania, ale ogólnie możesz zacząć uczyć się kodzić już dzisiaj. Reszta jest prokrastynacją.

Czas

Jeśli chcesz się nauczyć programować, to musisz poświęcić na to dużo czasu. To nie jest tak, że zrobisz kurs i już będziesz programerem. Raczej zakładaj, że nauka programowania to proces, który będzie trwał całe lata. Owszem, może się nauczysz szybko podstaw, ale to nie wszystko, bo to dopiero początek nauki tak naprawdę.

Umiejętność nauki

Programista się musi ciągle uczyć, więc w cenie będzie umiejętność nauki nowych rzeczy, chęć próbowania nowych rzeczy, gotowość do robienia eksperymentów, umiejętność wysnuwania wniosków z własnych i cudzych pomyłek, umiejętność obserwacji, refleksji itp. itd.

Samodzielność

Czyli umiejętność rozkminiania samemu problemów, wykazywanie się inicjatywą, a nie tylko bierne pytanie na forach "a co mam zrobić teraz"?

Tolerancja niepewności

Czyli musisz się oduczyć szkolnego podejścia. No bo w szkole jest zawsze jedna prawidłowa odpowiedź na wszystko. Tylko, że w programowaniu tak jak w życiu - często nie ma jednej prawidłowej odpowiedzi. Nie ma jednej prawidłowej metody pisania kodu, implementacji wzorców, pisania klas. Im prędzej się nauczysz słowa "zależy" oraz przestawisz na myślenie "wszystko ma swoje zalety i wady", tym lepiej.

Może się też zdarzyć, że w kodzie będzie jakiś bug. Czasem trzeba będzie godzinami kombinować. Czasem problemu nie będzie się dało rozwiązać, a jedynie obejść. Czyli trzeba się nauczyć żyć w takiej niepewności, że nie wiesz do końca, jak coś działa, albo czy w ogóle to będziesz w stanie zrobić.

Angielski

O ile na początku da się jechać tylko na polskich materiałach, to wcześniej czy później natrafisz na mur, bo wiele rzeczy jest tylko po angielsku. Więc tutaj nie ma, że "nie znam angielskiego". Jak nie znasz, to zacznij udawać, że znasz i dalej sięgaj po anglojęzyczne materiały i spróbuj zrozumieć. Ja tak robiłem, że siedziałem ze słownikiem (papierowym) w dłoni i czytałem materiały po angielsku na zasadzie "sprawdzam każde słowo, którego nie rozumiem". Najpierw sprawdzałem prawie każde słowo, a po pewnym czasie takiego czytania po prostu zacząłem rozumieć.

Plus, jak chcesz dostać pracę, to i tak będą cię sprawdzać z angielskiego na rozmowie (teraz nawet bardziej niż kiedyś, bo kiedyś wystarczyło znać na poziomie czytania dokumentacji, teraz trzeba już umieć faktycznie rozmawiać). A w pracy też będzie potrzebny. Przyjęło się, że cały kod (np. nazwy zmiennych) się pisze po angielsku. Zdarzają się też międzynarodowe zespoły.

A co z matematyką?

Zależy od działki programowania. W wielu obszarach wystarczy znać dodawanie, odejmowanie, mnożenie, dzielenie, procenty, dzielenie z resztą i tyle. Jednak w tych ciekawszych działkach programowania jak machine learning czy grafika 3D już się przyda nieco bardziej zaawansowana matematyka (np. algebra liniowa czy rachunek wektorowy). Na szczęście dzisiaj można się tego nauczyć z Youtube.

Studia? Mogą być pomocne, ale ogólnie zbędne.

  • Sam dyplom nie jest potrzebny do tego, żeby zostać programistą. Oczywiście, jak już masz ten dyplom, to możesz sobie wpisać do CV, może uda się nabrać jakichś pracodawców, żę dzięki papierkowi jesteś lepszym programistą 🤣 Absurd, ale może któryś naiwny rekruter nie zauważy, że to scam, więc gra warta świeczki.
  • Wiedza ze studiów może się przydać, tyle że nie musisz studiować, żeby mieć taką wiedzę. Matematyka, algorytmy, teoria informatyki, to wszystko jest w necie i możesz tego się nauczyć samemu. Jeśli ktoś chce się czegoś nauczyć z informatyki, to zamiast studiami lepiej się zainteresować Youtube czy Courserą.
  • Studiowanie samo w sobie. Niezależnie od kierunku. Myślę, że jest fajnym doświadczeniem i dlatego warto studiować (cokolwiek, nawet jakąś filologię, nie musi to być informatyka). Można poszerzyć horyzonty, poznawać ludzi, nauczyć się szybkiej nauki i ogólnie pobyć studentem, mieć zniżki i inne benefity.

Czyli lepiej przemyśleć powody, dla którego chcesz iść na studia. Rozsądni ludzie idą na studia dla rozrywki, inspiracji, kontaktów itp. a nie dla papierka czy wiedzy (nie dotyczy medycyny czy podobnych regulowanych zawodów, gdzie musisz mieć papier).

Czyli...?

Podsumując, to jak widzisz, to, czy się nadajesz, nie jest kwestią prostej odpowiedzi "tak albo nie", tylko bardziej zaangażowania, z jakim będziesz się uczyć. Działań, jakie podejmiesz i twojej aktywnej postawy. Nawet jak masz predyspozycje, to i tak za mało, żeby cokolwiek ugrać. Pytanie, czy wejdziesz głębiej w króliczą norę, czy może będziesz robić sobie wymówki w stylu "nie wiem, jak zacząć".

Komentarze

  1. Dobrze napisane. Zaczynam zabawę z frontendem. Szkoda, że dopiero w wieku 39.

    OdpowiedzUsuń

Prześlij komentarz

Popularne posty z tego bloga

Ściemy z ogłoszeń o pracę

Czego się nauczyłem w 2021?