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 🙂