Czytałeś artykuły, przeszukałeś internet i zebrałeś wszystkie informacje na temat programowania. Czas podjąć tę ważną decyzję: “który język programowania wybrać?”

Świetne pytanie. Na szczęście, mamy dla ciebie prosty poradnik, który krok po kroku pomoże ci określić, czego będziesz najbardziej potrzebować w nauce programowania i jakiego języka powinieneś się uczyć.

Nawet jeśli jesteś jeszcze na etapie zbierania informacji, ten poradnik powinien rozjaśnić kwestię najlepszych zastosowań najpopularniejszych języków programowania.

Wyróżniliśmy również cztery sposoby kategoryzowania języków programowania: ze względu na popularność, prostotę, potencjał zarobkowy i wielość zastosowań.

Sprostowanie: W tym artykule grupujemy języki znacznikowe, takie jak HTML i CSS, i języki skryptowe, takie jak Bash/Shell i SQL, do wspólnej kategorii języków programowania.

Zacznijmy od listy dziesięciu najpopularniejszych języków programowania według StackOverflow:

  1. JavaScript
  2. HTML
  3. CSS
  4. SQL
  5. Java
  6. Bash/Shell
  7. Python
  8. C#
  9. PHP
  10. C++

Źródło: StackOverflow

HTML, JavaScript i CSS zajmują trzy pierwsze miejsca na powyższej liście. Są one podstawą programowania front-end i są świetne dla początkujących. SQL jest używany zarządzania bazami danych, a reszta, czyli Java, Python, C#, PHP i C++, są językami o wielu ogólnych zastosowaniach. Z drugiej strony, Bash/Shell jest językiem służącym do obsługi systemów operacyjnych opartych na Unix, takich jak Linux i MacOS.

A jakie są najprostsze języki do opanowania?

  1. HTML
  2. Python
  3. JavaScript
  4. PHP
  5. Java
  6. R
  7. Shell
  8. Ruby
  9. Erlang
  10. Go

Źródło: WP Engine

Na szczęście, wiele z najbardziej popularnych języków programowania należy również do najprostszych w nauce. Ale mniej znane języki, takie jak R i Erlang też się pojawiły. R jest językiem programowania zaprojektowanym do wykonywania obliczeń statystycznych i działań matematycznych – to świetne narzędzie do analizy danych (omówimy ten temat w dalszej części). Erlang jest używany do komunikacji i jest obecny w wielu komunikatorach, takich jak WhatsApp.

…a potencjał zarobkowy?

  1. F#
  2. Ocaml
  3. Clojure
  4. Groovy
  5. Perl
  6. Rust
  7. Erlang
  8. Scala
  9. Go
  10. Ruby

Źródło: StackOverflow

Jeżeli jesteś początkującym programistą, pewnie nie rozpoznałeś wielu języków z tej listy. Informatyka jest szybko rozwijającą się dziedziną, tak więc najbardziej ceniona jest znajomość najnowszych i najnowocześniejszych technologii. Pomimo tego, znajomość HTML, CSS i JavaScript jest całkowicie wystarczająca, żeby zacząć karierę – inne języki mogą zaczekać.

Przegląd

Oprócz wybranych przez nas kryteriów oceniania, z pewnością masz swoje własne powody, dla których potrzebujesz konkretnego języka programowania. W dalszej części skupimy się na opisaniu najważniejszych cech charakterystycznych i zastosowań różnych języków i pomożemy ci wybrać odpowiedni.

Wybór języka ze względu na jego użyteczność

Tutaj wszystko się trochę komplikuje. To, czy język jest użyteczny, zależy od tego, co chcesz za jego pomocą osiągnąć. Na przykład, HTML i CSS mogą być bardzo przydatne dla programisty front-end, a Swift i Java będą lepsze dla programisty programów mobilnych. Niektóre języki, takie jak Python mają wiele ogólnych zastosowań, a inne są specjalistycznymi narzędziami do konkretnych zadań.

Najpierw skupmy się na ustaleniu, co chcesz programować i w jakim obszarze chciałbyś się specjalizować. Na tej podstawie dobierzemy odpowiedni język:

Chcę być profesjonalnym programistą

Programista gier

Jeżeli interesuje Cię programowanie gier, będziesz musiał opanować C++ i C#.

Jeżeli interesują się proste, dwuwymiarowe gry mobilne oparte na funkcjach społecznościowych i online, oczywistym wyborem jest C#. C# jest prostszy niż C++ i jest głównym językiem używanym w pisaniu gier indie i gier mobilnych.

