Zastanawiasz się jak zostać programistą?
Zanim odpowiemy sobie na pytanie jak zostać programistą trzeba sobie odpowiedzieć dlaczego chcę zostać programistą?
Czy Twoim powodem jest:
- chęć zmiany zawodu?
- chęć nauczenia się czegoś nowego?
- potrzebujesz zaprogramować coś np. dla Smart Domu?
- a może lepsze zarobki?
Domyślam się, że jak większość osób, które szukają odpowiedzi na to pytanie głównym motywatorem są pieniądze. Na pewno jest to jeden z ważnych czynników, ale jeśli motywują Cię tyko pieniądze to Cię rozczaruję.
Zanim osiągniesz wymarzoną lub raczej obiecywaną, stawkę czeka Cię długa i wyboista droga. Czy będziesz mieć na tyle wytrwałości, aby to osiągnąć?
Zacznijmy od początku.
Czy żeby zostać programistą trzeba mieć wyższe wykształcenie?
Odpowiedź brzmi: NIE. Nie trzeba mieć wyższego wykształcenia aby być programistą.
Wyższe wykształcenie może być wymaganiem w niektórych firmach, choć coraz częściej przedkłada się umiejętności ponad wykształcenie.
Czy każdy może zostać programistą?
Tak, właściwie nie mogę wymyślić przeciwwskazań do tego, aby nie być programistą.
Czy muszę znać język angielski, aby być programistą?
Nie, nie musisz znać języka angielskiego. Tzn. do pewnego momentu nie musisz znać. Jeśli chcesz pisać aplikacje dla siebie albo firma, w której będziesz pracował, nie wymaga języka angielskiego to nie musisz znać angielskiego.
Większość firm na rynku wymaga języka angielskiego, ponieważ osoby pracujące w zespołach niekoniecznie posługują się językiem polskim. Język angielski daje większą elastyczność w firmie. Często zadania są opisane po angielsku, aby każdy, niezależnie od narodowości, mógł zrozumieć o co chodzi.
Dodatkowo dokumentacja techniczna, którą będziesz czytać, najczęściej jest napisana w języku angielskim.
Jakie cechy charakteru musi mieć programista?
Cierpliwość – nie wszystko przyjdzie szybko
Determinacja – nie wszystko uruchomi się od razu. Czasem trzeba spędzić kilka dni aby coś zadziałało
Otwarty umysł – głównie na nowe rozwiązania i technologie
Zdolność do podejmowania decyzji – tych dużych i małych. Jeśli czytasz ten tekst to być może właśnie tą cechę masz i chcesz podjąć jakąś decyzję.
Ile czasu zajmie mi nauka?
To jest bardzo ważne pytanie a odpowiedź którą podam, w świecie IT pojawia się bardzo często. Ta odpowiedź brzmi: to zależy.
Czas, który musisz poświęcić na naukę jest bardzo indywidualny. Zależy od kilku czynników:
- jak szybko przyswajasz nową wiedzę – im szybciej, tym krótszy proces nauki
- jaką ścieżkę dla siebie obierzesz – o tym później
- jak wysoko podniesiesz sobie poprzeczkę
Ok, czas rozpocząć naukę! Od czego zaczniemy?
STOP
Zanim przejdziemy dalej chcę Ci powiedzieć, że świat IT to nie tylko programista. Być może programowanie nie jest dla Ciebie, ale mogę wskazać Ci inne kierunki, które są również bardzo interesujące, pożądane, a także nieźle płatne.
- Tester – osoba, która zajmuje się testowaniem aplikacji. Testerów dzielimy głównie na manualnych (ręczne testowanie aplikacji) i automatyzujących (pisanie programów / skryptów, które automatycznie sprawdzają aplikację)
- DevOps – osoba zajmująca się tworzeniem infrastruktury potrzebnej do działania aplikacji a także tworzy skrypty automatyzujące proces budowania i aktualizacji aplikacji dla docelowego klienta
- SysOps – osoba zajmująca się administracją infrastruktury sprzętowej, dba o poprawne działanie systemu operacyjnego na serwerach, tworzy skrypty potrzebne do optymalizacji, monitorowania czy powiadamiania o nieprawidłowościach w systemie
- Designer UX/UI – osoba tworząca interfejs graficzny do aplikacji. Skupia się nie tylko na tym, aby interfejs był spójny i ładny, ale usprawnia sposób w jaki użytkownik korzysta z aplikacji np. zmniejsza ilość kroków w formularzu do niezbędnych, zmienia kolejność wyświetlanych informacji. Innymi słowy optymalizuje ilość operacji jakie musi wykonać użytkownik aby wykonać jakąś funkcję
- Manager – osoba zajmująca się zarządzaniem. Rodzajów managerów jest tak dużo, że ciężko jest tutaj je wpisać. Managerowie zajmują się zarządzaniem projektami, ale także (a może przede wszystkim) osobami w zespołach. Ich zadaniem jest optymalizować czas pracy, rozwiązywać problemy i sprawiać, że praca w zespole jest przyjemna i pełna uśmiechu
- Product Owner (właściciel projektu) / Analityk biznesowy – są to osoby bliżej klienta. Ich zadaniem jest zebrać wymagania, jakie potrzebuje klient, zweryfikować, czy na pewno klient to potrzebuje, dostosować i zaplanować pracę dla zespołu tworzącego aplikację wraz z wymaganiami
- Architekt aplikacji – osoba tworząca aplikację „z lotu ptaka”. Jej zadaniem jest wybranie właściwych technologii, narzędzi i rozwiązań, które będą najbardziej pasować do wymagań zebranych od klienta. Architekt wybiera jaka baza danych będzie potrzebna, jak będzie wygląda komunikacja między komponentami, gdzie można spodziewać się wąskich gardeł a także w jaki sposób dynamicznie zwiększać wydajność (skalować) aplikację w sposób transparentny dla użytkowników
Jak widzisz, IT to nie tylko programiści. To szereg różnych osób, które pełnią równie (a czasem może nawet i większą) ważną rolę jak programiści.
Nie, chcę zostać programistą!
Ok, chcesz zostać programistą. Programistą czego?
- aplikacji webowych (przeglądarkowych)
- aplikacji systemowych
- aplikacji mobilnych
- bazodanowcem
- może tworzenie gier?
A jeśli wybrałeś, że chcesz tworzyć aplikacje, to chcesz się zająć częścią którą widzi klient (interfejs graficzny), częścią którą jest odpowiedzialna za obliczenia a może oba na raz?
W tym miejscu zostawiam Cię ponieważ musisz się zastanowić jaki kierunek wybrać.
Nie powiem Ci co musisz umieć, ale wskażę Ci drogę od czego musisz zacząć i jaki jest kolejny krok.
Za pomocą tego drogowskazu możesz wybrać jaki kierunek Cię interesuje, od czego musisz zacząć i jakie kolejne kroki pozwolą Ci zagłębić się w wybranej technologii.
To dla mnie za dużo, czy coś prostszego w świecie IT?
Jak widzisz programowanie to nie tylko siedzenie przed komputerem i stukanie w klawiaturę.
To codzienna nauka nowych technologii i sposobów jak rozwiązać problem. To codzienna walka, czemu kod nie działa albo nie działa jak powinien. To zderzanie się z przeczącymi sobie wymaganiami od klienta. Setki godzin poświęconych na nauce, rozwiązywaniu problemów, tworzeniu nowych rzeczy, testowaniu nowych narzędzi a także pisanie swoich aplikacji, aby udoskonalić swój warsztat.
Czy jest coś prostszego? Wiele osób zaczyna od testowania manualnego. W żaden sposób nie chcę tutaj nikomu ubliżyć. Tester manualny to na prawdę ważna rola i często ratuje tyłek developerowi znajdując błąd, zanim jego manager się dowie od klienta 🤓 Jednak wydaje mi się, że tutaj jest najmniejszy próg wejścia. Wystarczy wiedzieć jak ma działać aplikacja, sprawdzić czy działa, a jeśli nie, to zgłosić problem z opisem co nie działa, kroki do reprodukowania błędu oraz opis jak powinno działać.
Słowo na koniec
Powodzenia i cierpliwości. Nie wszystko udaje się za pierwszym razem. Jeśli coś Ci nie wychodzi, zrób 2 kroki wstecz, żeby zrobić 5 do przodu.
W programowaniu nie ma jednego, idealnego rozwiązania. Każde rozwiązanie jest dobre. Może być mniej lub bardziej optymalne czy konfigurowalne.
Bardzo fajny wpis! Dostaję dużo pytań od chętnych do wejścia w świat IT którzy nie wiedzą od czego zacząć 🙂