10 kroków – Jak wybrać język programowania? Żeby dobrze się bawić, dobrze zarabiać i nie popaść w paranoję…

10 kroków – Jak wybrać język programowania?

Jak wybrać język programowania? Jaki język programowania jest odpowiedni na start, kiedy dopiero zaczynam? – te i wiele podobnych pytań zadaje sobie niejeden początkujący adept sztuki programowania. Dziś rozłożymy ten temat na czynniki pierwsze i zastanowimy się wspólnie jak wybrać język programowania oraz jaki język programowania będzie DLA CIEBIE najlepszy na start.

Najlepszy dla Ciebie – dlatego, że każdy z nas jest inny i mój najlepszy wybór, wcale nie musi być Twoim najlepszym. Wybór pierwszego języka programowania do nauki jest sprawą kontrowersyjną i zawsze budzi wiele emocji. Jeżeli naukę programowania zaczynasz już w szkole, bardzo często jest to środowisko graficzne, w stylu Logo czy Scrach, a później Pascal. Natomiast na studiach zazwyczaj zaczyna się od nauki C/C++, by potem przejść do Javy i C#.

Czy jest to dobry wybór? Ciężko to jednoznacznie stwierdzić, jednak na pewno nie jest to wybór najgorszy.

1. Nie ufaj wszystkiemu, co przeczytasz, myśl samodzielnie

Prawda stara jak Internet, a właściwie nawet starsza. Jednak to właśnie w Internecie każdy bez większego problemu może opublikować swoje zdanie. Efekt jest taki, że w większości przypadków ludzie zachwalają to, co znają, czyli w tym wypadku to, czego sami się uczyli. To jednak wcale nie musi być najlepszy wybór dla Ciebie.

To, że kolega nauczył się programować w C#, dobrze zarabia i chwali sobie tę technologię, wcale nie znaczy, że i Ty musisz iść tą drogą. Możliwe, że preferujesz frontend i w Twoim wypadku lepszym wyborem byłby JavaScript. Myśl samodzielnie i podejmuj decyzje odpowiednie z Twojego punktu widzenia.

Czy wybór pierwszego języka programowania, rzeczywiście jest taki ważny❓❓❓

Czy wybór pierwszego języka programowania przez przyszłego programistę jest rzeczywiście tak istotny, że wiele osób spędzam nad nim całe dni, tygodnie, a czasem i dłużej…?

Teoretycznie

Na pierwszy rzut oka sprawa wydaje się rzeczywiście pioruńsko ważna, bo znając jeden z topowych języków programowania, dość szybko możemy stać się wręcz rozchwytywanym programistą i nie tylko będzie wiązało się to z pewnym zatrudnieniem i wysokimi zarobkami, ale także z możliwością przebierania w ciekawszych projektach.

Dobrze wybierając język znacząco wpływamy na rozwój naszej przyszłej kariery programistycznej i nie marnujemy czasu na naukę technologii, które nie są zbyt przydatne.

Teoretycznie II

OK. Wszystko się zgadza – jednak, czy to znaczy, że teraz podejmując złą (lub raczej nieidealną) decyzję muszę już zostać z nią do końca mojego życia? 🙂

No oczywiście, że nie! Zawsze możesz zmienić zdanie – chociaż jak za chwilę ustalimy, nie jest to jedyny argument.

Wybór pierwszego języka programowania faktycznie nie ma większego znaczenia…

Dla wielu z nas nie jest to zbyt oczywiste, jednak wybór pierwszego języka programowanie faktycznie nie ma większego znaczenia…

Ponieważ jest to dość kontrowersyjne stwierdzenie, postaram się uargumentować tę tezę.

Języki programowania są do siebie podobnie, a Ty zdobywasz doświadczenie!

Większość języków programowania jest do siebie bardzo (a czasem nawet bardzo bardzo) podobna.

Niezależnie od tego,  czy pracujesz w Javie, C#, czy JavaScript itp. – każdy z tych języków ma przecież analogiczny zbiór podstawowych założeń i panujących w nim zasad. W każdym z nich mamy np. zmienne, stałe, instrukcje warunkowe, pętlę, funkcje itp.

Dlatego ucząc się tych podstawowych koncepcji na przykładzie jednego języka, nawet jeżeli przejdziesz za jakiś czas do drugiego, nie zaczynasz już od zera – uczysz się tylko drobnych różnic semantycznych między nimi.

