fbpx

Jaki język programowania wybrać na początek?

Jaki język programowania wybrać na początek?

Jaki język programowania wybrać na początek? Wielu początkujących programistów zadaje sobie to pytanie i chociaż jest to dobre pytanie, to niestety często przeszkadza w rozpoczęciu nauki. Taki paradoks. Z jednej strony powinniśmy wiedzieć, czego chcemy się uczyć i dlaczego, także robimy rozeznanie, zgłębiamy temat w internecie, zadajemy pytania, ale z drugiej strony poświęcamy na to zbyt dużo czasu. Zamiast już się uczyć, zamiast już pisać kod – my dalej siedzimy i zastanawiamy się w jakim języku to robić.

A prawda jest taka, że na samym początku…

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

Ale musimy to odpowiednio uzasadnić i wyjaśnić – bo gdybym teraz zaczynał naukę programowania i ktoś by mi powiedział “wybór języka nie ma na początku żadnego znaczenia”, to czułbym się trochę w kropce, nie wiedziałbym co to tak naprawdę oznacza. Jak to nie ma żadnego znaczenia? Jak to mogę zacząć od dowolnego języka? A skoro mogę zacząć od dowolnego języka, to powiedzcie mi, od jakiego języka zacząć?

Stwierdzenie, że wybór języka programowania na samym początku nie ma większego znaczenia, bierze się z tego, że większość języków programowania opartych jest na podobnym zbiorze zasad. W każdym języku programowania będziemy mieli zmienne, stałe, instrukcje warunkowe, pętle, funkcje, także podstawy – niezależnie od tego jaki język wybierzemy – będą praktycznie takie same. Koncepty, które są w programowaniu uniwersalne, znajdziemy w każdym języku. Także nie ma większej różnicy, czy nauczymy się ich na przykład w Javie, a później będziemy programować w Pythonie czy odwrotnie.

Języki programowania są do siebie podobne

To trochę tak jakby teraz na ziemię przyleciał kosmita, który jest kompletnym niemową, a my byśmy chcieli tego kosmitę nauczyć mówić, tak żeby mógł powiedzieć skąd jest, co lubi, czego nie lubi, co robił i co będzie robić. I tak naprawdę nie ma znaczenia, czy nauczylibyśmy go polskiego, angielskiego, niemieckiego czy jakiegoś jeszcze innego języka, w każdym języku mamy czas przeszły, teraźniejszy i przyszły, mamy tryb przypuszczający, mamy tryb rozkazujący, mamy czasowniki, przymiotniki i rzeczowniki, także niezależnie od tego, jakiego języka byśmy go nauczyli, ten kosmita mógłby się już komunikować. Oczywiście z osobami, które dany język znają. I gdyby ten kosmita później chciał nauczyć się innego języka, to byłoby mu łatwiej, ponieważ znałby te zasady, te koncepty – wiedziałby, że istnieją różne czasy, że istnieją różne części mowy (czasowniki, przymiotniki, rzeczowniki), tylko w tych innych językach wyrażane byłyby w inny sposób, może nieco inna byłaby konstrukcja, inna byłaby składnia języka.

Tak więc wiemy już, że tych podstaw języka możemy nauczyć się niezależnie od tego, jaki język wybierzemy. Bez względu na to w jakim języku zaczniemy programować, poznamy praktycznie wszystkie koncepty, które są nam potrzebne w programowaniu. I jeżeli później przejdziemy do innego języka to dużo rzeczy będzie prostszych, ponieważ będziemy robić te same rzeczy, które już robiliśmy wcześniej, ale w trochę inny sposób, używając trochę innej składni.

Programista zna wiele języków

I generalnie rzadko jest tak, że programista zna tylko jeden język. Zazwyczaj w karierze programista używa wielu różnych języków. Różne języki mają różne zastosowania, różne problemy rozwiązujemy za pomocą różnych języków, także nie możemy przyzwyczaić się tylko do jednego języka i trzymać się go w nieskończoność.

