Jeżeli kiedykolwiek byłeś na jakimś forum lub grupie na Facebooku powiązanej z szeroko pojętym programowaniem - zapewne natrafiłeś na to pytanie. Odpowiedź na nie jest zarazem bardzo prosta, jak i niezwykle skomplikowana. Jak ona brzmi?

Odpowiedź brzmi: To zależy.

Od czego? Od tego, co chcesz robić. O ile z zewnątrz tworzenie aplikacji webowych, pisanie na androida lub tworzenie aplikacji desktopowych wydaje się podobne, używa się do tego innych języków programowania 

Co prawda, niektóre języki czy technologie pozwalają pis​ać na wiele platform, ale o tym później.

Ale brzmi również: To bez znaczenia.

A to dlatego, że programowanie to sposób myślenia. Jeżeli staniemy się biegli w jednym języku - będziemy mogli w szybkim czasie przebranżowić się na inny. Oczywiście, języki między sobą się różnią, ale samego “myślenia jak programista” nikt nam nie odbierze tak jak umiejętności rozwiązywania problemów, tworzenia algorytmów.

To trochę tak jak z kierowaniem różnymi pojazdami. Mając prawo jazdy kat. B i chcąc przebranżowić się na ciężarówki, trzeba się nauczyć specyfiki prowadzenia większego i cięższego pojazdu, ale co do zasady myślenie kierowcy się nie zmienia.​

Zacznij od angielskiego

Język angielski jest językiem międzynarodowym, zwłaszcza w internecie, zwłaszcza w świecie IT. W tym języku pisane są dokumentacje, specyfikacje, pytania i odpowiedz na forach. Zapewne da się zostać programistą bez znajomości angielskiego, ale jest to zwyczajnie trudne i zamyka wiele dróg, którymi moglibyśmy podążyć.


Świetna infografika która pomaga wybrać język programowania (i w zabawny sposób porównuje je do postaci z Władcy Pierścieni :)) Źródło

Jaki język programowania wybrać do mojej dziedziny?

Kiedy masz już wybraną ścieżkę, od której chcesz zacząć swoją programistyczną przygodę, po prostu wybierz jeden z języków w niej stosowanych, a następnie porządnie go opanuj. Nie skacz z kwiatka na kwiatek, wyspecjalizuj się najpierw w jednej dziedzinie. I co najważniejsze, twórz realne projekty, nigdy nie ograniczaj się do samej teorii.

Poniżej znajduje się rozpiska najpopularniejszych języków programowania w każdej z dziedzin.

Tworzenie stron, aplikacje webowe

Jest to nasza prywatnie ulubiona dziedzina programowania. Podstawowe języki jakie na początku trzeba znać to: HTML, CSS oraz podstawy JavaScriptu. Jest to swego rodzaju ‘webdev starter pack’.

Tak, wiemy, że HTML i CSS mają się do języków programowania jak pies do jeża - nie stawiamy znaku równości między nimi a pełnoprawnym językiem programowania. 

Tworzenie stron się dzieli na backend oraz frontend. Niezależnie od wyboru drogi specjalizacji, warto tutaj poznać podstawy także tej “drugiej strony”. Łatwiej będzie nam się wtedy porozumieć z ‘tymi od drugiej strony’ oraz da nam ogólne rozeznanie w jaki sposób to wszystko działa.

Frontend - to część aplikacji, którą widzi i z którą wchodzi w interakcję użytkownik. Ma ona za zadanie m.in. pobierać od użytkownika dane i przekazywać je do backendu. 

Backend - to część serwerowa aplikacji, której zadaniem jest przetwarzanie otrzymanych danych, komunikacja z bazą danych, czy zewnętrznymi serwisami i zwracanie odpowiedzi użytkownikowi.



Źródło


Frontend

Tutaj królują wyżej już wspomniany HTML, CSS oraz JavaScript. Są przy tym praktycznie jedynymi używanymi obecnie technologiami. Do nich wielu programistów dorzuca takie biblioteki/frameworki jak: React, Angular czy Vue - ale na początek nie warto zaprzątać sobie tym głowy, warto nauczyć się porządnie tych trzech podstawowych języków.

Z racji tego, że JavaScript jest językiem, który dużo wybacza oraz jest relatywnie prosty do nauki - jest bardzo często wybierany na początek przez młodych i ambitnych.

Backend

Tutaj wybór jest znacznie szerszy. 

PHP

Zdecydowanie najpopularniejszym (a już na pewno w Polsce) językiem backendowym  jest PHP. Jest on też przez wielu uważany za jeden z najbardziej znienawidzonych języków programowania - programowanie w nim nie jest na pewno tak przyjemne jak w Javascripcie. 

Jednocześnie jednak jest prosty i dostarcza ogrom funkcjonalności. Po odpowiednim zapoznaniu się z PHP, warto zainteresować się zewnętrznymi bibliotekami oraz frameworkami i całym ekosystemem modułów (Composer). Pozwoli to na pisanie kodu lepszej jakości i zdecydowanie przyspieszy i ułatwi pracę. 

Javascript (Node.js)

Jest to osobiście nasza ulubiona technologia backendowa i zdobywa coraz większą popularność. Dzięki Node, możemy pisać w Javascripcie nie tylko po stronie klienta, ale także po stronie serwera. Daje nam to możliwość pisania całej aplikacji w jednym języku oraz przystępność JSa również po stronie serwera.

