Jaki język programowania wybrać na początek? Doradzamy, na co zwrócić uwagę

Strona główna Aktualności
Programista z depositphotos
Programista z depositphotos

O autorze

Programista, podobnie jak inne profesje z branży IT, to obecnie jeden z bardziej przyszłościowych zawodów, jakimi warto się zainteresować. Stąd też coraz więcej osób myśli o rozpoczęciu przygody z kodowaniem, czy to na etapie wyboru studiów, czy rozpoczęciu kursów, które pomogą w przebranżowieniu się i znalezieniu nowej pracy. O tym, z czym wiąże się zawód dewelopera, pisałem w oddzielnym wpisie blogowym, do którego również warto zajrzeć.

Decydując się na rozpoczęcie przygody z programowaniem, musimy na początku wybrać ścieżkę nauki, a dokładniej język, w jakim zaczniemy edukację. Jeszcze kilka lat temu królowało przekonanie, że najlepszym językiem do nauki jest poczciwy Pascal czy proceduralne C. Cóż, czasy się zmieniają i obecnie lepiej jest rozpocząć swoje pierwsze kroki od języków znacznie popularniejszych i przyjemniejszych do nauki. Zatem jaki język programowania wybrać na początek?

Język angielski – podstawa podstaw

Nikt chyba nie będzie zaskoczony: przygodę z programowaniem warto zacząć od dobrej znajomości języka angielskiego. Nawet jeśli znajdziemy poszukiwany przez nas kurs programowania w rodzimym języku, to posługiwanie się angielskim na pewno będzie niezbędne na późniejszym etapie.

Podczas programowania na co dzień, czy to zawodowo, czy hobbistycznie, najlpiej polegać na najświeższej wiedzy oraz pomocy społeczności uzyskanej tylko w języku Szekspira. Artykuły, prezentacje czy konferencje są również prowadzone po angielsku. W codziennej pracy programisty jesteśmy wręcz na niego skazani. Będziemy go wykorzystywać chociażby do komunikacji w zespole, wymiany wiedzy, a nawet w celu opisania naszej pracy dzięki komentarzom w kodzie.


Angielski dla specjalistów IT
Kurs jest kierowany do pracowników branży IT, którzy chcą podszkolić swój angielski.

Nie warto zapominać o języku angielskim nawet podczas stawiania pierwszych kroków w świecie programowania. W początkowej fazie edukacji pomoże to nam w dostępie do najświeższych materiałów, a później ułatwi pozyskiwanie wiedzy szybciej i ze znacznie pewniejszych źródeł.

Nie musimy władać językiem angielskim niczym native speaker, ale wystarczy wiedza potrzebna do przeczytania i napisania nieskomplikowanego tekstu. W późniejszym etapie zawodowej pracy zapewne wymogiem stanie się umiejętność rozmowy na poziomie komunikacyjnym. Warto może zatem przyjrzeć się ofertom kursów programowania w języku angielskim. Upieczemy wówczas dwie pieczenie na jednym ogniu.

Język programowania to tylko narzędzie

Tak, wiem, wiem. Wciąż nie ma mowy o tym, od czego zacząć przygodę z programowaniem, ale ma to swój cel. Otóż, tak naprawdę język, jaki wybierzemy, będzie tylko formą przekazu. Większość języków w podstawowych założeniach jest do siebie podobna (oczywiście czasem składnia mocno to komplikuje, jak np. w Assemblerze). Pewne wzorce i zasady pracy z kodem są zbliżone. Jednakże, jak zawsze, diabeł tkwi w szczegółach. Przy rozpoczynaniu nauki pamiętajmy, że najlepiej jest zacząć programować, a nie czytać o tym, jak to robić. Warto szukać kursów, gdzie praca z żywym kodem występuje jak najczęściej.

Dodatkowo naukę powinno zaczynać się od języków, które używane są na co dzień przez programistów w wykonywanym zawodzie. Rozpoczęcie edukacji kodowania od Pascala nie będzie złym pomysłem, ale lepiej wybrać coś, co pozwoli łatwiej wejść w rynek pracy, bez archaicznych naleciałości. Kto pamięta, że w Pascalu numerowanie tablic jest od 1, a nie od 0?

Przy wyborze języka na początek warto skupić się na językach obiektowych. Pozwolą one zrozumieć szerzej ideę programowania jako bytu, który w logiczny sposób opisuje zastany problem, poprzez wzorce zbliżone do otaczającego nas świata. Sama idea języka obiektowego będzie już świetnym wstępem do zapoznania się z programowaniem jako takim.

