エンジニア

【C++】中級者にスキルアップするための3冊の本・書籍・参考書 やさしいC++ ローベル C++ Effective C++

2021年12月12日

※ 本ブログはプロモーションが含まれています

【C++】中級者にスキルアップするための3冊の本・書籍・参考書 やさしいC++ ローベル C++ Effective C++

ポロシャツエンジニア

3分で技術が身に付くブログ!
・ポロシャツを愛するエンジニア
・企業にて研究開発職
・画像処理 | Deep Learning

本記事では、
「C++のコーディングスキルを上げたい」、
「初心者から脱して、中級者にスキルアップしたい」
「C++の本が多すぎて、選ぶことができない」
と思って考えている方向けに、
私が初心者から中級者(自称)にスキルアップを行った際の体験談を紹介いたします!

この記事の目的

  • 中級者にスキルアップするための、本の読み進め方を紹介
  • 数多の本があるなかで、これら3冊が効果的であるかを紹介
  • 初心者止まりを脱して、中級者にスキルアップするための知識の習得方法を紹介

【結論】 C++ 中級者になるには、「やさしいC++」、「ローベルのC++」、「Effective C++」で読み進める

私は、以下の3冊の本を読み進めることで、中級者になるための知識を蓄えました!

これら書籍の内容を理解することによって、C++関連の業務を円滑に進められるようになりました!
(勿論、書籍から知見を得た後に、コーディングによる実践で自分化することは重要です。わかった気で終わらない。)




下記記事によると、「C++ 中級者」とは以下のような定義だそうです。

C++中級者とは Boost Range LibraryのOven拡張のようなoperator overloadテクニック(operator|を使ったメソッドチェインもどき)を自作でき、boost.asioを使え、C++11constexprの大変さを語れる状態である。また、継承を使いこなせており、なぜC++において継承だらけのプログラムをあまり見なくなったのかを自らの原体験を元に語れる状態である

https://qiita.com/yumetodo/items/a843bd542106215bbc84

本記事の通り、3冊の本を読み進めれば、「C++ 中級者」になるためのベースとなる知見は獲得できると思います!
(ただし、上記の定義だと、別途C++の実装の経験を積む必要性がありそう。)

【理由】 図で理解 → 詳細を理解 → 実践テクニック の順で学ぶことができる

やさしいC++ ロベールのC++入門講座 Effective C++ の順で読み進めることで、
① 図で理解、②詳細を理解、③実践テクニックを理解の順で学ぶことができます!

これが私がこの3冊をおすすめする理由です。

① 図で理解、②詳細を理解、③実践テクニックを理解の順で学ぶことができます!

はじめに、やさしいC++ でC++のプログラミングを図式的に理解します。

【図で理解】やさしいC++で図式的に概要を把握する

はじめに、 やさしいC++ でC++のプログラミングを図式的に理解します。

やさしいC++ はC++初学者でも内容理解できるように、豊富なイラスト図解で、C++プログラミングの概要をイメージでつかむことに注力します。

プログラミング経験がなく、はじめての人にも、無理なくプログラミングの基本から学習してもらえるように、次の点を心がけています。
・ 読みやすい解説でスラスラ読み進められます。
・豊富なイラスト図解で、概念をイメージでわかるようにしています

やさしいC++ 紹介文

C++プログラミングのイメージをがっちり固めた後に、 ロベールのC++入門講座 に挑みます。

「やさしいC++」の特徴

  • Good:複雑度の高いC++プログラミングの概要をイメージでつかむことに最適
  • Bad:C++プログラミングの詳細を理解しきるのには力不足


【詳細を理解】ローベルのC++で詳細について理解する

やさしいC++ でC++のプログラミングのイメージを掴み切った後は、
ロベールのC++入門講座 でC++プログラミングの詳細理解を深めます。

この本の特徴は、C++プログラミングに関して、「広く・深く」詳細解説がされていることに尽きます。
この本さえ押さえておけば、業務でC++を活用する場面でも、そうそう困ることは発生しなくなります。

過去のどの本よりもわかりやすく、丁寧に、かつ本格的な活用までを網羅した本来の意味での「入門書」です。

ローベルのC++ 紹介文

ただし、いきなり ロベールのC++入門講座 から読み進めることはおすすめしません。
「広く・深く」解説することに重きが置かれているため、ざっくりC++プログラミングの内容を理解することは不向きです。
一方で、「深く」説明するために、一つ一つの項目に対する解説が細かく、初学者を困惑させる元となると考えています。

そのため、本記事では、 やさしいC++ でC++プログラミングを図式的に理解することをおすすめしています。

「ローベルのC++」の特徴

  • Good:C++プログラミングの網羅性が高く、基本的知識のすべてを網羅することができる
  • Bad:難度が高い内容が多く、いきなりこの本から理解を進めることは難しい。あらかじめC++のイメージは掴んでおく必要性あり


【テクニック習得】中級者へのスキルアップに必要なテクニックを習得

ここまでで、「C++ 初心者」に必要とされるスキルは習得することができました。
最後に、 Effective C++ で C++ 中級者に必要とされる知識を習得します。

Effective C++ では、C++ 初心者を脱するための、実際のプログラミング・設計のガイドラインが示されております。
単独ではなく、多人数でのチーム開発を前提とする業務では、知っておいて損がない知識が豊富に述べられております。

C++プログラムを理解しやすく、保守しやすく、移植性をあたえ、拡張しやすくするために、55個のガイドライン(アドバイス)をもうけています。
すべての項で、よりよいデザインを考え、よくある問題を避け、自分の期待通りに動く、より効率的なプログラムを書くためのガイドラインが示されています。

Effective C++ 紹介文

ただし、C++の基礎知識無しで、 Effective C++ を読みすすめることは困難を極めます。
そこで、本記事では、 ロベールのC++入門講座 での「広く・深く」の内容を理解したのちに、 Effective C++ をよみすすめることをおすすめします。

「Effective C++」の特徴

  • Good:高速化・保守性改善のためのC++ プログラミングを学び、実践に必要な知識を習得することができる
  • Bad:「ローベルのC++」レベルの内容理解を前提としている。基礎知識なしで学ぶと理解不足に陥る可能性


【読み進め方】 おすすめの読み進め方

おすすめの読み進め方

  • 「やさしいC++」 でC++プログラミングのイメージを掴む。完璧に理解する必要はない、イメージが掴めたら次に進む
  • 「ローベルのC++」で広く・深く学ぶ。イメージが掴み切れていないと感じたら、「やさしいC++」を参照する。
  • 「ローベルのC++」の内容を完全に把握出来たら、「Effective C++」を読み進める。

【まとめ】 「やさしいC++」、「ローベルのC++」、「Effective C++」の順で学べば、脱初心者・中級者に!

本記事では、C++ 初心者を脱出して、中級者にスキルアップするための知識を身に着ける、本の読み進め方を紹介しました!

まとめ

  • やさしいC++:C++ プログラミングをイメージで掴む
  • ローベルのC++:C++ プログラミングを「広く・深く」理解する
  • Effective C++:基礎固めが終わった後に、実践に役立つテクニックを習得する




  • この記事を書いた人

ポロシャツエンジニア

3分で技術が身に付くブログ!
・ポロシャツを愛するエンジニア
・企業にて研究開発職
・画像処理 | Deep Learning

-エンジニア