Jaki język programowania wybrać?

☕️☕️ 9 min

Jeżeli chcesz nauczyć się programować, jesteś zmotywowana do kształcenia się, a nadal nie wiesz od czego zacząć, jesteś w dobrym miejscu. Pytanie jaki język programowania wybrać? jest jak najbardziej właściwym pytaniem i świetnie, że je sobie zadajesz. Gdy już poznasz na nie odpowiedź, będziesz mogła wreszcie przystąpić do działania.

Jaki język programowania wybrać?

Autor zdjęcia: Jon Tyson

Czy pierwszy język jakiego zacznę się uczyć musi być tym ostatecznym?

Język, w którym poczynisz swoje pierwsze programistyczne kroki nie musi towarzyszyć Ci do emerytury. Nie musi być nawet językiem, w którym znajdziesz pierwszą pracę. Sama jestem dobrym przykładem osoby, która kilkakrotnie zmieniała swój główny język programowania i żadnej z tych zmian nie żałuję.

W pracy, poza Swiftem, używam też z mniejszą częstotliwością między innymi Objective-C, C++, Rubyego, JavaScripta, Pythona. Tylko teraz nie przeraź się, nikt ode mnie tego nie wymagał na rozmowie rekrutacyjnej! Po prostu poboczne zadania, czy narzędzia czasem łatwiej i przyjemniej napisać w czymś nowym, a przy okazji czegoś nauczyć się.

Jakikolwiek język wybierzesz, na początku poza składnią będziesz poznawać przede wszystkim koncepty. Dowiesz się, że są pętle, instrukcje warunkowe, funkcje, algorytmy oraz poznasz wzorce projektowe. Tłumacząc na analogii do języków obcych: ucząc się odmiany czasowników przez osoby dowiadujesz się, że jest coś takiego jak odmiana przez osoby. Zmieniając język już mniej więcej wiesz jak chcesz zbudować zdanie, wystarczy poszukać jak ta odmiana wygląda dla niego i gotowe. Ten fakt, że czasowniki odmieniają się przez osoby to właśnie koncept. Zatem, poznając nową technologię zwracaj szczególną uwagę na nie i możliwości ich stosowania.

Czym się kierować przy wyborze języka?

Pierwszym pytaniem, które przybliży Cię do wyboru języka jest pytanie: po co chcę się uczyć programować? Żeby nie pokrywać wszystkich możliwości odpowiedzi, skupmy się na dwóch najczęstszych opcjach:

  • mam pomysł na biznes/produkt, który chcę zrealizować,
  • chcę znaleźć pracę i zarabiać pieniądze.

W dalszej części wpisu omówię jak poradzić sobie z wyborem pierwszego języka programowania w obu tych sytuacjach.

Mam pomysł na biznes/produkt, który chcę zrealizować

Jeżeli masz konkretny pomysł, to już ogranicza to w pewien sposób dobór technologii. Zanim jednak przejdziemy do jej wyboru, zachęcam Cię do zastanowienia się czy na pewno to Ty chcesz zajmować się programowaniem w Twoim biznesie. Może lepiej zlecić to osobie, która ma już jakieś doświadczenie? Owszem, to nie są tanie rzeczy, ale w początkującym biznesie największym aktywem jest czas, a tego będziesz potrzebowała dużo.

Załóżmy, że nie masz tyle kapitału, żeby zatrudnić specjalistę, ale może to co chcesz zrobić, uda się osiągnąć w inny sposób, niż samemu siadając do kodu? Gdy Twój produkt jest np. stroną www, sklepem internetowym, blogiem to jest masa narzędzi, które pozwalają na budowę tego z większych klocków. Poszukaj, może jest to rozwiązanie, które Cię zadowoli i zaoszczędzi Ci ogrom czasu, nie nadszarpując portfela.

Jeżeli jeszcze nie poddałaś się i nadal chcesz zaprogramować swój produkt to doskonale Cię rozumiem. Sama zakładając tego bloga nie zdecydowałam się na polecanego przez wszystkich WordPressa. Chciałam się po prosu nauczyć frontendu i Reacta. Nie wiem jeszcze, czy tego nie pożałuję, bo jakby na to nie patrzeć WordPress jest doskonale skrojony pod blogi i załatwia sam z siebie mnóstwo rzeczy. Jednak śmiało mogę powiedzieć, że czas spędzony na programowaniu bloga był świetną zabawą i sama nie wiem kiedy zleciał.

Wracając do Twojego pomysłu, możemy się teraz skupić na technologii. Zastanów się, która z poniższych grup najlepiej mu odpowiada:

  • aplikacja mobilna,
  • aplikacja www (taka w przeglądarce, coś jak strona, ale może być bardziej interaktywna),
  • duży system,
  • gra.

Aplikacja mobilna

