Trafiając na ten wpis pewnie zastanawiasz się jak zostać programistą. Z uwagi na rosnące zapotrzebowanie na programistów, niedobór kadry IT i kuszące zarobki istnieje duże zapotrzebowanie na programistów. Jednakże, jeśli wydaje Ci się, że jest to proste to się mylisz. Z mojego doświadczenia zawodowego zaobserwowałem dwie grupy osób, które są programistami.

Pierwsi z nich to osoby, które ukończyły studia i bez doświadczenia chcą w zależności od branży zarabiać 8 000 zł. Takie osoby, przeważnie bez pasji, traktują programowanie jako konieczne zło, dzięki któremu będą mogli żyć lepiej.

Druga grupa to pasjonaci, którzy już w trakcie studiów aktywnie rozwiali się w programowaniu, pisali przykładowe aplikacje, uczestniczyli w projektach open source i kończą studia z pewnym bagażem doświadczeń, które wykorzystują w profesjonalnej pracy.

Programista, bez pasji, nigdy nie będzie tak dobry jak ten, który to po prostu lubi. Jeśli lubisz programować to praca staje się Twoim hobby, a gdy nawet jesteś już po pracy, nadal masz siłę by przeczytać jakąś książkę związaną z programowaniem, obejrzeć konferencje na youtube etc.

Do czego dążę? Jeśli myślisz o zostaniu programistą to zadaj sobie pytanie czy to jest naprawdę to, co chcesz w życiu robić. Czy siedzenie co najmniej 8 godzin dziennie przy komputerze, wysłuchiwanie uwag Project Managera, Klienta, Product Ownera, nie będzie dla Ciebie męczące.

Jeśli myślisz o aspekcie finansowym, to musisz brać pod uwagę, że wraz z wzrostem wynagrodzenia rośnie odpowiedzialność. W zależności od firmy, w której pracujesz czy to jest agencja, software house, a może firma rozwijająca własny produkt, specyfika pracy jest całkowicie inna. Ale artykuł miał być o tym jak zostać programistą więc tyle jeśli chodzi o wstęp 🙂

Czy studia są konieczne by zostać programistą?

Nie, studia nie są konieczne i wielu pracodawców nie patrzy na nie. Natomiast studia w zależności od uczelni, którą wybrałeś na pewno pomagają. Dzięki studiom, posiadasz duże zasoby wiedzy teoretycznej związanej z programowaniem, algorytmiką, wzorcami projektowymi. Czasem, gdy uczysz się czegoś co wydaje Ci się pozbawione jakiegokolwiek sensu, podczas kariery programistycznej uświadamiasz sobie, że wykładowca miał racje. Studia pozwalają na nauczenie się rzeczy, które bez nich byłyby dla Ciebie zagadką.

Jak zacząć?

W okresie kiedy zacząłem interesować się programowaniem, było to w 2000 roku narzędzia programistyczne były bardziej prymitywne. Nie było tak powszechnego dostępu do Internetu, a wiedzę czerpało się głównie z książek. Teraz masz dostęp do wielu materiałów, filmów na YouTube, e-booków, potężnych IDE, a wielu programistów nie wyobraża sobie pracy bez serwisu stackoverflow.com

Jeśli nie masz żadnej wiedzy na temat programowania. Powinieneś wybrać język, w którym zaczniesz naukę. Wybór jest ogromny, ale polecam Ci języki z rodziny C. Na początek wybierz c++ ponieważ gdy zrozumiesz działanie C++ to inne języki takie jak JAVA, C#, PHP, nie sprawią Ci problemu. C++ jest językiem niskiego poziomu i programowanie w nim nie należy do najprostszych. Do nauki przyda Ci się książka Jerzego Grębosza Symfonia C++.

Co na początku? Musisz poznać elementy, które występują w praktycznie każdym języku programowania takie jak: zmienne, tablice, funkcje, pętle, operatory, referencje, wskaźniki. Pobaw się nimi spróbuj wymyślić sobie jakąś prostą aplikację np Kalkulator, albo napisz funkcję rozwiązującą proste równanie matematyczne. W Internecie znajdziesz wiele pomysłów na proste programy, które możesz rozwijać i uczyć się na własnych błędach.

Opanowałem podstawy co dalej?

Jeśli pojęcia takie jak funkcja, wskaźnik, pętla nie są dla Ciebie obce to warto zabrać się za algorytmy. W programowaniu często napotkasz podobne problemy, które można rozwiązać stosując istniejący algorytm. Zacznij od prostych algorytmów sortowania, wyszukiwania by skończyć na tych bardziej zaawansowanych. W nowoczesnych językach programowania istnieją biblioteki, które mają zaimplementowane algorytmy, ale warto wiedzieć kiedy należy użyć danego algorytmu, gdyż często się zdarza, że algorytm który działa szybko na określonej porcji danych, będzie bardzo wolny na innej, i tutaj warto wspomnieć o notacji O(n). Przykłady programów znajdziesz na obrazku poniżej:

przykłady programów dla początkującego programisty

przykłady programów dla początkującego programisty

Rodzaje programistów

Programista to pojęcie bardzo ogólne. Programiści dzielą się na kilka grup, z których można wyróżnić:

  • Programistów webowych(front, back) php, c#, mysql, css, sass, python, ruby etc.
  • Programistów aplikacji desktopowych java, c#, c, c++ etc.
  • Programistów aplikacji mobilnych java, objective c
  • Programistów aplikacji rozproszonych c, c++, java etc.
  • Programistów systemowych(kernel, driver, core) c

Każdy typ programisty, programuję w innym środowisku i zmaga się z innymi problemami. Jednakże, wiele rzeczy jest wspólnych np algorytmy, wzorce projektowe. Warto rozwinąć się w określonym kierunku zamiast umieć „trochę” z każdej dziedziny. Jeśli wybierzesz jakiś typ programisty, którym chciałbyś być to warto uczyć się technologi relatywnych. Czyli jeśli chciałbyś być PHPowcem to warto nauczyć się HTML, MySQL, redis-a, elasticsearcha, solr-a itp. i jakiegoś frameworka np Symfony

Język

Język angielski to absolutne minimum jeśli chodzi o programowanie. Musisz umieć czytać dokumentacje, wyrażać się języku technicznym po angielsku na odpowiednim poziomie. Pomijam fakt, że kod piszemy po angielsku więc jeśli nazywasz zmienne po polsku to oducz się tego póki jeszcze masz czas.

Podsumowanie

Droga do zostania programistą, nie jest wcale taka prosta, dlatego zarobki są jakie są i ciężko jest firmom znaleźć dobrych specjalistów. Jeśli wybierzesz tą ścieżkę i masz jakieś pytania, zapraszam do komentowania tego wpisu. Być może zrobię w przyszłości kolejny wpis, który będzie opisywał w sposób bardziej szczegółowy konkretne etapy nauki. Powodzenia!