Jest jeszcze jedna zasada, którą warto pamiętać. Nigdy nie wiążemy się z aktualnym językiem na całe życie. To, że w danym momencie tworzysz coś w konkretnym języku, nie oznacza, iż za jakiś czas nie warto będzie posiąść umiejętności programowania w czymś innym lub zbliżonym. Dziś programujesz coś po stronie serwera, ale może się okazać, że będzie zapotrzebowanie na ludzi tworzących kod od strony klienta i taka wiedza w firmie będzie bardzo pożądana. Sam język też się zmienia z wersji na wersję. Np. kolejne wydania C# mają coraz to ciekawsze możliwości rozszerzające składnię. Takie nowości w obrębie jednego języka to coś, na co warto również zwracać uwagę w późniejszych etapach edukacji. Ułatwia to pracę i często przyspiesza tworzenie kodu.

Java od Podstaw do Eksperta - twórz własne aplikacje
Stworzony z myślą o osobach, które nie wiedzą nic na temat programowania w Java. Stań się ekspertem w Javie już dziś!

W świecie programowania nie ma obecnie jednego dobrego języka. Technologie się przenikają, nakładają i uzupełniają. Nie warto zamykać się na inne języki i rozwiązania. Programowanie to ciągły rozwój, zarówno osobisty jak i kodu, w którym się poruszamy. Warto zatem na początek dobrać język do tego, co byśmy chcieli robić. Co ciekawe wiele języków jest na tyle uniwersalnych, że mogą być używane na różne platformy docelowe. Chcąc przedstawić najbardziej popularne języki do nauki programowania podzieliłem je na dwie główne grupy. Obecnie w świecie IT rynek skupiony jest wokół dwóch ekosystemów: aplikacji mobilnych i webowych (zaliczamy do tego także chmurę i można również podciągnąć IoT), które niemalże zawsze działają w symbiozie. To tutaj właśnie najwięcej znajdziecie ofert pracy czy nowych bibliotek. Również na tych platformach powstaje wiele świeżych rozwiązań, a zatem konkurencja często staruje z tego samego pułapu, a firmy akceptują to, że nowe osoby dopiero będą szerzej poznawać rozwijający się ciągle framework. Warto zatem dać sobie szansę w nauce języka, który pozwoli na szybkie zaistnienie na rynku i wyróżnienie się znajomością nowej technologii.

Aplikacje webowe

Aplikacje webowe obecnie są jedynymi z bardziej popularnych systemów informatycznych, stąd też zapotrzebowanie na osoby tworzące oprogramowanie www jest bardzo duże. Wyróżniamy tutaj dwa zespoły działające w bardzo ścisłej współpracy: frontend, czyli kod na podstawie którego przeglądarka renderuje stronę i backend – wszystkie procesy zachodzące na serwerze.

Od strony klienta prym nieprzerwanie wiedzie JavaScript. Jest to język już dość leciwy, ale ciągle rozwijany i zdobywający coraz większą popularność poprzez swoją prostotę i uniwersalność. Nauka JavaScriptu w większości przypadków połączona powinna być z nauką HTML, czyli języka znaczników wykorzystywanych do pokazywania zawartości stron www. Sam język jest dość osobliwy przy głębszym zapoznaniu. Wiele osób uważa go za język „śmieciowy”, ale nie można odmówić mu jednocześnie łatwości i ogromnej uniwersalności. Omawiany język może być użyty również do tworzenia kodu po stronie serwera (node.js), a także w pisaniu aplikacji mobilnych (React Native).

JavaScript od Podstaw do Eksperta
Stworzony z myślą o osobach, które nie wiedzą nic na temat JavaScript. Zostań front-end developerem i zarabiaj pieniądze.