No dobra, ale na coś trzeba się zdecydować, trzeba wybrać ten pierwszy język, którego chcemy się uczyć, od niego zacząć. A więc jaki to powinien być język? Na to pytanie nie ma jednoznacznej odpowiedzi, ale oczywiście podzielę się z Wami moimi typami i opowiem o językach, które według mnie są dobre na początek. Ale zanim do tego przejdziemy, opowiem Wam jeszcze jak to wyglądało w moim przypadku, jakie były moje pierwsze języki programowania. No właśnie, moje pierwsze języki, a nie pierwszy język, bo tak naprawdę ciężko jest mi wskazać jeden konkretny język, dzięki któremu nauczyłem się programowania.

Moja droga programisty

O mojej drodze programisty opowiedziałem w artykule Nauka od podstaw czy projekty z tutoriali – które podejście do nauki programowania wybrać?, z którym polecam się zapoznać 🙂

Warto poznać podstawy kilku języków

Jak widzicie trudno wskazać jeden konkretny język. Trochę poznałem PHP, potem trochę pokodowałem w C i C++, a jeszcze później przeszedłem do Javy, ale nie było tak, że którymś z tych języków od samego początku zająłem się mocniej, że uczyłem się tylko tego języka, zapominając o wszystkich pozostałych. Dopiero na pewnym etapie zdecydowałem się pójść w stronę Javy, ale poznając podstawy programowania nie przywiązywałem się do żadnego konkretnego języka. I uważam, że to jest dobre podejście – żeby nie skupiać się zbyt mocno na jednym języku, tylko, żeby poznać podstawy co najmniej kilku języków. Kiedy poznamy podstawy kilku języków będziemy myśleć w trochę inny sposób, będziemy mieli szersze spojrzenie na programowanie i mniej rzeczy nas zaskoczy. Przywiązywanie się tylko do jednego języka powoduje, że trochę sami siebie ograniczamy, że zamykamy się w pewnym wycinku programowania, a dobrze jest poznawać programowanie jako szerszy koncept.

Tak więc na początku, gdy decydujemy się na wybór pierwszego języka programowania, zachęcam, żebyśmy nie skupiali się na myśleniu, że to będzie tylko ten jeden język, że jeżeli wybierzemy jakiś język, przez najbliższy rok będziemy pisać kod tylko i wyłącznie w tym języku. Bardziej zachęcam do eksperymentowania, żebyśmy popisali pewne rzeczy przez 2-3 miesiące w jednym języku, a później postarali się przećwiczyć te same koncepty w innym języku. To nam da właśnie to szersze spojrzenie, które jest bardzo ważne w pracy programisty.

Czym tak naprawdę jest pierwszy język programowania?

Musimy też właściwie zrozumieć koncept pierwszego języka. Czy pierwszy język ma oznaczać ten absolutnie pierwszy język, w którym stawiamy absolutnie pierwsze kroki w programowaniu, gdzie poznajemy te programistyczne koncepty, o których mówiłem, takie jak zmienne, instrukcje warunkowe i pętle czy może pierwszy język ma być tym językiem, ze znajomością którego będziemy szukać naszej pierwszej pracy? To bardzo, bardzo ważne pytanie, ponieważ w dużym stopniu determinuje to, czego będziemy się uczyć i w jakiej kolejności.

Czy Python to dobry język na początek?

I dam tutaj ciekawy przykład – język Python. Bardzo dużo osób mówi, że jest to świetny język na początek przygody z programowaniem. Ja też się z tym zgadzam, ponieważ jest to język, który ma łatwą, czytelną składnię, więc osoby, które nie miały żadnego doświadczenia z programowaniem, bardzo często siadają do Pythona i w krótkim czasie potrafią tworzyć swoje pierwsze aplikacje. Ale czy Python to dobry język, ze znajomością którego powinniśmy szukać pierwszej pracy? Tutaj już nie jestem tak do końca przekonany. Wynika to z tego, do czego Python najczęściej wykorzystywany jest komercyjnie. A Python najczęściej wykorzystywany jest w takich branżach jak data science, machine learning czy sztuczna inteligencja. Nie są to raczej dziedziny przeznaczone dla początkujących programistów, są to już zaawansowane tematy.

W jakich językach jest najwięcej pracy dla młodszych programistów?

