Jak wybrać pierwszy język programowania?

Wiele ludzi uważa, że programowanie jest bardzo trudne i jest to rzecz, po którą może sięgnąć jedynie wąskie grono wybrańców. Dzieje się tak z wielu powodów. Jedni podjęli pewne próby, ale bardzo szybko się wycofali. Większość jednak powiela po prostu zasłyszane gdzieś mity. Nie oznacza to, że absolutnie wszyscy się do tego nadają, ale uważam, że spróbować swoich sił może każdy, kto w miarę radzi sobie z matematyką na poziomie szkoły średniej. Nie trzeba być wcale przy tym geniuszem królowej nauk. Ja postaram się wprowadzić tych niezdecydowanych do świata programowania tak, by bezboleśnie przejść przez pierwsze, najtrudniejsze etapy.

Czym jest język programowania?

Język programowania pozwala opisać w jednoznaczny sposób działania, jakie musi wykonać komputer, by wykonać sprecyzowane wcześniej zadania. Jakie to zadania? Mogą być one różne. W początkowym etapie rozwoju komputerów były to głównie skomplikowane obliczenia matematyczne, jednak szybko zauważono, że maszyny te mają znacznie większy potencjał. Dziś programować możemy gry, aplikacje, strony internetowe, a także wszelkie urządzenia, które nas otaczają takie jak lodówki, pralki, bramy garażowe i praktycznie wszystko. Tak naprawdę to tylko kwestia wyobraźni programistów. 

Ilość języków programowania może przytłoczyć

W jakim języku mogę napisać aplikację typu xyz?

W każdym, ale nie w każdym można zrobić to równie dobrze. Obecnie istnieje co najmniej kilkanaście nowoczesnych języków programowania. Różnię się one od siebie składnią, możliwościami, a także wydajnością. Kod napisany w niektórych z nich (skryptowych) można uruchomić natychmiast po zapisaniu pliku. W przypadku innych (kompilowanych) kod należy najpierw poddać procesowi kompilacji, który to wychwyci błędy oraz przetworzy kod w taki sposób, aby jego wykonanie było jak najbardziej wydajne.

Jaki język wybrać na początek?

To bardzo trudne pytanie, na które każdy programista może udzielić innej odpowiedzi. Przede wszystkim warto zrozumieć, że zasady obowiązujące w większości współczesnych języków programowania są bardzo podobne, szczególnie na początkowym etapie edukacji. Jeśli poznasz dobrze jeden język programowania, nauka kolejnego powinna pójść ci już dużo łatwiej. Moim zdaniem warto wybrać język, który jest obecnie popularny i nie wymaga przy tym zbyt dużej pracy przy konfiguracji, a także nie wymaga od nas umiejętności takich jak zarządzanie pamięcią komputera. Uważam, że lepiej jest się skupić na początku na logice kodu, niż zniechęcać się błędami związanymi z konfiguracją, zanim jeszcze zdążymy napisać cokolwiek. Fajnie by było, żeby wokół danego języka była zgromadzona społeczność, która pomoże uporać się z częstymi problemami.

Programista dobrze zarabia – Raport No Fluff Jobs za I półrocze 2019 roku mówi nam, ze mediana zarobków w IT w Polsce, niezależnie od formy zatrudnienia wynosi 12.000 zł. Wynagrodzenie Junior Developera bez doświadczenia wynosi średnio 5 500 zł brutto

Takim językiem jest na przykład Python. Nie dość, że spełnia on wszystkie powyższe kryteria, to jeszcze wymusza on poprawne formatowanie kodu. Innymi słowy uczy nas jak pisać kod w czytelny sposób tak, aby na pierwszy rzut oka widać było co jest częścią czego. Jest to niezwykle istotne, gdyż w źle sformatowanym kodzie może pogubić się nawet najbardziej doświadczony programista. Python jest przy tym w pełni obiektowy i pozwala zapoznać się ze wszystkimi podstawowymi strukturami danych. Możemy w nim stworzyć prostą aplikację konsolową, grę, czy zaprogramować backend dla aplikacji internetowej i wiele więcej. Obecnie jest najczęściej używanym językiem w obliczeniach wykorzystujących sztuczną inteligencję. Nie stworzymy w nim jednak interfejsu strony internetowej. Nie nadaje się też zbytnio do tworzenia bardziej rozbudowanych aplikacji, a jest tak właśnie przez jego prostotę. Nie musisz tego rozumieć teraz, jeśli zanurzysz się w świecie programowania zrozumiesz to już niedługo.

Zaraz, zaraz, a co to jest ten cały backend?

W inżynierii oprogramowania wyklarował się następujący podział, który warto zrozumieć:

  • frontend – programowanie wszystkiego tego, co widoczne od strony użytkownika (interfejs użytkownika)
  • backend – programowanie wszystkiego tego, czego nie widać, a co jest konieczne do działania aplikacji (logika systemu, baza danych)

No dobrze, zatem jaki język nadaje się do programowania frontendu?

Jeśli chodzi o tworzenie stron internetowych obecnie istnieje właściwie jeden – Javascript.

A gdzie HTML i CSS? 

Już wyjaśniam. HTML i CSS to właściwie nie są języki programowania. Służą one do opisu struktury (HTML) oraz wyglądu strony (CSS). Używając Javascriptu (JS) możemy manipulować tą strukturą i wyglądem w sposób dynamiczny, tzn. na przykład w reakcji na działania użytkownika.

Przykładowo gdy użytkownik kliknie w przycisk na stronie, zostanie wysunięte menu z niewidocznymi wcześniej elementami. Z pewnością podobny komponent widział każdy, kto choć przez chwilę przeglądał współczesne strony internetowe..

Co ciekawe Javascript można również wykorzystać do programowania aplikacji serwerowych z wykorzystaniem środowiska Node.js, ale to już temat na oddzielny wpis.

Warto zaznaczyć, że obecnie większość programistów w jakimś stopniu zna język Javascript, dlatego jeśli na poważnie myślisz o programowaniu, prawdopodobnie będziesz miał z nim styczność.

Oto lista 15 najpopularniejszych języków programowania według serwisu Stackoverflow w 2019 roku

Jest jeszcze jedna ważna rzecz. Niezwykle pomocna jest znajomość języka angielskiego przynajmniej w stopniu umożliwiającym czytanie dokumentacji technicznych. Jest tak dlatego, że technologia rozwija się bardzo szybko, większość dokumentacji jest tłumaczona na jezyk polski ze sporym opóźnieniem, a czasem wręcz nigdy. Ponadto około połowa internetu jest napisana w języku angielskim, zatem znajomość tego języka znacznie ułatwi i przyspieszy proces uczenia. Nie mówię, że niemożliwe jest zostanie programistą nie mówiąc wcale w języku Szekspira, ale będzie to znacznie trudniejsze. 

Jak i gdzie szukać materiału do nauki?

Istnieje sporo książek, także w języku polskim, które szczegółowo, krok po kroku poprowadzą was za rączkę do napisania pierwszej aplikacji. Znajduje się w nich sporo przykładów i wyjaśnień częstych problemów. Moim zdaniem jednak zanim zainwestujesz w pierwszą książkę o programowaniu, spróbuj poszukać przewodników na YouTube. Istnieje ich sporo, ważne by znaleźć coś dla początkujących, aby się nie zniechęcić. Warto także zwrócić uwagę na datę publikacji filmu. Może się bowiem okazać, że informacje na nim przedstawione nie są już aktualne.