Warto pamiętać, że JavaScript jest dość prosty do nauczenia, ale jest tu mały haczyk. Otóż w dłuższym użytkowaniu bywa on dość toporny i ciężki do utrzymania. Stąd też powstaje wiele bibliotek i narzędzi, które pomagają w pisaniu aplikacji webowych. Niestety, bardzo szybko zmieniają się trendy, w jakich tworzy się frontend. Jeszcze kilka lat temu popularność zdobywało jQuery, które obecnie w nowych projektach jest niemalże niewykorzystywane. Swego czasu serca wielu programistów zdobył AngularJS, który niestety sporo stracił przy braku pełnego wsparcia starszej biblioteki po wydaniu wersji Angular 2. Warto również wspomnieć o nieśmiertelnym ReactJS czy świeżym Vue.js, który wkroczył śmiało na salony. Nie zapominajmy oczywiście o TypeScripcie, czyli próbie uporządkowania języka JavaScript z nastawieniem na typowanie i łatwe utrzymanie większego kodu. Warto jednak naukę zacząć od podstaw, czyli JavaScriptu i wówczas dopiero zdecydować się na któryś z powyższych frameworków i rozszerzeń.

Od strony backendu, czyli serwera, jest znacznie spokojniej i nie ma zmiany trendów o 180 stopni co pół roku. Na początek warto zainteresować się językami, które są już na rynku od dłuższego czasu i charakteryzują się dużą uniwersalnością w innych zastosowaniach. Głównie spotkamy tutaj programistów C# i Java, ale także dużym zainteresowaniem na rynku cieszą się rozwiązania tworzone w Pythonie, a także Ruby (on Rails). Nie możemy także zapomnieć o PHP, który nadal jest chętnie używany przez mniejsze i większe firmy. Wybór backendu będzie zapewne w późniejszym etapie wymuszał poznanie baz danych, czy to klasycznych relacyjnych czy nierelacyjnych.

Aplikacje mobilne

Decydując się na naukę tworzenia mobilnych aplikacji mamy bardzo szeroki wybór rozwiązań, z jakich można korzystać. Dzieje się to ze względu na to, że urządzenia przenośne stały się niezmiernie popularne i każdy z nas ma takowe pod ręką, niemalże przez 24h.

Na początek warto zainteresować się natywnymi językami, takimi jak Java (albo nowszy Kotlin) tworząc pod Androida lub Objective-C (ewentualnie świeższy Swift) chcąc pisać aplikacje na iOS. Natywne rozwiązania mają to do siebie, że wymagają tworzenia kodu per platforma. W ten sposób musimy jedną aplikację na dwie platformy wykonać oddzielnie, bez współdzielenia kodu. Jednakże znajomość chociażby podstaw, pozwoli na szybsze znalezienie rozwiązań wielu problemów, a więcej przykładowego kodu będzie pokazane przy użyciu natywnego języka. Po drugiej stronie są rozwiązania, które umożliwiają tworzenie aplikacji jednocześnie na dwie platformy lub chociażby współdzielenie części kodu. Bardzo wiele osób wybiera obecnie React Native, gdzie w języku JavaScript (+React) tworzymy aplikacje na urządzenia przenośnie. Projekt rozwijany przez Facebooka wart jest uwagi ze względu na prostotę i szybkość tworzonego kodu.

Xamarin – tworzenie aplikacji cross-platform na iOS i Android
Stworzysz natywne aplikacje w języku C#, działające na systemach iOS i Android.