Oprócz tego, wraz z Node.js otrzymujemy NPM. NPM jest menedżerem zewnętrznych modułów, który w prosty i przyjemny sposób umożliwia dodawanie kolejnych bibliotek rozszerzających funkcjonalność aplikacji. A wybór mamy wręcz nieskończony, NPM jest przeogromną bazą gotowych modułów, dzięki którym naszą aplikację można budować ‘jak z klocków’. 

Więcej o Node można przeczytać na stronie projektu

Python (Django)

Sam Python nie jest technologią typowo webową. Django jest. Czym jest Django? 

Django jest frameworkiem,  który pozwala nam pisać backend za pomocą właśnie Pythona - dzięki czemu, możemy pisać tak samo przyjemnie jak pisze się w zwykłym Pythonie.

Więcej o Django można przeczytać na głównej stronie projektu

Ruby (Ruby on Rails)

Ruby on Rails jest dla języka Ruby tym samym, co dla Pythona jest Django. Jest to framework pozwalający używać Ruby jako języka backendowego.

Więcej o Ruby on Rails można przeczytać na głównej stronie projektu

Ponadto, możemy także wybrać ASP.NET w języku C#, czy też pisanie w Javie.

Źródło

Aplikacje Mobilne

Możemy skupić się tu głównie na Androidzie oraz IOS, ponieważ Windows Phone ( czy też Windows 10 Mobile) jest zdecydowanie pomijalny i niewart uwagi.

Android

Od zamierzchłych czasów na Androidzie królowała Java i dalej ma ona OGROMNE udziały w tym rynku. Jednakże, od 2017 pojawił się drugi “oficjalny” język Androida - Kotlin i jest to zdecydowanie język warty zainteresowania.

IOS

Na urządzenia firmy z jabłkiem pisze się głównie w dwóch językach, Objective-C oraz Swift. Ten drugi jest młodszym zastępcą Objective-C, stał się on oficjalnym językiem programowania na IOS.

Co ważne, żeby tworzyć aplikację na IOS w tych językach, będziemy potrzebowali komputera z systemem OSX.

Aplikacje natywne

Chciałbym jeszcze słowem opowiedzieć o aplikacjach natywnych. Jest to aplikacja napisana za pomocą technologii webowych takich jak HTML, CSS, JavaScript ale na telefon. Jest to możliwe dzięki technologiom takim jak: Apache Cordova, Phone Gap, Ionic, React Native.

Aplikacje Desktopowe

Czyli “zwykłe” aplikacje. Mimo, że coraz częściej przebywamy w internecie a zdarza się, że jedynym programem jaki odpalimy, jest przeglądarka, aplikacje desktopowe są ogromną częścią rynku programistycznego i jeszcze bardzo długo pozostaną (prawdopodobnie na zawsze, ale nigdy nic nie wiadomo, równie dobrze miesiąc po publikacji tego wpisu internet może przestać istnieć). 

Języków używanych do tworzenia jest ogromna ilość, więc opiszę tylko kilka z nich, a resztę niech rozwieje ten film

Python

Bardzo, bardzo często polecany początkującym. Dlaczego? Python został zaprojektowany tak, żeby jego kod był bardzo łatwy do zrozumienia oraz czytelny. Jest on do tego językiem wysokiego poziomu i martwi się za wiele rzeczy za nas. Jest on pod tym względem często porównywany z JavaScriptem - oba te języki są proste dla początkujących i dużo wybaczają.

C, C++

Potężne języki programowania, które pomimo swojego wieku (C pojawił się w 1972 roku!) nadal są wysoko cenione. Programowanie w nich nie jest tak proste jak w Javascript, ale są to zdecydowanie ważni gracze na rynku.

C#

Młodszy kuzyn wyżej wspomnianych, rozwijany przez Microsoft. Bardzo popularny w tworzeniu zwłaszcza na platformy Microsoft, ale możemy w nim tworzyć także aplikacje mobilne czy strony internetowe za pomocą ASP.NET 

Java

Tak jak na Androida, tak i na komputery (a nawet o czym wcześniej napisałem - web) Java dalej jest bardzo ważnym graczem. Jest to zdecydowanie często wybierany język - często możemy usłyszeć dylemat początkujących: Java czy C++?


Źródło

​Tworzenie Gier

Tworzenie gier to specyficzna dziedzina programowania. Możemy tak naprawdę stworzyć grę w dowolnej wymienionej wcześniej technologii (za pomocą specjalnych bibliotek) lub wykorzystać któryś z silników i “jego” języków. Najpopularniejsze silniki, to Unity - który wykorzystuje język C# (Co prawda, jest jeszcze możliwość pisania w UnityScripts lub Boo, ale raczej nie są to popularne rozwiązania) oraz Unreal Engine, w którym będziemy mogli pisać w C++ lub za pomocą tak zwanego systemu Blueprints. Więcej o tym, który z nich będzie dla was lepszy zobaczycie np tutaj 


Suma summarum

Języków programowania jest dużo więcej, chcieliśmy w tym wpisie przybliżyć Ci, czym możesz się zainteresować i jakie pytanie powinieneś zadać sobie jako pierwsze - co chcę robić?

Nie opisywaliśmy poszczególnych języków - chcieliśmy tylko wskazać Ci, czego szukać gdy już wybierzesz swoją drogę :)

Jeżeli miałbyś jakieś wątpliwości lub pytania to jak zawsze - pytaj bez obaw.