W internecie krąży błędne przeświadczenie że programowanie jest dla wszystkich chętnych, że każdy może być programistą. Szczególnie ta strategia marketingowa stosowana jest w firmach sprzedających drogie bootcampy po kilkanaście czy kilkadziesiąt tysięcy zł. Prawda jest taka że nie każdy nadaje się na programistę podobnie jak nie każdy może być skoczkiem narciarskim czy strażakiem. Oczywiście przy ciężkiej pracy możemy osiągnąć wiele w różnych dziedzinach, natomiast tutaj szczególnie trzeba być realistą.
Czy nadaje się na potencjalnego programistę?
To ważne pytanie, ale odpowiedź może wielu zaskoczyć. W programowaniu nie tyle liczy się sama wiedza, ale szczególnie pewne cechy charakteru. Kto o zdrowych zmysłach siedziałby nawet po dziesięć godzin dziennie latami przed komputerem często poświęcając zdrowie i czas wolny? Podkreślam że jest i wielu ekstrawertyków w IT tylko podstawą w tej pracy jest umiejętność skupienia się na rozwiązywaniu problemów. Praca programisty to nie jest przeglądanie cały dzień internetu i gra w piłkarzyki, często to żmudna i trudna praca. Czasem jest to zawód bardzo odpowiedzialny, bo skutki niektórych błędów mogą powodować straty przedsiębiorstwa itd. Oczywiście nie znaczy że tak jest na codzień, chcę podkreślić że to nie jest prosta praca.
Niektórzy mogą się ze mną nie zgodzić ale dla mnie np praca testera byłaby trudniejsza, gdyż wymaga często żmudnego szukania błędów, ciągłego sprawdzania wiele razy tego samego problemu i dostarczonego rozwiązania itd. Co więcej jeśli ktoś myśli że np praca testera gier to robota marzeń to może się bardzo zdziwić, bo najczęściej przez większość czasu gra się w tego samego crapa i nic więcej. Praca programisty często jest bardziej zróżnicowana, szczególnie jak jest się przypisanym do więcej niż jednego projektu 🙂
Cechy programisty
Poniżej przedstawiam przykładowe cechy programisty. Podkreślam że wiele z nich można sobie samemu wyrobić, nie trzeba się z nimi urodzić. Znam również wiele osób w tej branży które nie spełniałyby wielu tych cech, ale i tak sobie dobrze radzą. Cechą wszystkich jest oczywiście ciężka praca, którą można wykonać tylko samodzielnie, nie da się tego kupić.
Programista lubi się uczyć
Dawno minęły czasy kiedy zdobycie umiejętności w szkole gwarantowało pracę na całe życie bez potrzeby dokształcania się. Jeśli takie prace zostały to raczej są nie najlepiej płatne albo z czasem będą zautomatyzowane. Niezależnie czy ktoś jest księgowym, czy urzędnikiem czy nawet budowlańcem musi w mniejszym czy większym stopniu ciągle się uczyć gdyż technologia i świat cały czas się rozwijają.
Programiści to jednak kompletnie inna liga jeśli chodzi o rozwój technologi. Szczególnie teraz kiedy zaczyna rozwijać się sztuczna inteligencja co wymusza paradoksalnie większe wymagania aby wdrażać takie rozwiązania do systemów.
Jeśli nie lubisz się uczyć to może być dla Ciebie ciężko. Zaznaczam że nie ma tutaj znaczenia czy masz w świadectwach czerwone paski, chodzi zarówno o motywację jak i sumienną, żmudną naukę. Na szczęście wiedza jest dobrze wynagradzana w tej branży, więc inwestuj swój czas i z pewnością się zwróć z nawiązką.
Cierpliwość i wytrwałość
Tak naprawdę praca programisty jest dość nudna co pewnie dla wielu będzie zaletą tym bardziej jak starają się przebranżowić. Raz słyszałem historię o świetnie płatnej pracy pełnej wrażeń, czyli konserwacja elektryki na dużych statkach w porcie. Olbrzymie pieniądze, jest tylko jeden haczyk jak to ujął znajomy. Idziesz na jakiś złom który ma kilkadziesiąt lat i pracownik mówi, tutaj jest skrzynka ale uważaj bo jak pomylisz kabelki to otworzy się nie ta śluza co powinna i odwrócimy się do góry dnem. A później się dziwią że na programistów idą różne około techniczne zawody i nie tylko. Jeżeli ktoś ma doświadczenia w innych branżach to wiem o czym mówię, nagle nudę i żmudne dzierganie w kodzie zaczynasz doceniać. Wszystko w większości sprowadza się do nauki skupienia i nie rozpraszania się podczas nauki programowania oraz w samym zawodzie. Niektórzy blokują sobie youtuba czy inne strony, cokolwiek by nawet to wymusić, więc da się wypracować pewne rzeczy.
Zdolność analitycznego myślenia
Po co programiście znajomość matematyki? Czy oni tam całkują jakieś rzeczy na codzień? Oczywiście nie, to nauka logicznego myślenia i rozwiązywania problemów. Jeżeli nie znasz dobrze matematyki to nic straconego, ale jeśli w przyszłości chcesz wejść mocniej w rozwiązania AI to trzeba bezie to nadrobić. Pamiętaj również że coraz częściej ważne stają się umiejętności miękkie i jest wielu programistów, którzy pracują bezpośrednio z klientem, rozwiązują problemy jeżdżąc w podróże służbowe itd. Zdolność rozwiązywania problemów u programistów to kluczowa cecha, na szczęście większość początkowych trudności i tak będzie łatwa do rozwiązania z pomocą internetu i serwisów typu stackoverflow.
Wraz z większym doświadczeniem przyjdą większe wyzwania i z czasem i tak wyrobisz w praktyce analityczne myślenie. Podstawą natomiast jest niepoddawanie się i szukanie rozwiązania samodzielnie. Jeżeli wyczerpiesz wszystkie opcje dopiero wtedy pytaj się innych, z pewnością docenią że nie zawracasz im głowy głupotami i sam próbowałeś się zmierzyć z danym problemem.
Umiejętność pracy w zespole
To ważna umiejętność gdy zaczniesz już pracę w jakiejś firmie. O ile samodzielność jest bardzo ważna to oczywiście nikt nie pozwoli aby każdy robił co chciał i jak chciał. Z tego powodu popularne są spotkania scrumowe gdzie każdy opowiada co wczoraj zrobił i co ma zamiar zrobić dzisiaj. Dodatkowo nic tak nie przyśpieszy Twojego rozwoju jak nauka w zespole od starszych programistów. Pamiętaj że wiele firm ma swoje własne narzędzie czy biblioteki, często z szczątkową dokumentacją, dobre relacje z współpracownikami mogą być na wagę złota.
Skupienie na detalach
Szczególnie na początku Twojej kariery staraj się robić wszystko dokładnie, bo z uwagi na braki praktyki możesz popełniać więcej błędów. To jest absolutnie naturalne w procesie nauki i pierwszej pracy. Wiele razy zauważysz że przeoczenie pewnych drobnych rzeczy może mieć duże konsekwencje. Co więcej nawet możesz zrobić wszystko dobrze, ale nie wiesz co jest na około Twojego rozwiązania i błąd może wynikać nie z Twojej winy. Diabeł tkwi w szczegółach, dlatego skupienie się na detalach jest bardzo ważne, dlatego zachęcam nad dokładną nauką programowania. Pomijanie detali zawsze mści się później i zajmuje więcej czasu aby do nich wracać. Jak już coś robisz to raz a dobrze, bez półśrodków.
Pasja do technologii
Raczej większość z nasz nie ma z tym problemów, problem pojawia się kiedy trzeba pracować np z sprzętem który nie działa tak jak należy. Dokładnie jako programista JavaScript możesz nawet i programować jakieś urządzenia, nawet aplikacje na telewizor VOD są zrobione w JavaScript. Szczególnie w takich projektach trzeba mieć sporo cierpliwości, później z większym doświadczeniem łatwiej będzie zmienić pracę aby dołączyć do projektów, które naprawdę Ciebie interesują.