Jeżeli mówimy o projektach, do których najczęściej zatrudniani są młodzi programiści, to te projekty najczęściej wykonywane będą w takich technologiach jak Java, C# czy JavaScript. Pythona raczej tam nie będzie, a przynajmniej nie w takiej ilości, w jakiej chcielibyśmy go widzieć. Tak więc znajomość Pythona podczas poszukiwania tej pierwszej pracy niewątpliwie będzie sporym atutem, ponieważ Python często wykorzystywany jest na przykład do tworzenia skryptów czy automatyzowania pewnych czynności, ale powinniśmy znać też inny język – na przykład wspomnianą Javę, C# czy JavaScript.

Jeżeli chcemy rozpocząć pierwszą pracę w IT, to większą szansę będziemy mieli znając dobrze Javę lub JavaScript niż Pythona. Ofert dla młodych javowców czy młodych frontend developerów znających JavaScript jest po prostu więcej niż ofert dla młodych pythonowców.

Na początek wybierz prosty język!

Idąc na studia informatyczne, zazwyczaj pierwszymi językami, z którymi się stykamy, są języki C i C++. Czy oznacza to, że są to dobre języki do rozpoczęcia przygody z programowaniem? Nie do końca. Jeżeli chodzi o studia informatyczne, musimy pamiętać, że to nie jest kurs programowania. Na studiach zaczynamy od C lub C++ dlatego, że uczymy się na nich podstaw informatyki, uczymy się czym są języki programowania, jak są one zbudowane. Dlatego zaczynamy od C, żeby zrozumieć pewne mechanizmy i koncepcje, takie jak na przykład wskaźniki czy alokacja pamięci. W językach takich jak Java czy C# pewne procesy są dużo bardziej zautomatyzowane, tak więc siłą rzeczy programując w Javie niektórych rzeczy się nie nauczymy, bo ktoś (twórcy języka) te rzeczy zrobił już za nas.

Jeżeli uczymy się programowania we własnym zakresie, zachęcam do tego, żeby wybrać na początku język z prostą składnią, łatwy, przyjemny, czyli właśnie na przykład Python, Java, JavaScript czy C#. Równie dobrze może to być też PHP – tak jak ja zaczynałem od PHP, to również język bardzo przyjemny do pracy – czy Ruby.

Frontend czy backend?

Musimy również zastanowić się czy chcemy zacząć od frontendu czy backendu. Frontend to w dużym skrócie to co widzimy, tak więc gdy widzimy stronę, za wygląd tej strony odpowiada frontendowiec. Natomiast to co dzieje się w tle, całe to zaplecze – czyli na przykład logujemy się do jakiegoś serwisu, edytujemy konto czy dodajemy posty i zdjęcia – to backend.

Frontend jest kuszący z tego powodu, że od razu widzimy efekty naszej pracy. Gdy dopiszemy do naszego kodu wyświetlenie jakiegoś przycisku, wystarczy, że odświeżymy stronę i ten przycisk tam będzie. Gdy dodamy zmianę tła na kliknięcie przycisku – odświeżamy stronę, klikamy w przycisk i tło się zmienia. Także może to dawać dużą dawkę motywacji do tego, żeby uczyć się dalej i dalej eksperymentować.

Pracując z backendem w większym stopniu będziemy musieli wykazywać się wyobraźnią, ponieważ nie będzie tych wszystkich fajerwerków, nie wszystko będzie od razu widoczne. Gdy zaimplementujemy na przykład dodawanie czegoś do bazy danych, będziemy musieli wejść do bazy danych i zobaczyć “ok, dodaliśmy nowego użytkownika, jest tutaj w tym wierszu”. Nie będzie takiego automatycznego, natychmiastowego feedbacku dotyczącego tego, co robimy. Także tutaj może pojawić się może nie zniechęcenie, może nie nuda, ale na pewno będziemy musieli wykazać się większą cierpliwością.

Ale są osoby, których frontend w ogóle nie interesuje, które od razu będą chciał iść w backend, nie będzie im przeszkadzało, że nie ma tych fajerwerków graficznych, a wszystko robimy w konsoli.

Najlepszy język programowania na początek