Wielu programistów to poligloci – znają wiele języków programowania

Mimo iż na co dzień piszę głównie w Javie, to znam również PHP, JavaScript, C#, C/C++, bash oraz podstawy jeszcze kilku innych języków programowania.

Czy jestem w tej kwestii jakiś wyjątkowy? No, znowu nie! Bardzo wielu programistów zna więcej niż jeden język programowania. Nauka nowego języka programowania jest naturalnym elementem naszego rozwoju, który czasem jest wymuszony przez sytuację, a czasem jest zwyczajnie świadomą decyzją, by poszerzyć swoje horyzonty i możliwości zawodowe.

Nie daj się zablokować i idź do przodu! 🏃‍♂

Mimo iż nie jest to trywialna decyzja, to nie powinno Cię to blokować w rozpoczęciu nauki. Zwyczajnie szkoda na to czasu, a lepiej w tym czasie zacząć już naukę przynajmniej podstaw.

Jeżeli rzeczywiście nie możesz się na nic zdecydować, to sugeruję zacząć od języków z czołówki, np.: Java, C#, PHP, czy JavaScript.
Z bardzo dużym prawdopodobieństwem będzie to dobry wybór.

Natomiast jeżeli masz chwilę czasu i sam możesz zadecydować o tym, od jakiego języka zaczniesz naukę, zapoznaj się z tym materiałem i podejmij tę decyzję bardziej świadomie.

Moja droga do bycia programistą oraz historie i wybory innych programistów

Czy jest jedna słuszna droga – od czego zacząć naukę programowania? Wbrew temu, co możemy czasem przeczytać od osób zafascynowanych ich „jedynym słusznym” rozwiązaniem, ten wybór nie jest wcale taki oczywisty – przecież każdy z nas jest przynajmniej odrobinę inny. 🙂

Jeżeli interesują Cię prawdziwe historie programistów z krwi i kości, którzy ten wybór mają już za sobą, to w podlinkowanych poniżej wpisach znajdziesz ich całą masę:


2. Zacznij od angielskiego 🎯

Zacznij od angielskiegoNiestety, bez przynajmniej podstawowej znajomości języka angielskiego ciężko jest myśleć o programowaniu na poważnie. Oczywiście zdarzają się jednostki, które chwalą się, że programują już X lat i angielski nie jest im do niczego potrzebny. No cóż, na takie uwagi trzeba patrzeć z przymrużeniem oka. Możliwe, że te osoby nawet nie zdają sobie sprawy z tego, ile mogłyby osiągnąć, gdyby odrobinę zmieniły podejście.

Znajomość angielskiego to najlepsza inwestycja, jaką można poczynić na początku swojej drogi do programowania. Jest to jedna z większych dźwigni, która sprawi, że nauka będzie dużo prostsza i bardziej efektywna. Zdecydowana większość dostępnych materiałów oraz dokumentacji jest pisana po angielsku. Składnia wszystkich liczących się języków programowania oraz bibliotek również jest po angielsku. Dodatkowo komunikacja w zespołach też często odbywa się w tymże języku.

Właśnie dlatego mówi się, że angielski jest językiem programistów.

➡ ZOBACZ 👉 Swoje podejście do rozmowy kwalifikacyjnej po angielsku opisałem w podlinkowanym artykule.


3. Nie ucz się języka, ucz się programowania

Przeciętny programista, który jest dłużej na rynku pracy zna dobrze kilka, a jest w stanie posługiwać się kilkunastoma językami programowania. Języki zmieniają się, ewoluują lub nawet są wymieniane na inne. Jednak sposób myślenia, sposób programowania, w większości przypadków zostaje taki sam, albo przynajmniej bardzo podobny.

Zwłaszcza na początku drogi nie skupiaj się za bardzo na składni samego języka. Poświęć lepiej ten czas na zdobycie dobrych podstaw, takich jak algorytmika, dekompozycja problemów, czy logiczne myślenie.


Poszukaj sobie kolegi

Poszukaj sobie kolegi

4. Poszukaj sobie kolegi

Podczas nauki nowych technologii nieoceniona jest pomoc kogoś bardziej obeznanego w danym rozwiązaniu. Szczególnie na początku dość często będziesz trafiał na tak zwaną ścianę programistyczną. Dlatego, jeżeli Twój brat/siostra/żona lub ktokolwiek z Twojego bliskiego otoczenia dobrze zna jakiś język, warto skorzystać z jego wiedzy i zacząć naukę właśnie od tego języka.