Gdy chcesz się zdecydować na jedną platformę i targetujesz w polski rynek wybierz Androida i zacznij od nauki Kotlina. Jeżeli celujesz w inne rynki, najlepiej sprawdzić jaki jest procentowy podział na użytkowników Android/iOS w danym kraju. W przypadku Stanów Zjednoczonych oczywistym wyborem będzie system od Appla, więc zachęcam do nauki Swifta 😉

W przypadku aplikacji na obie platformy, zamiast uczyć się dwóch technologii można skorzystać z rozwiązań hybrydowych. Do najpopularniejszych należą React Native i Flutter.

Aplikacja www

W przypadku aplikacji bardzo interaktywnej, gdzie rzeczy mają się dziać w czasie rzeczywistym (jak social media), czyli takiej typowo frontendowej sugeruję JavaScript lub jego nieco przyjaźniejszą formę TypeScript.

W innej sytuacji do wyboru mamy jeszcze Pythona, który zyskał miano języka najłatwiejszego do nauczenia. Rubyego idealnie nadający się do małych projektów i szybkiego prototypowania. Php stary, ale wspierany przez większość serwisów hostingowych w atrakcyjnych cenach.

Duży system

Nie jestem specem od takich systemów, ale masz tutaj w zasadzie dwie alternatywy. Jeżeli nie obawiasz się zamknięcia w świecie Microsoftu to możesz śmiało zacząć od C#. Drugim wyborem jest Java. Oba te języki są bardzo dojrzałe i w dużych systemach świetnie się sprawdzają.

Gra

Gry muszą być świetnie zoptymalizowane, więc najczęściej używa się do tego C++. W ostatnim czasie popularne stało się też robienie gier opartych o silnik Unity, więc może jest to coś czy powinnaś się zainteresować.

Chcę znaleźć pracę i zarabiać pieniądze

Często sugeruje się osobom, żeby na początku zastanowiły się czy wolą coś bardziej estetycznego, związanego z widoczną stroną aplikacji (frontend), czy rzeczy pod spodem (backend), albo może chciałyby pisać aplikacje mobilne? Ja pytam się skąd Ty masz to wiedzieć? Przecież nigdy nic nie napisałaś. Odpowiedź byłaby tutaj oparta na przeczuciu. Nie ma w tym nic złego, ale skoro od razu wiadomo, że jest to trochę zgadywanie, to po co sobie zadręczać tym głowę?

To, do czego gorąco zachęcam, to odwiedzenie portali z ofertami pracy i sprawdzenie, jakich programistów pracodawcy poszukują w Twojej okolicy. Chyba, że chcesz się przeprowadzić, ale to już sama wiesz najlepiej gdzie tej pracy będziesz gotowa szukać. Takie dwa najpopularniejsze portale z ofertami pracy dla programistów to: nofluffjobs i justjoin.it. Znajdziesz tam przykładowe widełki na konkretne stanowiska. Zanim zawróci Ci się w głowie od tych kwot, wspomnę tylko, że większość z nich dotyczy kontraktów B2B. Więc słowo netto nie oznacza popularnego przy umowie o pracę na rękę. Planuję poświęcić na to osobny wpis, więc zachęcam do zapisania się na newsletter, żeby go nie przegapić.

Masz już przed sobą oferty pracy w Twoim regionie. Gdy widzisz tam dominującą technologię, bierz się za jej naukę już teraz. Jeżeli jest tam wiele alternatyw, to szykuj się na kolejne pytanie.

W jakim środowisku najlepiej się odnajdujesz?

Są osoby, które dobrze czują się w korporacjach i nie wyobrażają sobie innej pracy. Są takie, które ich unikają jak ognia i preferują kameralne firmy. Świat IT wygląda trochę tak, że w korporacjach, z reguły, pracuje się nad dużymi systemami. Do tych systemów najczęściej wykorzystuje się C# lub Javę. Nie oznacza to, że nie można znaleźć pracy w tych językach w mniejszej firmie. Po prostu jest to trudniejsze. Więc jeżeli czujesz, że korpo to nie Twoja bajka, możesz skreślić je z listy.

W przypadku, kiedy nie chcesz zamykać się na korpo, wracamy do legendarnego podziału na frontend, backend, aplikacje mobilne i wiele innych mniejszych podgrup. Ale zrobimy to inaczej niż na przeczuciu co do estetyki, o którym pisałam wcześniej. Opowiem Ci czego trzeba się nauczyć, żeby zacząć pracę jako programistka w każdej z tych dziedzin. Możesz też przejrzeć dokładniej oferty pracy w Twojej okolicy i zobaczyć sobie czego wymaga się od kandydatów.

Zaznaczę tylko, że wymieniać będę technologie specyficzne dla danej grupy. Poza nimi istnieje kilka narzędzi, których warto się nauczyć, a są używane przez każdego rodzaju programistów. Przykładem takiego narzędzia jest Git. Namawiam jednak, żeby zacząć od nauki języka, a narzędziami przejmować się będziemy później.

