Whitespace, a może Brainfuck? Lista dziwnych, ezoterycznych języków programowania jest długa. Dzisiaj zajmiemy się jednak popularnymi językami programowanie i podzielimy je względem trudności, także z perspektywy nauki.
Z góry uprzedzam – to nie jest ranking, a subiektywne odczucie z mojej strony. Patrzę na trudność języka z perspektywy kogoś, kto ma doświadczenie w programowanie C++ i Pythonie.
Dla początkującej osoby hasła takie jak (eghm…) Java czy C++ brzmią jak jedno i to samo, jednak nic bardziej mylnego. Języki programowania można podzielić na łatwe i trudne w kilku aspektach. Pod względem trudności nauczenia, ilości materiałów do przyswojenia, składni i zastosowania.
Łatwe języki programowania
Pierwszym z języków stosunkowo łatwych jest Python, utworzony przez holenderskiego programistę van Rossuma. To dobra opcja na start, gdyż cechuje się on z góry narzuconą, łatwą i zwięzłą składnią. Pythona polecam jako język na pierwszy raz. Można do niego podejść nawet osoba z zerowym doświadczeniem. Dodatkowo Python wymusza formatowanie, nie ma nawiasów, nie ma średników, nie da się napisać “brzydkiego” kodu.
Również Java nie należy do trudnych. Już na samym początku jest mniej rzeczy do przyswojenia niż w innych językach i nie trzeba zagłębiać się w teorię wskaźników, która była zmorą wielu studentów kierunków informatycznych z C++. Nie ma też zarządzania pamięcią. Minusem Javy może być konieczność nauki dodatkowych bibliotek takich jak Spring lub Hibernate.
Nie przejdzie mi przez gardło nazwanie HTML-a językiem programowania, bo to sposób formatowania tekstu, ale na liście HTML może się znaleźć. Jego znajomość jest podstawą do pracy z frontendem.
Czyli języki łatwe i dobre na start: Python i Java.
Trudne języki programowania
C++ to język, który jest trudny nie ze względu na stopień skomplikowania, a na ogromny zakres materiału, który trzeba przyswoić. Programować w C++ można bardzo szybko, trudno zostać ekspertem. Jeśli ktoś czuje się w nim naprawdę swobodnie, bez problemu porusza się po szablonach, to stanowi pewnie najlepsze 10% programistów C++. Dodatkowo C++ uczony był bez zachowania dobrych praktyk i z wykorzystaniem złych praktyk na uczelniach, więc ma otoczkę języka trudnego. Źle uczony rzeczywiście może być trudny.
Niektórzy spotykali się w pierwszej kolejności z językiem C i też C wyskakuje, co dziwne, w niektórych listach “łatwych języków”. Ja się z tym nie zgodzę. W C brakuje obiektowości i kod pisze się w zupełnie innym stylu. Moim zdaniem to utrudnia zrozumienie kodu.
W przeciwieństwie do Javy, JavaScript można uznać za język trudny, głównie przez swoją nieintuicyjność. Są pewne konteksty w języku, jak na przykład ewaluacja wartości, gdzie oczekuje się innego rezultatu, niż ten, który daje JavaScript. Do tego w JavaScript nie ma obiektowego paradygmatu, popularne jest za to programowanie funkcyjne, w którym łatwo się pogubić.
Dla osób, które zaczęły swoją przygodę z tym językiem nie będzie to problemem, ale osoby wcześniej obeznane z innymi językami programowania mogą uznać JavaScript za niekonsekwentny i dziwaczny pod względem zapisu i działania. Do tego te wszystkie frameworki. Nie wystarczy sama znajomość JSa. Musisz znać TypeScript, React, Angular, Vue i kto wie co jeszcze 🙂
Czy warto uczyć się trudnych języków programowania?
W przypadku C++ odpowiedź jest prosta: TAK! Oferty pracy w językach trudniejszych i mniej popularnych są dużo ciekawsze. Zwłaszcza, że C++ używany jest w takich rozwijających się branżach jak embedded czy gamedev. Trzeba jednak być nastawionym na dużo pracy i przyswojenie ogromu informacji.
Dlatego dobrym rozwiązaniem, dla osób początkujących będzie Python. Łatwy i przyjemny. Frontendowcy powinni zainteresować się znów pakietem JavaScript, HTML i CSS, co daje pakiet podstawowych narzędzi dobrego frontendowca.