Oczywiście nie chodzi tutaj o to, by ta osoba odwaliła za Ciebie całą brudną robotę, jednak zwłaszcza na początku nauki może Ci ona bardzo pomóc. Powinna uchronić Cię przed blokadą na prostych błędach i utratą mnóstwa czasu i nerwów.

Jeżeli nauczysz się już podstaw programowania, zawsze będziesz mógł zmienić język.


5. Dobierz język do Twoich potrzeb 👌

Zastanów się chwilę, co chcesz robić jako programista?

W zależności od tego, czym w przyszłości chcesz się zajmować, możesz już teraz wybrać odpowiedni język programowania.

Przykładowo, jeżeli interesujesz się frontendem, skup się na JavaScript, jeżeli chcesz pisać gry na Androida, wybierz Javę, lub gry na IOS to ObjectiveCSwift.

Nie musisz znać na starcie wszystkich języków programowania ani technologii. Jednak prawdopodobnie jesteś już teraz w stanie stwierdzić, czy bardziej pociąga Cię robienie stron internetowych, pisanie gier, aplikacje mobilne, czy może bazy danych.

Zastanów się chwilę nad tym i miej to na uwadze przy wyborze swojego pierwszego języka programowania.

Frontend czy backend❓

Front end developer

Front end to część aplikacji działająca po stronie użytkownika (ang. client-side) – czyli wszystko to, co odbywa się po stronie przeglądarki internetowej. Jako użytkownicy bezpośrednio korzystamy właśnie z tej części aplikacji. Jest to również jedyna część systemu, którą możemy obejrzeć i wejść z nią w bezpośrednią interakcję. Wszystkie pozostałe komponenty systemu są dla nas niedostępne i możemy się z nimi komunikować tylko za pomocą GUI (ang. graphical user interface) dostarczonego właśnie przez frontend.

Bardzo dużą zaletą pracy na frontendzie jest to, że od razu widzimy efekty naszej pracy. Zmienisz kolor tła, dodasz nowy przycisk – odświeżasz stronę i już wszystko tam jest. Dodatkowo tego typu pracę jest łatwiej wytłumaczyć i pokazać osobom spoza branży np. cioci podczas rozmowy na rodzinnej imprezie.

Back end developer

Back end jest to natomiast część aplikacji znajdująca się na zewnętrznym serwerze, do której użytkownik nie ma bezpośredniego dostępu (ang. server-side). Możemy ją traktować jak swego rodzaju szarą eminencję, która działa z ukrycia i zarządza systemem. Mimo iż nie widzimy jej, to jest ona niezbędna do prawidłowego działania aplikacji.

Po stronie backendu następuje obsługa danych przetwarzanych w systemie oraz ich zapis i odczyt w bazie danych. Odpowiednio przygotowane informacje są następnie udostępniane przy pomocy API (ang. application programming interface), np. usługi typu REST do frontendu, gdzie prezentowane są użytkownikowi.

Taka charakterystyka pracy może być bardzo trudna dla wielu osób. Dość powszechne jest, że pracuje się całe dnie, czy nawet tygodnie nad daną funkcjonalnością, a dla świata zewnętrznego wystawiony jest tylko jeden prosty endpoint, który ją wywołuje. Wynikami takiej pracy dość ciężko jest pochwalić się komuś spoza branży – nasza ciocia może mieć kłopoty ze zrozumieniem. 😅

Osobiście zaczynałem na frontendzie pisząc w PHP, jednak dość szybko starałem się przejść do backendu i do Javy – zwyczajnie tego typu zadania pociągały mnie dużo bardziej.

  • 🎯 Backend – czy nadajesz się na backend developera?

Strony internetowe

Większość stron internetowych, szczególnie tych mniejszych opartych jest o PHP oraz bazę danych MySQL. Rozszerzając te umiejętności o przynajmniej podstawową znajomość JavaScript, można już poważnie myśleć nawet o samodzielnej pracy nad tego typu projektami.

Dużą zaletą takiego podejścia jest duża popularność tych technologii, co szczególnie na starcie może wiązać się z łatwiejszym dostępem do projektów.

Aplikacje mobilne

A może aplikacje mobilne?