Z mojej strony polecam także zainteresowanie się Xamarinem. Jest to platforma od Microsoftu, która opiera się na platformie .NET (C#) i umożliwia tworzenie bardzo wydajnych aplikacji mobilnych. W prosty sposób można stworzyć jedną aplikację działającą na obu głównych platformach mobilnych od Google i Apple (Xamarin.Forms) lub tworząc dwie aplikacje ze współdzielonym kodem (Xamarin Native), ale z wykorzystaniem w 100 proc. tego, co oferuje natywna platforma.

Możliwości jest wiele i warto pamiętać, że aplikacje mobilne w większości zasilane są poprzez dane z serwera. Zatem przy wyborze tego pierwszego języka do nauki spójrzmy również na to, że wybór języka bardziej uniwersalnego może być kartą przetargową przy rozmowach o przyszłą pracę. Dodatkowo łatwiej będzie zmienić platformę (czy firmę), wraz ze zmianą miejscą wykonywania kodu, jednocześnie używając jednego języka (oczywiście z zupełnie innymi bibliotekami pomocniczymi i w innym ekosystemie).

Na koniec dodam jeszcze małą dygresję odnośnie programowania na inne alternatywne systemy mobilne. Obecnie rynek podzielony jest na dwie platformy: Android i iOS. Nic nie wskazuje na to, aby w najbliższych latach coś się zmieniło. Microsoft próbował już swoich sił na tym polu, ale nic z tego nie wyszło. Szkoda zatem tracić czas na niepewne platformy, które mogą nigdy nie zaistnieć lub dawno zostały już zapomniane.

Tester to także dobra ścieżka nauki programowania

Na koniec zaproponuję coś jeszcze innego. Jeśli nie jesteśmy przekonani co do nauki programowania, ale chcemy rozwijać się na rynku IT, warto może rozpocząć edukację od zastania testerem. Osoba nieczująca się jeszcze swobodnie w programowaniu może, poprzez weryfikację stworzonej aplikacji przez deweloperów, wejść powoli w codzienny świat firmy tworzącej kod. Wówczas będzie to olbrzyma okazja do zaobserwowania powstawania kodu od drugiej strony. Pozna się proces wytwarzania i utrzymania aplikacji, a także pozwoli to wejść powoli w naukę języka poprzez chociażby pisanie testów jednostkowych czy analizę kodu.

Wydaje się to ciekawą drogą nie tylko do nauki programowania, ale także do rozpoczęcia pracy w roli analityka czy nawet samego testera. Może akurat rozwój w kierunku QA będzie ciekawszy, niż samo klepanie kodu.

Uniwersalnie

Wybór jest spory, ale każdy z wymienionych języków będzie świetnym wyborem na rozpoczęcie programowania. Jeśli jeszcze nie wiemy, w który segment IT celujemy, to na początek warto zastanowić się nad najbardziej uniwersalnym rozwiązaniem. Tutaj polecić można C#, w którym będziemy mogli tworzyć zarówno aplikacje webowe czy mobilne na wiele platform, ale także desktopowe czy IoT. Kolejnym językiem godnym polecenia jest Java, o zbliżonych możliwościach. Pomimo odwiecznej wojny pomiędzy wymienionymi językami, oba rozwiązania są generalnie bardzo podobne.

Godnym polecenia jest także JavaScript, który pozwala obecnie na bardzo szerokie zastosowanie. Jest on głównie bazą pod aplikacje webowe od strony klienta, ale nic nie stoi na przeszkodzie, aby w połączeniu z bibliotekami tworzyć aplikacje mobilne czy nawet serwerowe. Warto także pamiętać, że od strony webowej JavaScript zawsze występuje w połączeniu z dodatkowymi frameworkami. Ciekawym rozwinięciem jest również TypeScript, który znacząco ułatwia utrzymanie kodu, a z racji tego, iż jest sugerowany przy tworzeniu stron w Angularze 2+, jeszcze bardziej zyskuje na popularności.

Complete Java Masterclass - updated for Java 10
Osiągnij mistrzowski poziom od Javy 8 do Javy 10 krok po kroku i stwórz swój własny zaawansowany program w 30 dni

Miłe słowo na koniec

Wybór języka programowania jest ważny, ale najbardziej znaczącym elementem jest zdobycie podstaw, na których bazują wszystkie przedstawione rozwiązania. Mając solidne fundamenty jesteśmy w stanie rozpocząć naukę niemalże każdego języka. Kluczem jest także chęć nauki i dociekliwość. Wówczas w każdej chwili można wybrać język wedle potrzeb lub aktualnych trendów.

Platforma mobilna i webowa bardzo często współdziałają z sobą, stąd też bardzo prawdopodobne, że w przyszłości początkujący programista będzie programował na styku kilku technologii (np. mobilne aplikacje hybrydowe). Kluczem do sukcesu może być także zdobycie wiedzy eksperckiej, w jednej wąskiej dziedzinie programowania. Czy to język Java, czy może SQL, zawsze warto mieć na uwadze, że osoba będąca bardzo biegła w wybranym zagadnieniu, musi mieć szersze pojęcie o technologiach będących na styku własnej dyscypliny.

Chcąc zatem zostać programistą warto na początku zdecydować się na platformę, na której planujemy w przyszłości tworzyć kod. Wówczas, po zdobyciu podstaw, będzie już łatwiej zmienić język na inny lub zdobyć bardziej zaawansowaną wiedzę w obecnym. Tutaj trzeba zdać sobie sprawię, że w przyszłej pracy może trzeba będzie nawet kiedyś porzucić wybrany język programowania na rzecz innego. Niestety, tak to już jest w branży IT, zmiany następują bardzo szybko.

Nie da się ukryć, że podstawą nauki programowania jest jej rozpoczęcie (co nie bywa takie oczywiste!) i posiadanie nieskończonych pokładów cierpliwości. Czego wszystkim życzę!

© dobreprogramy