Nauka programowania. Od jakiego języka zacząć?
Wielu z Was zapewne stanęło kiedyś przed dylematem: jakiego języka programowania warto się uczyć? Od czego zacząć? Gdzie szukać pomocy? Języków programowania, jak i samych technologii „okołoprogramistycznych” jest mnóstwo. Frontend, backend, środowiska, bazy danych, narzędzia… Wpisując w znaną wyszukiwarkę frazę: „od czego zacząć w programowaniu”, czy „którego języka programowania warto się uczyć”, albo „jaki język programowania na początek” zostaniemy wręcz przytłoczeni licznymi odnośnikami do forów dyskusyjnych, artykułów, statystyk. Odpowiedź natomiast jest bardzo prosta: „każdy język programowania jest dobry na początek, nie każdego jednak warto się uczyć w naszym konkretnym przypadku”.
Dlaczego chcę się uczyć programować?
Początkowo warto sobie zadać pytanie: po co chcę się nauczyć programować? Większość uczestników naszych kursów trafia na nie, ponieważ chce zmienić swoją dotychczasową ścieżkę zawodu lub w ogóle ją rozpocząć. Najczęściej kierują się przy tym licznymi artykułami wychwalającymi branżę IT lub raportami o wysokich zarobkach związanych z tym zawodem. W skrócie można to podsumować tak – przyświecają im przede wszystkim względy komercyjne. Sięgają więc po ogólne statystyki dotyczące popularności danej technologii typu Tiobe, rzadziej pobieżnie przeglądając oferty pracy na portalach z ogłoszeniami lub pytając znajomych deweloperów. O ile ta ostatnia metoda może faktycznie być przydatna, o tyle każda z nich, a w szczególności dwie pierwsze, obarczone są dużą szansą na błędne odczytanie faktycznych potrzeb rynkowych.
Dlaczego tak jest:
- Wszelkie raporty o popularności danego języka są prawdziwe, lecz odnoszą się do całego rynku lub jego znacznej części.
- Ogłoszenia o pracę są zawsze prawdziwe dla danego momentu w czasie, w chwili, gdy wejdziemy na rynek sytuacja może różnić się diametralnie od obecnej.
- Informacje otrzymane od znajomych są często odzwierciedleniem ich preferencji i subiektywnych doświadczeń, a także rzeczy zasłyszanych przez nich w najbliższym otoczeniu.
Mój pierwszy język programowania
Jak w takim razie wybrać swój pierwszy język programowania? Przede wszystkim zrób rozeznanie na LOKALNYM rynku, na którym będziesz później szukać pierwszego stażu czy pracy. Jak to zrobić? Przeanalizuj jakie firmy są na nim obecne, przejrzyj ich strony internetowe szukając informacji o technologiach, których używają. Dalej warto wykorzystać narzędzie takie jak LinkedIn. Dzięki niemu po wejściu na profil danej firmy można zobaczyć na jakich stanowiskach zatrudnieni są w niej deweloperzy i jakie technologie mają wyszczególnione w swoich umiejętnościach. Pamiętajcie, by zwracać szczególną uwagę na młodszych programistów oraz młodszych testerów automatycznych. Bo sam fakt, że w danej firmie jest sporo midów i seniorów z językiem JAVA, nie oznacza, że firma szuka juniorów właśnie z tą technologią. Może się okazać, że np. utrzymuje za ich pomocą starszy produkt, a nowe rozwija w zupełnie innym języku, np. C# lub Pythonie i to do tych projektów jest skłonna zatrudnić osoby z mniejszym doświadczeniem.
Znajdź firmę marzeń
Kolejnym punktem wartym uwagi są ogłoszenia o pracę. One pokazują jedynie chwilową sytuację na rynku. Dla przykładu dzisiaj jakaś firma szuka bardzo wielu deweloperów C#, ponieważ rusza w niej nowy projekt w tej właśnie technologii. Czy jednak będzie szukać takich umiejętności za kilka miesięcy, gdy będziemy wchodzić na rynek? Może tak, a może nie. Jak w takim razie „przewidzieć” to, co będzie działo się na rynku za jakiś czas? Jest to bardzo trudne i warto wyjść tu z własną inicjatywą. Projekty nie spadają z nieba. Często firmy mają „zarys” przyszłych potrzeb na długo zanim konkretny projekt ruszy i otworzą się rekrutacje. Odezwijcie się więc do HR’ów przez e-maila, czy wiadomość na Linkedinie, rozpuśćcie wici wśród znajomych zatrudnionych w firmach, które Was interesują. Przekaz jest prosty: „Podoba mi się to, co i jak robi Twoja firma, orientowałem się w tym jak wygląda Wasza kultura pracy. Dziś zaczynam się uczyć i stoję przed dylematem, jakich technologii będziecie potrzebować za pół roku. Chcę się całkowicie poświęcić programowaniu, by móc sprostać Waszym oczekiwaniom w przyszłości.” Nie zrażajcie się, gdy większość firm nie odpisze. Na pewno znajdą się takie, które odpowiedzą. I dzięki temu zyskacie punkt odniesienia. Na pocieszenie dodam, że z naszych obserwacji wynika, iż technologii wiodących w Trójmieście jest kilka i potrzeby dużych firm zmieniają się cyklicznie właśnie w ich obrębie.
Zbierz informacje od osób z najbliższego otoczenia
Ostatnią kwestią wpływającą na nasz wybór ścieżki programistycznej są relacje znajomych, którzy już w branży pracują. Ich słowa są najbardziej wartościowe. Musimy jednak i tu brać poprawkę na kilka kwestii. W jakiej firmie pracuję nasz znajomy, czy jest to duża korporacja, czy mniejszy software house? Jaki ma staż pracy? Jakie projekty realizuje i w końcu – jak wygląda jego otoczenie? Załóżmy, że Waszym znajomym jest deweloper JAVA. Zaczynał on na rynku swoją karierę przed 5 laty, pracuje w dużej firmie przy utrzymaniu produktu. Co Wam zapewne powie? Że warto uczyć się jedynie języka JAVA (lub innych języków JVM). Czy ma rację? W znacznym stopniu na pewno tak, ale trzeba tu zadać więcej pytań. Czy w swoim zespole ma głównie programistów JAVA, czy posiada wiedzę co do innych obecnych i planowanych projektów w swojej firmie, czy nie poleca języków JVM, dlatego, że zna najlepiej to środowisko i mówi nam to trochę przez sentyment i przyzwyczajenie? Czy nie odwołuje się do własnych początków w branży, mówiąc o tym, czego możemy się spodziewać, gdy sami będziemy zaczynać? Zmierzam do tego, by porozmawiać z jak największą liczbą znajomych z branży, a nie ograniczać się jedynie do jednego czy dwóch. Da to nam na pewno dużo lepszy obraz sytuacji.
Podsumowanie
Jeśli nie wiemy od jakiego języka programowania zacząć naukę, powinniśmy poświęcić trochę czasu na poznanie lokalnego rynku i jego potrzeb. Ten wysiłek naprawdę się opłaci. Pamiętajcie: koniec końców język programowania jest jedynie formą wypowiedzi. Wszyscy doświadczeni programiści, których znam, finalnie odnaleźliby się we większości technologii, a jedynie poznanie niuansów zajęłoby im sporo dodatkowego czasu. Dzieje się tak, ponieważ sama logika deweloperskiego fachu w swych podstawach pozostaje niezmienna. Niezależnie od tego, jaki więc język programowania wybierzecie, uczcie się programować. Dlaczego? Ponieważ warto. I tą myśl mamy nadzieję przekazywać wszystkim naszym kursantom.
Autor: Dominik Olszewski