C++
初心者

他言語経験者はどのように C++ を学び始めるか

まえおき

この記事は初心者C++er Advent Calendar 2017 の 9 日目です。

C++ 初心者というと非常に怖い言葉なのですが、今回はガチ初心者ですがあえて書きます。

動機

業務では C++ は一切使わないが、競プロ本がだいたい C++ なのである程度できるようになりたい、という気持ち。

背景・経験

よく読み書きする言語

Java / Ruby / JS / Python / Go あたり。特に JS と Go。
C は学部 1 年の講義レベルしかできない。

知っている概念

  • オブジェクト指向(継承/ポリモーフィズム/デザインパターン etc)
  • 静的型付・コンパイル
  • ジェネリクス
  • ポインタ
  • 型推論
  • ガベージコレクション

知らない概念

  • メモリ解放
  • テンプレート
  • Boost

やったこと

C の初心者本を何冊か読む

  • 基本文法はなんてことなくシンプルであり、難しくはない
  • 書いてあることの意味はわかる
  • メモリ解放については詳細な記載はない……
  • 他の静的型言語経験者が雑に読むにはC の絵本が良さそうだった

C++ の情報をインターネットで探す

  • 古のインターネットっぽいのがたくさん出てきて困る
  • とりあえずドットインストールから、と思ったが C++ はない……
  • まず環境すらよく分からないので、本を読むことにしました

C++ の本を探す

  • 入門書(入門向けとは言っていない)というような内容である旨のコメントなどが書いてある
  • というか、入門本じゃなさそうな分厚い本ばかり本屋にあって、まず圧倒される
  • し、クソ高い
  • 他言語経験者でも入門書にしておいたほうがよさそうっぽい雰囲気がある
  • ほんとに新しい本か、少し前の本しかないので、評価が多くて新しい本がなくて困る
  • とはいえ、Web よりは本の方が少し古くても見慣れているし、そこまで大きくは変わってないだろうという気もするので本にした
  • 図書館で借りると便利

まとめ

  • C の雑な復習にはC の絵本とかで良いかも
  • C++ を入門しようとすると C の知識を要されることがあるのでまず C から
  • インターネットで C++ を探すと古めかしい感じのページか高等テクっぽいのがひっかかりつらまるので、本でやるのが良さそう
  • 結局本の方が良さそうだった
  • 私はロベール本にした