Na Androidzie króluje Java oraz Kotlin. Natomiast na iOS Objective-C i Swift.

Można też pomyśleć o rozwiązaniach hybrydowych i skupić się na stosie webowym, gdzie korzystając np. z JavaScript i ReactNative możemy napisać aplikację, którą można wdrożyć na obie platformy.

Aplikacje desktopowe na komputery stacjonarne i laptopy 💻

Do pisania aplikacji desktopowych/okienkowych  z powodzeniem można wykorzystać Javę i/lub C#/.Net.

  • Kurs Java – Darmowy Kurs Programowania w Javie

Gry 🎮

Gry szczególnie na początku wydają się bardzo kuszące – nie jest to jednak łatwy kawałek chleba. Wbrew pozorom gry są jednymi z trudniejszych projektów informatycznych.

Proste gry z powodzeniem możemy napisać korzystając z JavaScript i uruchomić z poziomu przeglądarki.

Do odrobinę większych projektów możemy wykorzystać np. Javę. Jeżeli jednak myślimy o tym na poważnie, to prędzej, czy później trzeba będzie się zainteresować C#/C++.

Programowanie dla dzieci

Jaki język programowania wybrać do nauki programowania dla dzieci? Java, Python, C#, czy może Scratch?

Jeżeli chodzi o najmłodsze pociechy to na samym starcie, odpuściłbym sobie konkretny język i skupił się na obsłudze komputera, znajomości alfabetu i podstaw matematyki. Na bardziej zaawansowane programowanie jeszcze przyjdzie czas. 🙂

Dla odrobinę starszych dzieci można już zdecydować się na konkretny język. Jednak tutaj też skupiałbym się bardziej na obsłudze komputera, umiejętności rozwiązywania problemów, szukania informacji i podstawach algorytmiki.

Jeżeli chodzi jednak o konkretne rozwiązania, to możliwości mamy naprawdę całkiem sporo – jest Scratch, Python, Ozoboty – ale możemy znaleźć również platformy, które uczą podstaw programowania bazując na różnych grach np. Minecraft.

W podlinkowanym wpisie opisuję swoje doświadczenia w tym temacie.


6. Patrz na trendy i unikaj prehistorii 🆕

Unikaj prehistorii

Unikaj prehistorii

Obserwuj, jak zmieniają się trendy i unikaj przestarzałych technologii. Kiedyś bardzo popularne było rozpoczynanie nauki programowania od Pascala, dziś mało kto o nim jeszcze pamięta…

Jeżeli już masz poświęcić swój czas na naukę, to w tym wypadku lepiej iść z prądem i zacząć od topowych rozwiązań. Później, gdy nabierzesz więcej doświadczenia i będziesz miał chęci, możesz oczywiście zmienić zdanie.

No dobrze – ale jak obserwować te trendy? 🤔
Możliwości mamy jak zawsze kilka. Tutaj sugerowałbym zacząć przynajmniej od przejrzenia najpopularniejszych indeksów. Każdy z nich działa odrobinę inaczej i nie powinno traktować się ich jako wyroczni, a raczej jako ogólną wskazówkę.

TIOBE Index

TIOBE index

 

PYPL Index

Pypl Index


7. Na początek wybierz prosty język!

Programowanie samo w sobie nie należy do trywialnych zadań – po co je sobie jeszcze utrudniać? 😉

Szczególnie na starcie ma to znaczenie, ponieważ wtedy często pojawiają się różnego rodzaju wątpliwości i różnego rodzaju trudności, których na tym etapie nie będzie nam brakowało. Dlatego dla własnego dobra nie ma co rzucać się na najtrudniejsze technologie.

Na studiach często zaczyna się od języków w stylu C i C++. Co wcale jednak nie znaczy, że jest to idealny wybór na start. Studia to nie jest kurs programowania i nie uczymy się tam, tylko i wyłącznie składni danego języka programowania. Tego typu języki często są wybierane, żeby pokazać studentom różnego rodzaju mechanizmy, czy koncepcje jak, chociażby ręczna alokacja pamięci, czy praca ze wskaźnikami.

Gdybyśmy zaczęli naukę np. od PHP, Javy, czy C# nie byłoby takiej potrzeby. Oczywiście ma to swoje plusy i minusy. Ja jednak wychodzę z założenia, że na start lepiej ZACZĄĆ – i dopiero gdy już wystartujemy wprowadzać nowe, często trudniejsze zagadnienia.


