Jak nauczyć się języków C i C++: ostateczna lista
Opublikowany: 2022-03-11Język programowania C został pierwotnie opracowany i zaimplementowany w systemie operacyjnym UNIX przez Dennisa Ritchie. Język C, który jest dość prosty, nie jest powiązany z żadnym konkretnym sprzętem lub systemem. Ułatwia to użytkownikowi pisanie programów, które będą działać bez wielu (lub żadnych) zmian na praktycznie wszystkich maszynach.
Język C jest często nazywany językiem komputerowym średniego poziomu, ponieważ łączy elementy języków wysokiego poziomu z funkcjonalizmem języka asemblera. Programowanie w C pozwala na manipulowanie bitami, bajtami i adresami — dając programiście większą kontrolę nad dokładnym zachowaniem programu i bardziej bezpośredni dostęp do mechaniki bazowego sprzętu.
C zostało stworzone, pod wpływem i przetestowane w terenie przez pracujących programistów. Końcowym rezultatem jest to, że C daje programiście to, czego chce programista.
C++ to rozszerzona wersja języka C. C++ zawiera wszystko, co jest częścią C i dodaje obsługę programowania obiektowego (OOP). Ponadto C++ zawiera również wiele ulepszeń i funkcji, które czynią go „lepszym C”, niezależnym od programowania obiektowego.
Język C++ jest w rzeczywistości rozszerzalny, ponieważ możemy definiować nowe typy w taki sposób, aby działały jak predefiniowane typy, które są częścią standardowego języka.
Jeśli użyjesz C++ jako lepszego C, nie wykorzystasz całej jego mocy. Jak każde narzędzie wysokiej jakości, C++ musi być używany w sposób, w jaki został zaprojektowany, aby wykorzystać jego bogactwo. Niektóre z nowych funkcji obejmują hermetyzację, wbudowane wywołania funkcji, operatory przeciążania, dziedziczenie i polimorfizm.
Dlaczego miałbym chcieć uczyć się C lub C++?
C i C++ to nadal dwa najpopularniejsze języki programowania. Zwłaszcza składnia i koncepcje C przetrwały próbę czasu i widać, że są one przenoszone do innych popularnych języków programowania, nawet nowoczesnych, takich jak Go.
Nawet jeśli przez resztę życia będziesz tworzyć aplikacje internetowe lub fantazyjne komponenty webowe, nauka języka C pomoże ci zrozumieć, w jaki sposób oprogramowanie i sprzęt faktycznie współdziałają.
Poza tym C i C++ są wszędzie.
W szczególności C napędza o wiele więcej technologii, niż nam to przypisujemy.
Z drugiej strony, niektóre z twoich ulubionych programów — być może nawet przeglądarka internetowa, o której czytasz ten artykuł — są oparte na C++. Znajomość C to dobra podstawa, ale w wielu przypadkach tworzenie oprogramowania będzie wymagało poznania C++ i jego paradygmatów.
Jeśli chcesz opracować oprogramowanie, które musi w pełni wykorzystać wydajność i możliwości komputera — na przykład wysokiej klasy gry komputerowe, zaawansowane narzędzia zwiększające produktywność lub złożone programy wymagające dużej mocy obliczeniowej — lub jeśli po prostu potrzebujesz języka programowania, który pozwoli wchodzić w bezpośrednią interakcję ze sprzętem komputerowym, C i C++ to języki dla Ciebie.
Dlaczego więc nie chcesz uczyć się C++ lub C? To nie jest jak 25 lat temu, kiedy trzeba było zainwestować we własny kompilator, aby zacząć — dzisiaj z pewnością można uczyć się C++ za darmo.
Jak zacząć korzystać z C i C++?
Aby rozpocząć pracę z C lub C++, w większości przypadków będziesz potrzebować przynajmniej kompilatora — chociaż w dzisiejszych czasach możesz także uczyć się C online, eksperymentując trochę z projektami C „hello world” w przeglądarce.
Kompilatory to programy, które można uruchamiać za pomocą interfejsów wiersza polecenia (CLI). Czytają cały program i konwertują go na kod wynikowy, który jest tłumaczeniem kodu źródłowego programu na postać, którą komputer może wykonać bezpośrednio.
Aby ułatwić sobie życie, możesz wybrać pełnoprawne środowiska IDE, które sprawią, że korzystanie z C lub C++ będzie jeszcze przyjemniejsze.
Okna
W systemie Windows dostępnych jest wiele dobrych kompilatorów.
W systemie Windows Visual Studio udostępnia kompilator C++.
Kompilator potrafi także budować programy w C.
Program Visual Studio jest dostarczany z własnym, zaawansowanym, bogatym w funkcje środowiskiem IDE, dzięki czemu jest dobrym wyborem dla każdego, kto zaczyna korzystać z języka C lub C++ lub dla osób, które są głównie ukierunkowane na platformę Windows.
Jeśli szukasz czegoś bardziej zgodnego ze standardami, GCC (MinGW) może być tym, czego potrzebujesz. IDE Codeblocks działa wyjątkowo dobrze w tej konfiguracji.
Clang też jest teraz potężnym wyborem w systemie Windows — jest obecnie używany nawet do tworzenia przeglądarki Google Chrome.
Istnieją inne wieloplatformowe IDE, takie jak Eclipse CDT, Jetbrains CLion i Netbeans, które zapewniają w pełni funkcjonalne środowiska programistyczne C i C++. Ostatnio jednak zostały one przyćmione (przepraszam za ironię) przez Visual Studio Code, który jest również dostępny dla środowisk Linux i Mac.
Linux
Jeśli korzystasz z Linuksa, prawdopodobnie masz już zainstalowane GCC jako część swojej dystrybucji. Jeśli nie, instalacja powinna być kwestią jednego polecenia:
# Ubuntu sudo apt-get install build-essential # Fedora sudo yum install gcc gcc-c++ # Arch Linux sudo pacman -S base-devel
IDE Codeblocks i Eclipse CDT działają równie dobrze w systemie Linux, jak w systemie Windows.
Mac / Mac OS X / OS X / macOS
Na Macu możesz używać Clang lub GCC — oba są dostępne za darmo. Chociaż GCC obsługuje szerszy zakres standardów C i C++, Clang będzie działał dobrze w większości przypadków.
Clang powinien już być zainstalowany.
Możesz zainstalować GCC za pomocą Homebrew:
brew install gcc
Możesz użyć XCode, świetnego IDE, które jest częścią narzędzi programistycznych Mac OS.
Jakie są dobre tutoriale do nauki C i C++?
Samouczki to świetny sposób na rozpoczęcie pracy z nowym językiem programowania. Nawet jeśli nie znasz się zbyt dobrze na programowaniu. Poniższe samouczki nauczą Cię najważniejszych pojęć.
Programowanie w języku C w LearnVern
Ten kompleksowy kurs programowania online w języku C jest świetny dla początkujących, którzy niekoniecznie mają wcześniejsze doświadczenie w programowaniu. Zaczyna się od podstaw C i programowania w ogóle i obejmuje zaawansowane tematy, takie jak dynamiczna alokacja pamięci, zarządzanie plikami itp.
C++ dla programistów języka C w Coursera
Jeśli znasz już C i chcesz zanurzyć palce w C++, ten dwuczęściowy kurs jest dla Ciebie idealny. Ten kurs naprawdę podkreśla różnice między tymi dwoma językami i pokazuje, jak najlepiej wykorzystać C++.
Podstawy C++ w Pluralsight
Z drugiej strony, jeśli chcesz zacząć od podstaw C++ i uczyć się go od podstaw, PluralSight ma dla Ciebie samouczek. Jest skierowany do tych, którzy chcą być bardziej wydajni w C++.
Programowanie w języku C dla początkujących w Udemy
Ten internetowy kurs programowania w języku C jest przyjazny dla początkujących i idealny dla każdego, kto chce zacząć korzystać z języka C na jednej z trzech popularnych platform (Windows, Linux i Mac OS X).
Samouczek C++ dla początkujących na Udemy
Ten kurs jest skierowany do każdego, kto ma podstawową wiedzę komputerową, ale teraz chce wejść w sferę programowania. Prawdopodobnie jest to najlepszy sposób na naukę C++ jako pierwszego języka. Ponadto, jeśli uważasz, że tworzenie gier jest interesujące, jest to kurs, od którego chcesz zacząć.

