1. ホーム
  2. c++

[解決済み] C++のcodingbat風サイト【終了しました

2022-03-05 01:58:54

質問

みんな、こんないいサイトを見つけたいんだ。 コーディングバッド C++をもう一度学ぶために。学校で習ったけど、その後まともに使ったことがない。Project Eulerのような、数学の問題に焦点を当てたものを探しているわけではありません。C++の原理、特性、ツールに本当に焦点を当てたものが必要なのです。

どのように解決するのですか?

そのようなサイトは存在しないと思いますし、これからもないでしょう。その理由は、C++が巨大だからです。 本当に 巨大です。

プロとしてC++のコードを書き始め(つまり週40時間)、C++について新しいことを学ぶのに1、2時間かかる場合。 毎日 (つまり、週に5-10時間)、本や記事を読む。 本物のプロフェッショナルなC++プログラマーになるには、数ヶ月、いや、数年かかるでしょう。 - あなたの仕事が、サードパーティのAPIや新しいツール、技術などを学ぶ必要がなく、C++の学習の妨げにならないことを前提にしています。

数年前から、すでにJavaに1年触れている学生たちにC++を教えています。4~5ヶ月、12~15回の講義、そして最低でもその2倍の時間を研究室で過ごすことで、私は彼らを" Hello, world!" からテンプレートメタプログラミングの短い紹介まで引きずり出すことに成功しました。その期間にカバーされる領域をすべて知っている人は、この後、まだ血まみれの初心者になると言うでしょう。

(ちなみに、私はC++を15年使い、C++のコードを10年書いて稼いでいます。 今でもほぼ毎週新しいことを学んでいます。 . そしてそれは、数年前から"just around the corner"である新しい標準によって私たちの上に捨てられた膨大な量のものを考えてもいない)。

C++を学ぶためにカバーすべき領域が非常に広いこと、C++が古いため、プログラマがどの標準イディオムや"best"を学んだかによっていくつかの世代に分類できること、さらに(やはりその巨大さゆえに)新しい技術が常に発見されて発展していること(テンプレートメタプログラミングは現在C++の非常に重要な機能ですが、その昔は "quot;best" "と呼ばれていました)が原因です。 事故 C++コミュニティのイディオムやプラクティスに関する意見は、例えばJavaコミュニティのようにコンパクトではなく、数十のルールとして伝えることは、激しい議論を巻き起こすことなく、ほとんど不可能です。

(があるのは、そのためだと思います)。 複数の異なる とても良い、おすすめの ベストプラクティス という経験則が数十冊ずつ掲載され、そのうちのいくつかが、後に その他のベストプラクティス という本が、文字通りそれを物語っている)。

プロのC++プログラマの中には、C++が提供するものの30%しか喜んで使っていない人がたくさんいます。例えば、多くの人はC++を単なるOO言語として使っていて、テンプレート(STLを除く)や例外、その他非常に便利なものを見逃しています。しかし C++はマルチパラダイム言語である . オブジェクト指向だけでなく、ジェネリックプログラミング、ジェネレーティブプログラミング、関数型プログラミングなど、さまざまなパラダイムをサポートします。そして、これらのパラダイムが組み合わさったときに最も力を発揮するのです。


では、私からのアドバイスは?

ご覧ください C++ブックガイドの決定版とリスト .

まず、初心者向けの本から選んでください。すでにC++に触れたことがあるということなので、私は アクセラレイテッド C++ Andrew KoenigとBarbara Moo著。この本はC++の教え方を変えたという点で、いくら褒めても足りないくらい素晴らしい入門書ですが、かなり急な学習曲線が伴います。また、250ページもあるため、本当に短い入門書でしかありません。

その代わりになるのは、スタンリー・リップマンの C++入門 (1000ページで同じ内容を詳細にカバーしています)またはBruce Eckelの C++で考える (を知らない)、Bjarne Stroustrupの古典的な C++プログラミング言語 (同じく1kページ)や彼の最新作。 プログラミング - C++による原理と実践 (まだ見ていない)。

これらの本には、しばらくの間、忙しく過ごすのに十分なタスクが付属しています。それに自分の好きなものをいくつか加えれば、何ヶ月でも忙しく学習することができます。

そして、ゆっくりとリストを下げていくのです。

その 次のC++標準 現在、一般的に2011年と予想されていますが、この言語にはいくつかの難しいコンセプトが追加される予定です(たとえば r値参照 ) と 大幅に拡張された標準ライブラリ . (現在のドラフトでは ページ数はほぼ2倍 となっています)。残念ながら、まだ規格が完成していないため、それを教える書籍はありません。すべて記事やオンライン上の議論に広がっています(ただし、Wikipediaには かなり良い記事です )、そして これはすべて流暢なC++プログラマーのためのもので、C++初心者のためのものではありません。 . C++の初心者にC++1xを教えるテキストは、残念ながら1冊もありません。

そして忘れてはいけないのが C++のよくある質問 これは、ベストプラクティス(とその根拠)を集めた、かなり良い(そして非常に読みやすい)オンラインコレクションですが、決して入門テキストではありません。