4 języki programowania na początek
Planujesz rozpocząć karierę programisty. Jednak wiąże się to z trudnym wyborem – jakiego języka programowania zacząć się uczyć? Jest ich tyle dostępnych, że wybór nie jest prosty. A co jeśli wybiorę źle? Co jeśli okaże się, że język nie daje żadnej perspektywy pracy?
W tym wpisie przedstawię Ci 4 języki programowania, które pozwolą Ci szybko znaleźć pracę. Są to pozycje najczęściej pojawiające się w ogłoszeniach i oferujące pozycje dla każdego – od stażysty do seniora. Wszystkie związane są również z aplikacjami webowymi. Zaufaj mi, nieprzypadkowo. Chociaż oczywiście nie ograniczają się one jedynie do aplikacji webowych. JavaScript, Java i C# pozwalają również budować aplikacje mobilne i desktopowe, a C# jest dodatkowo powszechnie używany do programowania gier w środowisku Unity.
Wszystkie wymienione języki znajdują się w top10 na liście popularności przygotowanej przez TIOBE:
Języki godne uwagi
1. JavaScript
Na pierwszy ogień idzie język, który jeszcze do niedawna był raczej używany z przymusu, a nie z wyboru. Przez osoby pobieżnie zaznajomione z komputerami kojarzony jedynie ze skryptami na stronach www. Jednak JavaScript od czasu pojawienia się frameworka Angular, a potem React stał się pełnoprawnym graczem na rynku programowania. Nadal w dużej części związany jest z frontendem jednak dzięki środowisku NodeJS wkracza też w świat komercyjnego backendu.
Framework jest biblioteką lub fragmentem kodu, który jest swojego rodzaju szkieletem aplikacji i często definiuje jej ogólne zachowania.
Frontend to w kontekście aplikacji webowych warstwa wizualna aplikacji i elementy działające po stronie klienta.
Backend w aplikacji webowej to część aplikacji działająca na serwerze.
Zaletami JavaScriptu jest niski próg wejścia oraz łatwość pisania i uruchamiania aplikacji. Również społeczność zgromadzona wokół tego języka jest coraz silniejsza i nietrudno znaleźć pomocne materiały.
Przez niski próg wejścia rozumiem niewielką ilość wiedzy wymaganą do zrozumienia podstaw pozwalających tworzyć pierwsze programy. Osoba szybko łapiąca wiedzę będzie w stanie pisać proste skrypty w JavaScripcie już pierwszego lub drugiego dnia.
Jest to też język niewymagający rozbudowanych IDE, ani instalowania różnorakich kompilatorów. Pierwsze skrypty mogą być z powodzeniem uruchamiane nawet z poziomu przeglądarki, a skonfigurowanie NodeJS do uruchamiania kodu z poziomu linii poleceń to jedynie kilka kroków dobrze opisanych w internecie.
Jednak JavaScript posiada też wady. Tak jak powiedziałem łatwo jest poznać podstawy. Jednak jest to język typu „easy to learn, hard to master” więc po szybkim poznaniu podstaw przejście do kolejnych poziomów wiedzy nie jest już takie proste. JavaScript posiada wiele struktur i mechanizmów, które nie są oczywiste i trudno je znaleźć w innych językach programowania.
Jest to język pozwalający pisać obiektowo, strukturalnie albo funkcyjnie. Jest to jednocześnie wada i zaleta. Zaletą jest to, że nie jesteś ograniczany do jednego podejścia. Wadą zaś to, że twoi współpracownicy również nie są ograniczani do jednego podejścia i może się okazać, że w obiektowym kodzie ktoś postanowił napisać funkcyjny fragment bo tak mu było wygodnie.
Oprócz tego warto wspomnieć, że JavaScript jest językiem dynamicznie typowanym. Oznacza to, że nie podaje się typów zmiennych, te są dobierane na podstawie danych, które wykorzystujemy.
W tym momencie JavaScript w bardziej rozbudowanej formie króluje wśród startupów i mniejszych firm. Ale powoli się to zmienia i także większe korporacje zaczynają doceniać szybkość tworzenia w nim.
Java
Był JavaScript to czas na Javę ;) Niepodważalny korporacyjny król. Aplikacje pisane w Javie coraz częściej osiągają już pełnoletniość, albo są nawet po 20. Nie oznacza to jednak, że kod w tym języku to same starocie. Nowe projekty cały czas powstają i powstawać będą. Java na dobre zagrzała miejsce w poważnych projektach, chociażby bankowych. Często pojawia się jako przedmiot na studiach. Z powodu dużego zamiłowania korporacji do Javy dosyć łatwo dostać w niej ofertę stażu czy pracy juniora.
Zaletami na pewno jest ilość ofert pracy i zarobki z tym związane ale też silne typowanie i kompilowanie kodu, które utrudnia zrobienie błędu w końcowym kodzie.
Ilość ofert związana jest z tym co powiedziałem wcześniej, a więc dużą ilością istniejących i nowych projektów w dużych firmach.
Jeśli zaś chodzi o silne typowanie to powoduje ono, że to kompilator kontroluje czy nie próbujesz zamiast liczby przypisać tekstu do zmiennej. W JavaScripcie o dużej ilości błędów dowiesz się dopiero podczas uruchamiania, w Javie zazwyczaj powie Ci o tym kompilator, czy to o brakujących elementach czy o błędnych typach.
Również szybkość działa po „rozgrzaniu się” maszyny wirtualnej jest bardzo dobra i nie trzeba się nią przejmować w większości aplikacji.
Maszyna wirtualna to środowisko instalowane na komputerze, w obrębie którego uruchamiany jest kod aplikacji. Odseparowuje ona aplikację od systemu operacyjnego przejmując na siebie część obowiązków i ograniczając możliwość wyrządzenia szkód w pamięci systemu.
Pod pojęciem rozgrzewania się maszyny wirtualnej kryje się początkowa faza działania aplikacji. Wtedy maszyna wirtualna porządkuje swoją pamięć i np. wybiera wartości, które są najczęściej używane. Jest to etap optymalizacji działania pod konkretny program.
Jednak ten język, tak jak wszystkie inne, ma swoje wady. Na pewno do wad można zaliczyć konieczność korzystania z IDE, które zazwyczaj nie są lekkie. Co prawda teoretycznie można pisać kod javowy nawet w notatniku i kompilować z poziomu linii poleceń jednak takie podejście jest bardzo mocno ograniczające i utrudniające pracę. Korzystanie z IDE z kolei wiąże się z koniecznością posiadania w miarę dobrego komputera, Java lubi dużo pamięci RAM i, w mniejszym stopniu, przyzwoity procesor. Jednak nie ma co panikować, większość współczesnych laptopów pozwoli na w miarę komfortowe początki z tym językiem.
Kolejną wadą Javy jest na pewno bardziej skomplikowana składnia w porównaniu do JavaScriptu. Powoduje to, że próg wejścia jest wyższy i wiele osób potrzebuje dłużej posiedzieć nad zadaniami, żeby zrozumieć konstrukcje tego języka. Dodatkowo twórcy Javy zakładają wsteczną kompatybilność, a więc nie usuwają starych konstrukcji, dodają jedynie nowe co też nie ułatwia nauki.
Programy pisane w Javie działają na wszystkich popularnych systemach operacyjnych jednak wymagają instalacji maszyny wirtualnej. Cały proces programowania i uruchamiania aplikacji javowych wymaga zatem wcześniejszego przygotowania środowiska.
Java jest językiem typowo obiektowym. Przez to wymaga trzymania się konkretnych zasad, ale też wymusza lepszą strukturę kodu. Oczywiście nadal jest możliwe pisanie spaghetti kodu, ale jest to trudniejsze niż w JavaScripcie.
Spaghetti kod to kod, który jest napisany w bardzo nieczytelny sposób. Zazwyczaj w takim kodzie wiele fragmentów korzysta z siebie nawzajem i miesza się pomiędzy warstwami. Ogólnie kod niskiej jakości i o dużej zawiłości.
C#
Język podobny do Javy bo i po części z Javy się wywodzący. C# jest częścią platformy .NET i związany jest z firmą Microsoft. Posiada kilka usprawnień javowych mechanizmów i wprowadza sporo „lukru składniowego” upraszczającego pewne konstrukcje. Tak samo jak Java jest językiem związanym głównie z korporacjami, jednak powoli się to zmienia. Z powodu bycia młodszym od konkurenta nie jest aż tak powszechnie używany jak Java, ale też dzięki temu trudniej trafić na bardzo stary kod w nim pisany.
Większość specyfiki pracy, wad i zalet jest taka sama jak w Javie opisanej powyżej. Warto jednak dodać, że ponieważ C# powstał później to usunął albo zmodyfikował niewygodne konstrukcje obecne w Javie. Jest również dużo dynamiczniej rozwijany, a nowe wersje pojawiają się co ok. 2 lata. Dzięki temu C# posiada sporo przydatnych i nowoczesnych mechanizmów przyśpieszających pracę.
Jednak takie tempo rozwoju powoduje, że wiedza się szybciej dezaktualizuje i chcąc być na bieżąco trzeba częściej sięgać do nowych materiałów. Dynamiczny rozwój wiąże się też z szybszym przyrastaniem nowych elementów, które warto znać, a to jest dobrym powodem, aby nie nadążać za zmianami.
Dodatkowo dla części osób dużą wadą jest przywiązanie do platformy Microsoftu – systemu Windows. IDE Visual Studio i sam .NET w standardowej wersji działają tylko na tym systemie. Jednak od niedawna Microsoft działa również prężnie w kierunku wieloplatformowości. .NET Core, jako projekt open-source, działa już teraz na Linuxie i MacOS, a okrojona wersja Visual Studio także jest obecna na tych systemach.
PHP
Pozycja może wydawać się kontrowersyjna ale fakty są takie, że w PHP jest dużo pracy. Język równie, a może i bardziej nielubiany jak JavaScript. Programiści PHP średnio nie zarabiają tak dobrze jak programiści języków wymienionych wyżej (chociaż i tutaj są wyjątki), ale też bardzo łatwo im znaleźć pracę co na początku jest na pewno zaletą. Wykorzystywany np. przez agencje interaktywne do tworzenia swoich systemów CMS lub rozwijania istniejących.
Język wykorzystywany do aplikacji webowych. Przez lata okryty złą sławą z powodu ogromnej ilości słabego kodu, który w nim powstawał. Z powodu dużej ilości słabych materiałów do nauki i stosunkowo niskiego progu wejścia PHP z jednej strony zadomowił się w internecie, ale też stał się obiektem drwin. Do tej pory można spotkać szydercze komentarze w kierunku programistów PHP.
Obecnie jednak, dzięki dostępności dużo lepszych materiałów, wprowadzeniu kilku usprawnień w samym języku i powstaniu dobrej jakości, dobrze udokumentowanych frameworków można z powodzeniem pisać w PHP kod wysokiej jakości. Głównie obiektowy mimo, że sam język pozwala również pisać całkowicie strukturalnie.
Tak samo jak JavaScript PHP jest językiem dynamicznie typowanym. I tak samo jak JavaScript nie jest kompilowany. Powoduje to, że tak samo jak w JavaScrpicie o wielu błędach dowiemy się dopiero po uruchomieniu aplikacji.
W PHP można na początku w miarę sprawnie pisać nawet w prostym edytorze typu Notepad++ jednak zdecydowanie wygodniejsze będzie skorzystanie z IDE. Dodatkowo aby uruchomić kod PHP wymagane jest posiadanie serwera zainstalowanego lokalnie albo dostęp do hostingu w internecie. Lokalny serwer dostępny jest na wszystkie popularne systemy operacyjne, podobnie sprawa ma się z IDE.
PHP jest dobrym wyborem jeśli chce się szybko zacząć pracę, ale nie widzi się problemu z dosyć szybką przesiadką na inny język. Jest tak ponieważ dużych projektów nastawionych na wieloletni rozwój jest niewiele, a i samo środowisko pracy na pewno jest mniej komfortowe (często praca nastawiona na szybkie wypuszczenie produktu i zabranie się za następny).
Nie przywiązuj się
Opisałem Ci tutaj 4 języki, od których warto zacząć, ale w żadnym wypadku nie namawiam do wiązania się z którymkolwiek na zawsze. Język programowania to tylko narzędzie i w przyszłości będziesz dobierał narzędzia do problemu, nie odwrotnie. Jednak rozpoczęcie kariery z którymś z wymienionych na pewno będzie stosunkowo łatwe i zależne jedynie od poświęconego czasu i energii, a nie od braku lub obecności ofert pracy.
Powodzenia!
Leave a Comment