Jaki język programowania wybrać?

W mailach często pytacie nas, czy warto się jeszcze uczyć Javy, a jeżeli nie Javy to jaki inny język programowania wybrać. Chciałbym w tym wpisie odpowiedzieć na to pytanie i tym samym ułatwić sobie nieco pracę w przyszłości odsyłając niektórych do tego wpisu.

1. Niekoniecznie ufaj temu co piszą w internecie

Jeżeli zadacie w internecie pytanie "który język programowania wybrać" to często traficie na odpowiedzi typu:

język nie ma znaczenia, liczy się logiczne myślenie, rozumienie algorytmów itp. ucz się czegokolwiek, nauka nowego języka to kwestia poznania składni w tydzień

No i niestety nie mogę się z tym zgodzić, a przynajmniej nie do końca. Przede wszystkim chodzi o to, że sam język programowania faktycznie nie jest rzeczą niesłychanie trudną do nauki, bo jest to tylko skończony zestaw reguł, słów kluczowych, które należy w odpowiedni sposób układać. Problem w tym, że pod pojęciami takimi jak "Java", "Python", "Ruby", "C++" należy rozumieć cały ekosystem związany z danymi językami. Java prawdopodobnie nie utrzymałaby pozycji lidera popularności, gdyby nie ogromna społeczność rozwijająca tysiące bibliotek z otwartym kodem źródłowym. Chyba niemal każdy programista słyszał o "Springu", czy"Javie Enterprise Edition", a osoby, które programują w Javie już nawet od kilku miesięcy i próbują się zabrać za te technologie wiedzą, że można się w takim momencie poczuć jakby trafiło się na ścianę i uczyło się czegoś zupełnie nowego. Także do stwierdzeń takich jak przedstawiono powyżej należy podchodzić bardzo ostrożnie i zdawać sobie sprawę, że nauczenie się samego języka programowania w sensie jego składni, nie czyni nas programistą danego języka.

Kurs Java

2. Dobieraj język do swoich potrzeb

Podstawowe pytanie jakie należy zadać sobie podczas wyboru języka programowania to do czego właściwie wykorzystasz ten język? Nie za bardzo jest sens uczyć się Javy, jeżeli docelowo chcemy programować roboty, czy bawić się Arduino, bo do tego dużo lepiej sprawdzą się języki tzw. niskiego poziomu jak np. C. Chcesz tworzyć proste strony internetowe, albo przerabiać istniejące rozwiązania takie jak Wordpress, czy Joomla - wybierz PHP. Tutaj ponownie musisz uważać na to, że w internecie często jest to język wyśmiewany, a tak naprawdę działa na nim większa część internetu. Może jednak wolisz budować typowe aplikacje na komputery stacjonarne - prawdopodobnie najlepszym wyborem będzie C#, chyba, że zależy Ci na pisaniu aplikacji, które uruchomisz także na linuksie - wtedy raczej Java. Aplikacje mobilne? Jeżeli nie masz iPhone i Maca wybierz Javę. Android się na niej opiera, więc najłatwiej będzie Ci się nauczyć programowania właśnie na ten system. Pozostaje jeszcze ogromna branża biznesu i tego na czym tak naprawdę zarabia się dobre pieniądze. Jeśli myślisz o karierze zawodowej wystarczy spojrzeć na oferty pracy gdzie króluje Java, jednak wiele ofert znajdziesz także w .NET. Istnieje także grupa pozostałych języków, które mają szerokie zastosowanie i często polecane są na początek, ponieważ stosunkowo szybko można w nich robić ciekawe rzeczy. Warto tutaj wymienić choćby Pythona i JavaScript. Warto spojrzeć na popularną infografikę, która również daje całkiem niezły pogląd na to co można wybrać:

infografika

3. Patrz na trendy

Nie mam tutaj bynajmniej na myśli trendów trwających przez 3 miesiące. Jeżeli jakaś technologia przez lata zdobywa popularność i nie zapowiada się, żeby trend się ten nagle odwrócił to sugeruje to kilka rzeczy:

  • dużo aktualnie rozwijanego oprogramowania w danej technologii i stabilna pozycja na rynku
  • dużo oprogramowania do utrzymania w przyszłości i stosunkowo pewna praca

Programista to oczywiście taki zawód, w którym codziennie się rozwijamy i uczymy czegoś nowego, jednak ciężko jest się naprawdę wyspecjalizować w wielu technologiach (patrz punkt 1). Istnieje kilka metryk języków programowania, np. TIOBE Index, czyli takie zestawienie, które pokazuje ilość wzmianek w internecie na temat danego języka, ilość pytań na popularnych serwisach dla programistów.

tiobe index

Jeśli spojrzymy na ostatnie lata to wiele się nie zmienia, choć awanse o kilka miejsc zanotowały przede wszystkim języki Python i Ruby.

4. Unikaj prehistorii

Szczególnie w liceach, ale i czasami na studiach pojawiają się języki nieco prehistoryczne, które wraz z upływam lat straciły na popularności i zostały wyparte przez języki, które są obiektowe lub łączą wiele paradygmatów programowania. Trzeba tutaj wymienić głównie dwa popularne języki takie jak Pascal, Delphi. Choć ich nauka nie będzie dla Ciebie czasem straconym, to warto się zastanowić, czy nie lepiej sięgnąć po język, który daje wszystko to co one, ale oprócz tego jeszcze dużo więcej.

Dyskusja i komentarze

Masz pytania do tego wpisu? Może chcesz się podzielić spostrzeżeniami? Zapraszamy dyskusji na naszej grupie na Facebooku.