他言語経験者はどのように C++ を学び始めるか
2017-12-09 Sat.
まえおき
この記事は初心者 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++ を探すと古めかしい感じのページか高等テクっぽいのがひっかかりつらまるので、本でやるのが良さそう
- 結局本の方が良さそうだった
- 私はロベール本にした
Other Works
2024-05-11 Sat.
Powerfully Typed TypeScript
- TSKaigi 2024
2024-05-10 Fri.
pnpm の node_modules を探検して理解しよう
- ドワンゴ教育サービス開発者ブログ
2024-03-17 Sun.
neverthrow で局所的に Result 型を使い、 try-catch より安全に記述する
- Zenn
2023-12-20 Wed.
レガシーブラウザ向けのビルドオプションを剪定する
- ドワンゴ教育サービス開発者ブログ
2023-05-26 Fri.
Next.js で dynamic import を使い Client だけで動かす Component を実現する
- Zenn
2023-05-02 Tue.
Node.js でファイル名から拡張子を取り除く/取り出すために path.parse を使う
- Zenn
2023-02-27 Mon.
WSL2 で外部からアクセス可能にするために bridge mode を有効にする
- Zenn
2023-01-26 Thu.
init.vim & dein から init.lua & lazy.nvim へ、シンプル設定で移行した
- Zenn
2023-01-13 Fri.
kindle の本をブクログ形式の csv でエクスポートする@2023初春
- Zenn
2023-01-10 Tue.
自宅サーバの移設に際して docker から nerdctl に移行した
- Zenn
2023-01-10 Tue.
自宅サーバを rootless に移行した際のトラブル対応
- Zenn
2021-11-11 Thu.
並列実行した Promise で throw されても全てハンドルしたいときの方法(allSettled, finally, etc...)
- Zenn