8. Miej na uwadze swoje finanse 💸

Nie wszyscy mają tyle szczęścia, że mogą dobierać sobie technologie wedle własnego uznania, nie zważając w ogóle na rynek. Przy wyborze języka warto również zwrócić uwagę, czy włożony wysiłek w jego naukę zwyczajnie Ci się opłaci.

Bardzo dobrym wyjściem jest zwykłe przejrzenie ogłoszeń o pracę i zorientowanie się, czego obecnie wymagają pracodawcy.

LinkedIn – oferty pracy


9. Język to nie tylko pętle i if’y

Nie możesz zapomnieć, że język programowania nie kończy się na samej składni. Istotny jest również cały ekosystem, który go otacza.

Mam tutaj na myśli przede wszystkim:

  • społeczność zebraną wokół technologii;
  • dostępne materiały do nauki;
  • istniejące biblioteki oraz frameworki;
  • wsparcie ze strony najpopularniejszych narzędzi, takich jak IDE.

Wartość konkretnego języka to tak naprawdę składowa wszystkich tych czynników. Przykładowo, Java ustępuje miejsca pod wieloma względami wielu nowszym technologiom, jednak ze względu na ogromną i aktywną społeczność (wliczając w to również wielkie korporacje), która ją wspiera, jestem spokojny o jej przyszłość. Natomiast ze względu na to, że obecnie jest wykorzystywana w bardzo wielu projektach mam też pewność, że przez długie lata będzie na nią zapotrzebowanie na rynku pracy.


10. Zmieniaj zdanie i nabieraj doświadczenia

Pamiętaj, że wybór pierwszego języka to nie jest podpisanie cyrografu na całe życie. Powiem więcej, dość rzadko programiści zostają wierni swojemu pierwszemu językowi przez całą karierę. Zdecydowana większość osób zna po kilka/kilkanaście języków, a czasem i więcej. Każda kolejna poznana technologia poszerza Twój horyzont i sprawia, że trochę bardziej krytycznie patrzysz na swoje poprzednie wybory.

Oczywiście i w tym nie ma co przesadzać. Pracownik, który jest w stanie napisać proste Hello World w 20 językach, jest mniej wart, niż gdyby znał dobrze jedną, nawet trochę starszą technologię.

Obecnie Java jest moim głównym językiem, jednak nie żałuję czasu poświęconego na C/C++, czy PHP. Doświadczenia z C/C++ nauczyły mnie dobrych praktyk zarządzania pamięcią, a dzięki PHP i JavaScript dobrze poznałem standardy webowe i nauczyłem się tworzyć strony www. Patrząc z perspektywy czasu, jest to nieoceniona wiedza, którą mimo zmiany technologii wykorzystuję cały czas w praktyce.


Jaki język programowania wybrać? Jaki język programowania na start, na początek dla początkujących?

Z tematu, który moglibyśmy zamknąć dosłownie jednym zdaniem powstał całkiem pokaźny wpis. To jednak pokazuje, że nie jest to wcale tak jednoznaczne zagadnienie i jeżeli masz wątpliwości, co dalej zrobić, to są one jak najbardziej uzasadnione.

Podsumowując nasze rozważania chciałbym, żebyś zapamiętał przede wszystkim, że najważniejsze jest, żeby zacząć. Gdy już zaczniemy zwiększy się też nasza wiedza i motywacja i po czasie bazując na naszych nowych doświadczeniach zawsze będzie można podjąć nową, może już odrobinę lepszą decyzję.

Powodzenia!

Jak się uczyć programowania?

Sukcesywnie i krok po kroku.

Zapraszam do lektury dalszych materiałów.

➡ ZOBACZ 👉:


20+ BONUSOWYCH materiałów z programowania

e-book – „8 rzeczy, które musisz wiedzieć, żeby dostać pracę jako programista”,
e-book – „Java Cheat Sheet”,
checklista – „Pytania rekrutacyjne”
i wiele, wiele wiecej!

Jak zostać programistą

2 komentarze
Share:

2 Comments

  1. Tomasz Pieniak says:

    witaj Tomaszu no na początek też bym wybrał tak jak ty wybrałeś coś w Jawę oraz ten bekend myślę że jest więcej dostępnych opcji w tym języku ale może później zmienię zdanie czas pokaże prawda

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *