[解決済み] C++のcodingbat風サイト【終了しました
質問
みんな、こんないいサイトを見つけたいんだ。 コーディングバッド 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++のよくある質問 これは、ベストプラクティス(とその根拠)を集めた、かなり良い(そして非常に読みやすい)オンラインコレクションですが、決して入門テキストではありません。
関連
-
[解決済み】 unsigned int vs. size_t
-
[解決済み】非静的メンバ関数への参照を呼び出す必要がある
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】C++プログラムでのコンソールの一時停止
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】高放射能環境下で使用するアプリケーションのコンパイルについて
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】Vimのオートコンプリートについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】構造体のベクター初期化について
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み] 配列のベクトルを扱う正しい方法
-
[解決済み】'std::cout'への未定義の参照