Wybierzcie język z prostą składnią, pobawcie się nim i nie przywiązujcie się do żadnego języka. Popiszcie w jakimś języku 2-3 miesiące, spróbujcie innego języka, jeszcze innego. Programowanie to tak naprawdę przygoda. Wybór języka nie jest decyzją na całe życie – jeżeli wybierzemy teraz jakiś język, nie musimy się go trzymać za rok, spokojnie możemy to zmienić. Także moje rekomendacje raz jeszcze – Python, Java, JavaScript, C#, PHP, wybierzcie cokolwiek uważacie za słuszne, a wybór na pewno będzie dobry, a jeżeli chcecie spróbować z Javą, JavaScript albo Pythonem, to odsyłam do trzech filmów – Podstawy Javy w 2h, Podstawy JS w 60 minut i Podstawy Pythona w 2h.

Jak się uczyć programowania?

Żeby nauka programowania była efektywna, trzeba mieć na nią pomysł. Początki bywają trudne, więc tym bardziej istotne jest, by się nie znudzić i nie zniechęcić. Moim zdaniem wyjątkowo skuteczne jest połączenie nauki od podstaw z realizowaniem projektów z tutoriali, we wspomnianym już wcześniej artykule. Dzięki temu będziemy mieć pewność, że z jednej strony zadbamy o solidne, teoretyczne fundamenty, a z drugiej strony bardzo szybko będziemy widzieć fajne efekty motywujące nas do dalszej pracy.

Cześć!

Nazywam się Kamil Brzeziński. Z branżą IT jestem zawodowo związany od dziesięciu lat, a od ponad dwóch swoją wiedzą i doświadczeniem dzielę się na kanale Jak nauczyć się programowania.

Jeżeli:

✓ chcesz zostać programistą i wejść do branży IT

✓ jesteś początkującym programistą, ale brakuje Ci pomysłów na rozwój

✓ myślisz o zdobyciu pierwszej pracy jako programista

To jesteś we właściwym miejscu.

ROADMAPA PROGRAMISTY

Gdy zaczynamy przygodę z programowaniem problemem nie jest dostęp do wiedzy. Internet jest pełen kursów, poradników i tutoriali. Problemem jest to, że nie wiemy jak z tej wiedzy skorzystać. Jak z tej masy materiałów wybrać to, co faktycznie istotne? Skąd wiedzieć, czego się uczyć, kiedy i dlaczego? Jak się w tym wszystkim nie pogubić?

Odpowiedzią na ten powtarzający się wśród początkujących programistów problem jest Roadmapa programisty.

Zajrzyj do środka:

Fragment nr 1 (Git)

Fragment nr 2 (REST API)

Ostatnie artykuły

Czym jest programowanie i czym zajmuje się programista?

Czym jest programowanie i czym zajmuje się programista?

Linus Torvalds, twórca systemu Linux, powiedział kiedyś, że programowanie to mówienie komputerowi, co ma robić. Ta wyjątkowo prosta definicja jest zdecydowanie moją ulubioną, bo właśnie tym jest programowanie. Dajemy komputerowi jakieś instrukcje do wykonania, a komputer je wykonuje, dokładnie tak, jak je zapisaliśmy. Dzięki programowaniu możemy powiedzieć komputerowi, żeby coś wyświetlił, policzył, wydrukował czy wysłał. Na razie może brzmieć to jak czarna magia, ale pomyślmy przez chwilę o grach komputerowych.

czytaj dalej
Jaki powinien być dobry programista? 5 cech i umiejętności dobrego programisty

Jaki powinien być dobry programista? 5 cech i umiejętności dobrego programisty

To nieprawda, że każdy może zostać dobrym programistą, tak jak nie każdy może zostać dobrym lekarzem, grającym światowe trasy koncertowe muzykiem czy kierowcą zawodowym pokonującym miesiąc w miesiąc dziesiątki tysięcy kilometrów. Jak w każdej innej profesji, tak i w programowaniu sukces to wypadkowa ciężkiej pracy, talentu oraz pewnego zestawu cech i umiejętności. Czym one są i jaki powinien być kandydat na dobrego programistę?

czytaj dalej