fbpx ...

Dlaczego C++? Jakich języków programowania warto się uczyć?

Czy w 2021 roku warto zainteresować się programowaniem w C++? Łukasz opowiada o faktach i mitach dotyczących C++ oraz innych języków programowania.

Osoby wracające do programowania prawdopodobnie w przeszłości spotkały się z C++ w szkole średniej lub na studiach. C++ nadal jest jednym z głównych języków programowania dostępnych na uczelniach wyższych i uczony jest jako “wstęp” do programowania. To oczywiście przeciętny pomysł, ale z innych powodów niż myślisz.

Mity dotyczące C++ i jego trudności bardziej związane są ze sposobem nauczania go na uczelniach niż z samym językiem. Uczelniane / szkolne programy zakładają mylenie C++ z C, uczenie przestarzałych standardów i metaforyczne “programowanie na kartce papieru”. Nic dziwnego, że później “wskaźniki” i “szablony” spędzają sen z powiek studentom (zwłaszcza, jeśli nigdy nie słyszeli o inteligentnych wskaźnikach).

Tylko jeśli studenci przeskoczyliby na naukę nowoczesnych standardów, szybko okazałoby się, że C++ nie odstaje trudnością od innych języków programowania. Czy jest trudniejszy od Javy? Na pewno tak. Nie jest jednak tak trudny, jak się wydaje. 

Plusy i minusy C++

C++ jest kompatybilny wstecz. Należy to traktować jako jego wadę i zaletę w jednym. Z jednej strony można pisać kod po staremu, co daje ogromne możliwości, z drugiej strony dobre praktyki ze starych standardów najczęściej są złymi praktykami w nowych standardach.

Ale główny minus C++ to fakt, że musisz przygotować się na dużo, dużo pracy, bo czeka Cię masa wiedzy do ogarnięcia. W C++ jest o wiele więcej zagadnień do nauczenia niż w innych językach.

Z drugiej strony C++ używany jest w dwóch rozwojowych branżach: gamedevie i embedded. W przypadku tej drugiej na pewno ktoś powie, że więcej używa się języka C a w tej pierwszej C#, ale generalnie przesiadka z C++ na dwa powyższe nie powinna być problemem. Co więcej, przesiadka z C++ na każdy inny, dowolny język programowania nie powinna być trudna.

Kolejny plus – mało który język nauczy dbania o zasoby (takie jak pamięć) i wydajność tak jak C++. Używa się go głównie tam, gdzie wydajność jest kluczowa i duży nacisk kładzie się na złożoność obliczeniową i optymalizacje. Inne popularne języki, takie jak Java czy Python, nie umożliwiają zejścia na tzw. niższy poziom. Jednak optymalizowanie kodu wcale nie musi oznaczać schodzenia na te niższe poziomy, które C++ nam zapewnia.

  • Minusy: kompleksowość oraz przestarzałe praktyki dostępne w internecie i na studiach.
  • Plusy: możliwość pracy w popularnych branżach, łatwość nauki innego języka programowania.

Jakich języków programowania warto się uczyć

Jeśli nie C++, to co? Dla początkująch dobrą propozycją może być popularny Python. Osoby chcące pracować z backendem mogą też śmiało próbować Javy. Bez dwóch zdań nauka obydwu powyższych będzie łatwiejsza. Web development to JavaScript (tylko pamiętajcie, że HTML to nie język programowania!). Python i zbliżona do C++ składniowo Java na pewno będą łatwiejsze na start, choćby z tego powodu, że nie musimy zajmować się zarządzaniem zasobami.

ALE… C++ daje ogrom możliwości – programistycznych oraz w szukaniu pracy. Co przekłada się bezpośrednio na zarobki.

Decydując się na samodzielną naukę C++ ciężko będzie zweryfikować, czy wiedza jest aktualna i czy obecnie kod pisze się w dany sposób. Próbowanie nauki C++ od zera jest ryzykowne. Minimum, poza szukaniem najnowszych standardów, będzie znalezienie mentora lub chociaż grup fejsbukowych, które poradzą w którym kierunku pójść.

Który język wybierzesz?

Decyzja oczywiście należy do Ciebie, ale na zachętę przytoczę popularne powiedzonko w programistycznym kręgu: jeżeli chcesz sobie strzelić w stopę i jesteś pythonowcem, to Python Ci na to nie pozwoli. Natomiast jeśli używasz C++, to zapyta on tylko, jaki kaliber sobie życzysz 🙂

ninjaletter

A może Ninjaletter?

Chcesz wiedzieć, co słychać w C++ i nie tylko? Zapisz się na Ninjaletter i otrzymuj od nas co miesiąc dawkę wartościowych treści o C++ i zadania rekrutacyjne. Do tego dorzucamy darmowe materiały, spoilery o nowych kursach, specjalne promocje dla ninjaletterowiczów i wiele, wiele innych. To co, skusisz się?

Łukasz Ziobroń

Łukasz Ziobroń

Zmieniam ludzi w prawdziwych programistów. W nauczaniu stosuję grywalizację, andragogikę i neurodydaktykę.

Najnowsze artykuły

docker

Narzędzia programisty: Docker w skrócie

Co wspólnego ze sobą mają ogry, cebula i Docker? Poznaj podstawy Dockera i dowiedz się, jak może przyspieszyć Twoją codzienną pracę. Odkryj, dlaczego warto go mieć w swoim arsenale programisty.

Czytaj »
good programming practices

Good programming practices – Coding Dojo

Training in a form of Coding Dojo. Participants start with a code review of a small application. They note down their comments. After that, the trainer presents bad and good programming practices. Participants discuss what can be applied in a reviewed code and start fixing it in a form of Coding Dojo.

Czytaj »

Popular C++ Idioms – Coding Dojo

The training starts with a code review of a small application (pre-work). Participants note their thought and discuss their findings in groups. Then popular C++ idioms are presented (the concept and some code) – about 15-20 minutes each. After that participants need to use some of the idioms in a reviewed application code.

Czytaj »
performance optimisations

Performance optimisations

This training is about writing more robust C++ code and algorithms with the help of CPU caches and a compiler. Benchmarking tools are used to show performance gains.

Czytaj »
ninjaletter

Już uciekasz?

Zanim to zrobisz, zapisz się na Ninjaletter, aby wiedzieć, co piszczy w C++. 

Informujemy, iż w celu realizacji usług dostępnych w naszym serwisie, optymalizacji jej treści, dostosowania strony do Państwa indywidualnych potrzeb oraz wyświetlania, personalizacji i mierzenia skuteczności reklam w ramach zewnętrznych sieci reklamowych korzystamy z informacji zapisanych za pomocą plików cookies na urządzeniach końcowych użytkowników. Pliki cookies można kontrolować za pomocą ustawień swojej przeglądarki internetowej. Dalsze korzystanie z naszego serwisu, bez zmiany ustawień przeglądarki internetowej oznacza, iż użytkownik akceptuje stosowanie plików cookies. Więcej informacji zawartych jest w polityce prywatności serwisu.