Zaawansowane szkolenie z programowania w C++ na Udemy
Kiedy już będziesz zadowolony z podstawowych umiejętności programowania w C++ i będziesz gotowy, aby przejść do prawdziwej oferty, będziesz potrzebować zaawansowanego samouczka, takiego jak ten. Samouczek obejmuje polimorfizm, szablony, obsługę wyjątków, strumienie, kontenery, algorytmy, stosy i wiele innych.
comp.lang.c Często zadawane pytania
Czasami wszystko, czego potrzebujesz, to bogata lista pytań i odpowiedzi, które możesz szybko wyszukać, aby rozwiązać swoje problemy. To nie jest samouczek per se, ale raczej uporządkowany zestaw często zadawanych pytań.
Adnotacje C++ (wersja 10.9.2) autorstwa Franka Brokken
Ten internetowy samouczek jest przeznaczony dla zaawansowanych programistów C (lub programistów Perla lub Java — wszystko, co uważa się za „gramatykę podobną do C”), którzy chcą przejść na C++. Kontynuuje tam, gdzie kończy się język programowania C — na przykład na wskaźnikach, alokacji pamięci i typach złożonych — co czyni go bardzo dobrym przewodnikiem programowania C++.
Przewodnik po stylach Google C++
Kiedy piszesz bardziej rozbudowane programy podczas nauki programowania w C++, możesz szybko napotkać problemy z utrzymaniem. Tutaj przydają się przewodniki po stylach od doświadczonych programistów C++. Ten przewodnik po stylu jest zarządzany przez Google.
Jeśli powyższe samouczki C/C++ nie są dla Ciebie wystarczające, istnieją dobre, moderowane przez społeczność listy samouczków do nauki C i C++.
Czy czytając książki mogę uczyć się C i C++?
Książki to świetny sposób na dogłębne poznanie języka programowania. Dzięki wielu świetnym wyjaśnieniom, jak działają skomplikowane funkcje języka programowania, wiedza z dobrej książki o C lub C++ może dać ci przewagę podczas używania tych języków w swoich projektach.
C w skrócie: The Definitive Reference (wydanie drugie) autorstwa Petera Prinza i Tony'ego Crawforda
Chociaż ta książka zawiera małe wprowadzenie do języka programowania C, lepiej nadaje się jako druga książka, jeśli chcesz nauczyć się kodować w C. Ta książka zawiera wskazówki, techniki, przykłady i praktyczne porady, które pozwolą zaawansowanym programistom zmaksymalizować ich możliwości.
Książka podzielona jest na trzy części.
Pierwsza opisuje język C w ścisłym tego słowa znaczeniu; druga opisuje standardową bibliotekę, a trzecia opisuje proces kompilowania i testowania programów za pomocą narzędzi z popularnej kolekcji oprogramowania GNU.
C in a Nutshell jest idealnym towarzyszem języka programowania C autorstwa Briana W. Kernighana i Dennisa Ritchie (znanego również jako K&R) i jest przeznaczony do tego, aby stać się najbardziej dostępną książką referencyjną na twoim biurku.
Język programowania C autorstwa Briana W. Kernighana i Dennisa Ritchie
Jest to drugie wydanie oryginalnego tekstu Kernighan & Ritchie.
Jest powszechnie określany jako Nowy Testament, ponieważ zawiera modyfikacje wprowadzone przez standard ANSI, zachowując charakter pierwszego wydania.
Książka zakłada, że czytelnik posiada podstawową wiedzę programistyczną. Więc jeśli dopiero zaczynasz programować, a C jest pierwszym językiem, ta książka może nie być dla Ciebie idealna. Jednak może się okazać, że te skondensowane notatki na ten temat są warte zachodu.
Jest to jeden z najlepszych sposobów na wprowadzenie do programowania w C i niezbędny, zwłaszcza jeśli zaczynasz własną kolekcję książek o programowaniu.
Język programowania C++ (4th Edition) autorstwa Bjarne Stroustrup
Bjarne Stroustrup jest projektantem C++ i napisał wiele świetnych książek na ten temat.
Ta książka jest podzielona na trzy części.
Pierwsza część zawiera samouczek wprowadzający do programowania w C++.
W drugiej części omówiono zagadnienia projektowe i programistyczne powstające w związku z wykorzystaniem C++, a część trzecia to kompletny podręcznik referencyjny.
Wraz z popularnością C++ pojawiło się kilku niezależnych dystrybutorów C++, ale książka omawia „czysty C++;” oznacza to, że nie są używane żadne rozszerzenia zależne od implementacji.
Jednym z najlepszych sposobów nauki języka programowania jest pisanie małych programów odpowiednich do przedmiotu, którego się uczysz. Na końcu każdego rozdziału znajdują się ćwiczenia, które pozwalają zastosować nowo zdobytą wiedzę.
Efektywny C++: 55 konkretnych sposobów ulepszania programów i projektów autorstwa Scotta Meyersa
Tworzenie dużego oprogramowania w C++ wymaga projektowania i dyscypliny. Jeśli poważnie myślisz o C++, ta książka jest obowiązkowa.
Jest to przewodnik eksperta dotyczący projektowania efektywnych klas, funkcji, szablonów i hierarchii dziedziczenia. Książka omawia również, czym C++ różni się od innych języków i jak robić rzeczy „na sposób C++”.
C++ Primer (5th Edition) autorstwa Stanley B. Lippman
C++ Primer to świetna książka, która sprawi, że nauka C++ będzie zabawą. To naprawdę jedna z najlepszych książek o C++, ale zakłada dużą znajomość koncepcji programowania i biegłość w C.
Najnowsze wydanie tej książki jest doskonałe dla programistów, którzy chcą w pełni wykorzystać nowe i zaawansowane funkcje.
C++ FAQs (wydanie drugie) autorstwa Marshalla P. Cline
To fenomenalna książka, która zawiera odpowiedzi na około 500 pytań dotyczących programowania, projektowania, analizy i testowania. To nie jest dla początkujących, ale dla programistów, którzy poznali składnię języka, chcą je zaimplementować.
Jeśli masz pytania typu „Co to jest niezmiennik klasy?”, „Jak używać wyjątków?”, „Co się dzieje, gdy wykonywany jest destruktor?”, to jest to książka dla Ciebie.
Efektywny nowoczesny C++: 42 konkretne sposoby na poprawę korzystania z C++11 i C++14 autorstwa Scotta Meyersa
Jeśli masz już doświadczenie z C++, ale chcesz przetestować nowsze standardy, przeczytaj tę książkę. Będziesz zaskoczony, jak bardzo C++ ewoluował dzięki tym nowym standardom. Książka omawia, jak najefektywniej wykorzystać nowsze możliwości w C++. (Mimo że standard C++ jest teraz do C++17, C++14 wciąż jest nowatorski w wielu kontekstach projektów).
Efektywny STL: 50 konkretnych sposobów na poprawę korzystania z biblioteki szablonów standardowych autorstwa Scotta Meyersa
Jednym z najbardziej niesamowitych aspektów C++ jest jego Standardowa Biblioteka Szablonów (STL). Jest to jedna z najpotężniejszych funkcji, ale może być dość złożona. Ta książka zawiera 50 niesamowitych wskazówek i ponad 100 algorytmów STL, które eksplorują różne obszary STL, dzięki czemu są bardziej przystępne dla programistów, którzy dopiero zaczynają korzystać z C++.