Z drugiej strony, C++ ma więcej zastosowań i może być używany przy tworzeniu gier 3D i tytułów klasy AAA na PC i konsole. Jeżeli chcesz tworzyć najpiękniejsze i najlepiej zoptymalizowane gry, C++ jest najlepszym wyborem.

Web Developer

W naszym artykule “Krótkie wprowadzenie do programowania”, mówiliśmy wiele o trzech najważniejszych językach programowania w tym obszarze: HTML, CSS i JavaScript. HTML odpowiada za formatowanie, CSS za wygląd, a JavaScript za funkcjonalność.

Programiści, którzy pracują głównie nad UX (user experience), najczęściej używają HTML i JavaScript. Jednak Web Developerzy, którzy skupiają się na sprzedaży internetowej często wolą bardziej zaawansowane języki, takie jak Java, Ruby, Python, PHP i C#.

Programiści pracujący dla małych przedsiębiorstw najczęściej używają PHP, a w najnowszych startupach często używa się języków Java, Ruby i JavaScript. Programiści pracujący dla korporacji z reguły skupiają się na C++ i Java, których używają do pisania większych aplikacji, opartych na Windows.

Programista aplikacji mobilnych

Pisanie aplikacji mobilnych jest trochę prostsze i wymaga znajomości jednego języka programowania dla każdego mobilnego systemu operacyjnego.

Jeśli chcesz tworzyć aplikacje mobilne na iPhone’a lub iPad’a, jedyny język, który musisz poznać to Swift – język stworzony przez Apple dla IOS. Udostępniony w 2014, Swift jest bardzo potężnym językiem, który pozwala programować dla prawie wszystkich urządzeń Apple. Znając Swift, możesz też programować aplikacje dla Mac, Apple Watch i Apple TV!

Rozwijanie aplikacji dla Androida stało się w ostatnim czasie popularniejsze niż dla IOS. Android bazuje na Javie, dzięki czemu zaczęcie programowania jest bardzo łatwe, jeśli masz już doświadczenie z tym językiem. Mając doświadczenie pisania aplikacji w Javie, możesz później przejść do programowania innych rzeczy w tym języku.

Na koniec mamy też Windows Phone. Mobilny system Windows, który bazuje na C# – jednym z języków Microsoftu. Programowanie w C# jest bardzo wartościową umiejętnością, która jest niezbędna do bycia deweloperem na Windows.

W dzisiejszych czasach granica między programowaniem na urządzenia mobilne i komputery powoli się rozmywa. Języki nie dzielą się na mobilne i stacjonarne, lecz na ekosystemy (Microsoft, Google i Apple). Google stworzyło nawet własny język “Go”, który w przyszłości może zastąpić Javę na Androidzie.

Oprogramowanie Stacjonarne

Jak już wcześniej wspominaliśmy, te same języki mogą być użyte do programowania aplikacji mobilnych i “stacjonarnych”. Jeśli interesuje cię rozwijanie oprogramowania dla Windows, powinieneś skupić się na C#. By pisać programy działające na różnych platformach, powinieneś nauczyć się Javy, a jeśli interesuje cię Mac, pomyśl o Swift.

Jest też kilka poważnych rozwiązań sieciowych do tworzenia wieloplatformowych programów za pomocą tylko HTML, CSS i JavaScript, takich jak na przykład Electron.

Analiza Danych

W świecie nauki Python i R są najbardziej przydatnymi językami, które możesz poznać. Python jest jak wielofunkcyjny scyzoryk języków programowania, który został stworzony do ogólnego użytku. Jednakże siła Pythona to wiele darmowych bibliotek skupiających się na analizie danych. Jedna z nich, Pandas, ułatwia importowanie informacji z arkuszy lub analizowanie zbiorów danych posortowanych według czasu.

R jest innym językiem programowania stworzonym do analizy statystycznej i tworzenia grafów. Za pomocą R możesz modelować zarówno liniowo, jak i nieliniowo, robić klasyczne testy statystyczne, analizy szeregów czasowych, klasyfikacje, klastrowanie i wiele więcej.

Chcę założyć startup

Sieć

Internetowy startup może wybrać z wielu języków programowania.

Jeśli myślisz o sprzedaży internetowej, PHP jest dobrym językiem na początek. WordPress bazuje na PHP i jest dobrą platformą dla e-commerce.

Jeśli chcesz zacząć jako SaaS (Software as a Service, z ang. oprogramowanie jako usługa), Java będzie niezbędnym językiem. Za pomocą Javy będziesz w stanie pisać programy na wiele różnych platform, między innymi na Androida i Windows.