Frontend

Podstawą jest HTML i CSS. Do tego momentu wszystko jest prosto i przyjemnie, aż pojawia się JavaScript lub jego nieco przyjemniejszy w odczuciu brat bliźniak TypeScript. Nawet w środowisku programistycznym te języki uchodzą za hmm… specyficzne.

Uważam, że są prostsze języki do nauki na początek. Koncepty, o których pisałam wcześniej są tutaj trochę inne. Jeżeli jednak czujesz, że chcesz być frontendeveloperką to absolutnie nie zniechęcaj się. Wiele osób zaczynało w ten sposób i z powodzeniem znaleźli pracę. Sama ostatnio przeszłam intensywną naukę JavaScriptu i bardzo mi się podobało. Choć przyznam, że było nieco inaczej niż dotychczas.

Backend

Jeżeli oferty pracy w Twojej okolicy zawierają Pythona to nie wahałabym się ani chwili dłużej. Uchodzi on za najprostszy język do nauki programowania. Jest na pewno przejrzysty, dzięki czemu łatwo go zrozumieć. Poprzez wymuszone formatowanie kształtuje umiejętność pisania czytelnego kodu.

Na backendzie znajdziemy też wiele innych języków jak Ruby , Java czy Php. Są to jak najbardziej technologie warte uwagi. Po raz kolejny odsyłam do ofert pracy.

Aplikacje mobilne

Najpopularniejsze są języki, w których pisze się aplikacje dedykowane na jedną z dwóch platform. W przypadku Androida jest to Kotlin, który już mocno wyparł Javę . Na iOS pisze się używając Swifta, który zastąpił mało przyjazne Objective-C.

Kotlin i Swift są dość podobnymi językami. Samo środowisko pisania aplikacji na Androida jest dużo bardziej rozbudowane i oferuje więcej narzędzi ułatwiających pracę. Za to u Appla do obsługi mamy skończoną liczbę telefonów (iPhonów w końcu nie ma tak wiele jak telefonów z Androidem). Większość użytkowników telefonów z jabłuszkiem szybko podnosi wersje swojego systemu, więc w swojej aplikacji można wykorzystywać nowości, które wprowadza Apple do systemu iOS.

To, co może Cię powstrzymywać przed pisaniem na iOS-a, to konieczność posiadania komputera z rodziny Apple. Nie jest to tani sprzęt, więc na początku taka inwestycja może wydawać się przesadą. W przypadku niewielkiego budżetu możesz poszukać używanego MacBooka, który posłuży Ci jeszcze ładne kilka lat.

Do pisania aplikacji mobilnych powstało też kilka frameworków hybrydowych, czyli takich, które umożliwiają napisanie aplikacji raz i z założenia powinna ona działać zarówno na Androidzie jak i na iOS-ie. W tej chwili najbardziej popularne są React Native i Flutter. Są już na tyle dojrzałe, że jak masz je na swojej liście z ofertami pracy to śmiało możesz się zabierać za ich naukę. Tylko ostrzegam, React Native wykorzystuje JavaScript lub TypeScript, więc jeżeli to powstrzymuje Cię przed frontendem może lepiej wybrać inną technologię mobilną.

W ramach zachęty do technologii mobilnych, w końcu to moja działka, powiem, że do zbudowania aplikacji wystarczy jeden język i podstawowa znajomość platformy (Android/iOS lub obu w przypadku rozwiązań hybrydowych). Nie potrzeba, tak jak w przypadku frontendu, znać dodatkowo HTML-a i CSS-a, więc potencjalne efekty mogą przyjść szybciej.

Inne technologie

Inne technologie są mniej popularne, co nie oznacza, że ciężko znaleźć w nich pracę. Jeżeli znajdują się one na liście ofert pracy z interesującej Cię okolicy, a brakuje tam omawianych wcześniej języków, może to być odpowiednia opcja dla Ciebie.

Podsumowanie

Już na początku wpisu pokazałam Ci, że wybór pierwszego języka nie jest raz na całe życie. Chciałabym, żebyś nie traktowała tego jako dużej, zobowiązującej decyzji. Nie spodoba się? Trudno. Zmienisz i nauczysz się czegoś nowego. Pamiętaj, podstawy programowania są niezależne od technologii.

Jak po przeczytaniu wpisu masz do mnie jakieś pytania, albo coś było dla Ciebie niejasne, napisz do mnie maila lub odezwij się na instagramie.

Jeżeli nie masz do mnie pytań, to nie marnuj więcej czasu na zastanawianie się nad językiem programowania. Na podstawie tego artykułu śmiało wybierz jakiś i zacznij DZIAŁAĆ! 💪 Trzymam za Ciebie kciuki! 🤞

Zostańmy w kontakcie

Odbieraj materiały i informacje, które pomogą Ci zadbać o swój rozwój i karierę programistki. Uzupełnij swoje dane i zapisz się na newsletter.