C++ を学ぶ前に C を学ぶべきですか?

C++ を学ぶ前に C を学ぶ必要はありません。

それらは異なる言語です . C++ は何らかの形で C に依存しており、それ自体が完全に指定された言語ではないというのはよくある誤解です。

C++ が多くの同じ構文と多くの同じセマンティクスを共有しているからといって、最初に C を学ぶ必要があるというわけではありません。

C++ を学習すると、最終的にはほとんどの C を学習することになりますが、時間をかけて学習する言語間のいくつかの違いがあります。実際、中級の C++ プログラマーは C/C++ を書く傾向があるため、適切な C++ を書くことは非常に難しいことです。

最初に C を知っていれば、それは C++ の学習にプラスになります。言語のチャンクを知ることから始めます。最初に C を知らなければ、別の言語に注目しても意味がありません。何も知らないところから始めて、C++ にも適用される C から学べるすべてのことをカバーする優れた書籍やチュートリアルがたくさんあります。

この回答の詳細な理由を参照してください。


私はこの質問が大好きです。「スノーボードとスキーのどちらを最初に学ぶべきですか?」と尋ねるようなものです。両方やりたいなら、両方を学ばなければなりません。

どちらのスポーツでも、この質問を誘発するのに十分に類似したデバイスを使用して、雪の丘を滑り降ります。ただし、それらは十分に異なっているため、一方を学んでも他方についてはあまり役に立ちません。 C と C++ についても同じことが言えます。それらは構文が十分に似ている言語のように見えますが、オブジェクト指向コードと手続き型コードを書くために必要なマインドセットは十分に異なっているため、次に学ぶ言語が何であれ、ほとんど最初から始める必要があります。


最初に C を学び、C++ を学ぶ前に C を使用するデータ構造のコースを受講しました。これは私にとってはうまくいきました。 C のデータ構造コースでは、ポインタとメモリ管理についてしっかりと理解できました。また、オブジェクト指向パラダイムが何であるかを学ぶと、オブジェクト指向パラダイムの利点が明らかになりました。

反対に、最初に C を学ぶことで、ポインタ (C++ 参照が必要な場合) やプリプロセッサの過度の使用など、悪い C++ コードを最初に書く原因となったいくつかの習慣を身につけました。

C++ は、多くの機能を備えた非常に複雑な言語です。ただし、実際には C のスーパーセットではありません。むしろ、基本的な手続き型プログラミング構成要素 (ループ、if、および関数) で構成される C++ のサブセットがあり、これは C に非常に似ています。あなたの場合、私はそれから始めて、より高度な概念に進んでいきます。クラスやテンプレートと同様です。

最も重要なのは、手続き型、オブジェクト指向、関数型、論理型などのさまざまなプログラミング パラダイムに早い段階で触れてから、脳が 1 つの世界の見方に固まってしまうことです。ちなみに、Scheme のような関数型プログラミング言語を学ぶことも強くお勧めします。それは本当にあなたの視野を広げるでしょう.