Ruby to potężny, łatwy w użyciu język, w którym prototypowanie jest przyjemnością. Jako że jest to wyższy język programowania, możesz szybko tworzyć prototypy i błyskawicznie wcielać twoje projekty w życie bez dużego wysiłku.

Jako ostatni zostanie JavaScript, który bezpośrednio wpływa na działanie twojej strony. Jako że twój startup jest w internecie, wydajność i doświadczenie użytkownika są priorytetem. W dzisiejszych czasach wyszukiwarki takie jak Google pokażą twoją stronę niżej w wynikach wyszukiwania, jeśli twoja strona wolno się ładuje i się zacina. To może bardzo wpłynąć na ilość wizyt na twojej stronie.

Chcę założyć startup (Wersja 2.0)

Sieć

Jako front twojego sklepu internetowego służą HTML, CSS i JavaScript. Te języki będą niezbędne do zrobienia front-endu. Jednakże masz kilka opcji na back-end, który dba o to, co się dzieje za kulisami twojej strony.

Do obsługi backendu najprawdopodobniej będziesz używał Node.js (JavaScript), Ruby, lub PHP. Z tej trójki Node.js jest najpopularniejszy i najbardziej rozpowszechniony, zarówno dzięki jego szybkości, jak również dlatego, że bazuje na JavaScript.

Jako że twój startup znajduje się w internecie, wydajność i doświadczenie użytkownika są priorytetem. W dzisiejszych czasach wyszukiwarki takie jak Google pokażą twoją stronę niżej w wynikach wyszukiwania, jeśli twoja strona wolno się ładuje i się zacina. To może bardzo wpłynąć na ilość wizyt na twojej stronie. Dlatego polecamy najszybszą opcję, czyli Node.js.

W ekstremalnych sytuacjach możesz użyć też Pythona lub R jako backend twojej strony, ale tylko, jeśli musisz radzić sobie z bardzo dużą ilością klientów lub informacji.

Jeśli potrzebujesz łatwiejszego rozwiązania, które jest od razu gotowe do użycia, spróbuj stworzyć swój sklep internetowy w WordPress, rozwiązaniu bazującym na PHP. Za pomocą WordPress możesz używać interfejsu upuszczania (drag-and-drop) do stworzenia wyglądu twojej strony, podczas gdy WordPress zajmie się “pisaniem kodu” za ciebie.

Mimo że WordPress jest względnie łatwy w użytku, wciąż powinieneś nauczyć się języka programowania lub zatrudnić developera PHP, który doda funkcjonalność, której potrzebujesz i rozwiąże problemy, które pojawią się po drodze.

Mobilny

Startupy bazujące na aplikacjach mobilnych, takie jak Uber, są obecnie całkiem popularne. By zacząć startup w przestrzeni mobilnej ważne jest, żeby tworzyć aplikacje dostępne zarówno na IOS, jak i Android. Możliwe jest pisać aplikacje na wiele platform za pomocą Javy, React native, Ionic, PhoneGap lub Cordova. Ale zalecane jest poznanie języków przeznaczonych dla każdej z tych platform, by uzyskać lepszą wydajność.

Jeśli sam nie jesteś w stanie napisać swojej aplikacji, zatrudnienie dewelopera, który specjalizuje się w konkretnym systemie, może być bardzo pomocne. Dla Androida będziesz potrzebował dewelopera Javy, a dewelopera Swift dla IOS. Ale może trafisz na rzadki talent, który zna się na obu.

Gry

Jako startup zapewne nie będziesz miał ani pieniędzy, ani zasobów, by tworzyć gry ‘AAA’ tak jak duże studia. Zamiast tego niezależni twórcy gier skupiają się na historii i są kreatywni podczas tworzenia. C++ jest skomplikowany i potrzeba dużo czasu, by go dobrze poznać, co oznacza, że nie jest to najlepszy wybór dla startupu. C# jest dużo łatwiejszy i pozwoli ci dużo szybciej wypuścić twoją grę.

Gry sieciowe są innym dobrym pomysłem dla młodych deweloperów. Za pomocą HTML i JavaScript możesz tworzyć wspaniałe gry. By zobaczyć przykłady takich gier, spójrz na ten artykuł: https://tutorialzine.com/2015/02/30-amazing-games-made-only-with-html5

Jednakże jeśli masz cierpliwość, umiejętności i motywację, by stworzyć wspaniałą grę w 3D powinieneś nauczyć się C++. Jest to potężny język programowania od Microsoftu, który jest wszystkim, co potrzebujesz do tworzenia wspaniałych gier na konsole i PC.

Chcę stworzyć coś fajnego

Najlepszą stroną programowania jest to, że oprócz tego, że jest przydatne i świetne zarobkowo, to może też być dobrą zabawą. Jeżeli chcesz stworzyć coś fajnego przy pomocy programowania, musisz najpierw wybrać, co Cię interesuje. Chciałbyś stworzyć grę mobilną, grę sieciową, albo nawet własne AI? A może chciałbyś zautomatyzować codzienne obowiązki lub stworzyć coś dla Google Apps (G-Suite)? Jeżeli dobrze opanujesz następujące języki, twoja wyobraźnia pozostanie jedynym ograniczeniem.

Małe gry

Nie myśl, że musisz być profesjonalnym programistą, żeby podążać za marzeniem o programowaniu gier; musisz znać HTML5, JavaScript i trochę WebGL. Zarówno Doodle Jump, jak i niesamowicie sławna (lub zniesławiona) gra mobilna, Flappy Bird, są oparte na HTML5 i JavaScript. Pewnie, nie będziesz samodzielnie tworzył gier AAA na konsole, ale zobaczysz, jak wiele możesz stworzyć z ograniczoną wiedzą programistyczną. Do bardziej skomplikowanych gier na PC-ty przydałyby Ci się tak języki, jak C# i Python.

Google Apps (G-Suite)

JavaScript jest podstawowym narzędziem do tworzenia aplikacji wewnątrz środowiska Google lub G-Suite, jak często jest nazywany. Google twierdzi, że każdą aplikację wewnątrz G-Suite można by wykonać jedynie za pomocą JavaScript. To trochę dziwne, mając na uwadze, że Gmail został napisany w Java, a nie JavaScript.

Tak czy inaczej, nie musisz już tak naprawdę znać JavaScript, żeby programować w G-Suite. Zamiast tego, nowy kreator Google App Maker pozwala tworzyć aplikacje za pomocą prostego interfejsu i daje dostęp do wszystkich API aplikacji Google, takich jak Google Maps i Google Translate. API, czyli Application Program Interface (z ang. Interfejs programistyczny aplikacji), jest kluczem do połączenia funkcji twojej aplikacji i aplikacji Google.

Automatyzacja zadań

Spędziłeś kiedyś długie godziny wypełniając tabelę, zmieniając nazwy plików, lub porządkując pliki za pomocą myszki i klawiatury? Podczas tych monotonnych zadań, czy kiedykolwiek zastanawiałeś się, czy nie ma lepszej metody? Automatyzacja zadań jest całą dziedziną programowania poświęconą upraszczaniu wykonywania żmudnych czynności, których człowiek wolałby nie wykonywać własnoręcznie.

Używając języków ogólnego zastosowania takich jak Python i Ruby, możesz polecić swojemu komputerowi wykonanie prostych i powtarzalnych zadań. Możesz oszczędzić czas, oszczędzić sobie stresu, a przy tym uczynić swoją pracę dokładniejszą – człowiek może popełniać błędy razem pod wpływem zmęczenia i rozproszenia. Komputery nie podlegają tym ograniczeniom.

Proste AI (od Artificial Intelligence; z ang. sztuczna inteligencja)

W ostatnich latach Python staje się coraz popularniejszym narzędziem w obszarze tworzenia sztucznej inteligencji. Jednym z największych problemów dla programistów AI jest zagadnienie “deep learningu”, czyli sprawienie, by komputer uczył się tak jak człowiek. “Mapowanie neuralne” jest często używaną współcześnie techniką, która pozwala tworzyć duże gałęzie podejmujące decyzje. Naukowcy mają nadzieję stworzyć replikę ludzkiego umysłu przy pomocy tej techniki – taką, która byłaby w stanie myśleć racjonalnie i kreatywnie tak jak człowiek.

TensorFlow jest dobrym źródłem bibliotek do Pythona i innych języków programowania. Istnieje również TensorFlow.js przewidziany do używania z JavaScript i stworzony z myślą o systemach uczących się używanych w sieci. Innymi słowy, z dzięki TensorFlow.js możesz nawet eksperymentować z AI za pomocą JavaScript.

Podsumowanie

Mamy nadzieję, że podobał ci się nasz artykuł i że teraz będzie ci łatwiej zdecydować się na odpowiedni dla siebie język programowania. HTML, CSS i JavaScript są najlepszymi językami na start, ale z pewnością nie będzie dla ciebie niczym złym nauczenie wielozadaniowych języków takich jak Python i C#.

Daj nam znać w komentarzu, jakich języków aktualnie się uczysz i dlaczego. Do zobaczenia w następnym artykule!