LoginSignup
8

C++完全理解ガイド Rev1.3.00
https://qiita.com/_EnumHack/items/b5672ac9be86584a6629

よかったこと7 20180417現在
よいと思うこと10 20180418現在(7,8,9追加)

<この項は書きかけです。順次追記します。>

1 「良いキーボードを使う」

良いキーボードを使うと気分が高揚する(重要

20代後半で、色々な場所で、色々な機材を使わざるを得ないことがありました。腱鞘炎らしい現象に悩まされました。

自分の指、肘、肩に合ったキーボードを探しましょう。
ノートPCを使うときも、USBキーボードでもいいじゃないか。

爪を週に二回切らないと、指が痛くなるのは経験済み。

2 「いい椅子に座る」

いい椅子に座ることで長時間のプログラミングにも耐えうる。

腱鞘炎の防止は、机に肘をつけてなんとかなっている。
腰痛の防止は、1時間に1回は100歩以上歩くことと、
「いい椅子に座る」ことで防いでいる。

3 「お気に入りのドリンクを用意する

個人的に重要なポイント。
紅茶かなーやっぱりww

20歳の時に神経性胃炎でコーヒーにはミルクを入れろと言われました。
30歳の時に肥満性脂肪肝で1週間入院したことがあります。20歳の時より20Kg体重が増えていました。
コーラとキャラメルコーンを食べながらプログラム組んでいました。
コーヒーにはミルクを入れるなと言われました。

糖分を控え目にするのに、紅茶、烏龍茶、緑茶を取り揃えています。

2018年夏には、麦茶を常備しました。

4 10冊以上本のサンプルを入れてみる

4.2 僕が読んだ本(抜粋)
1 C++ Primer
2 Programing Language C++
3 C++ Templates: The Complete Guide
4 C++ テンプレートテクニック
5 Effective C++
6 More Effective C++
7 Effective STL
8 C++11/14 コア言語
9 Effective Modern C++
10 Optimized C++
11 C++ ポケットリファレンス」
並んだ本11冊は、実際に取り組むと良さそうな本が並んでいます。

10冊試してみると、時代、OS、バージョンなどの制約も見えてくるのが経験則です。コンパイルエラーが出るのも時代の一つと理解する。
C++, JAVA, Pythonなど大切な言語は10冊やってから講師を勤めてます。

初版の年月、改定の年月を記録しておくとよい。

1 C++ Primer

2 Programing Language C++

3 C++ Templates: The Complete Guide

C++ Templates The Complete Guide(2nd Edition)をclang++とg++でコンパイルしてみた
https://qiita.com/kaizen_nagoya/items/a7065ea839cb33793bdf

4 C++ テンプレートテクニック

5 Effective C++

6 More Effective C++

7 Effective STL

8 C++11/14 コア言語

9 Effective Modern C++

Effective ModernC++をclang++, g++でコンパイルしてみる
https://qiita.com/kaizen_nagoya/items/2fafaf28782d192e237e

10 Optimized C++

11 C++ ポケットリファレンス

上記以外に候補を探している。

12 Real-Time C++: Efficient Object-Oriented and Template Microcontroller Programming

コードは一部のみ。
https://github.com/ckormanyos/real-time-cpp

13 C++ High Performance: Boost and optimize the performance of your C++17 code

5 printfデバッグ

「5.9 デバッグ方法
5.9.1 printf デバッグ
printfデバッグ最強
バグ付近で変数をprintfしまくって引数をいろいろ変えて実行するだけ。
最も効果的である」

デバッガのデバッグほど難しいものはない。
高価なデバッガや、高度なデバッガを使いこなせるまでの間、printfデバッグを併用することをお勧めしたい。

6 CとC++

4.3 C++を学ぶ前にC言語を学ぶべきか?
結論から言うと間違っていると僕は考える。

C++でコンパイラやOSを書いてみれば、Cをやる必要はないはずというのが今の仮説です。

7 エラーメッセージ

5.5 エラーメッセージの読み方を極める

読み方は知らなくても、エラーメッセージを保存しよう。

エラーメッセージを保存せずに質問する人、何様?
「関係ないエラーメッセージは消しました。」という人がいる。
関係ないとわかるのに、なぜ質問してることわからないの?。おかしくね?

8 コンパイラ

コンパイラを変えてエラーメッセージを見るのも有効。

見事に違う方向から出てくると嬉しい。

Clang/Clang++(LLVM) gcc/g++(GNU) コンパイラ警告等比較
https://qiita.com/kaizen_nagoya/items/9a82b958cc3aeef0403f

9 音楽

音楽を聴きながら

昔は音楽を聴きながらが効率が良かった。
最近は音楽が聴ける状況にない。泣)

#10 規格
5.10 規格書(Draft)を極める

極める必要はない。新たな規格への意見を述べるには、サンプルはコンパイルできるようにしておきたい。

今ココ

C++N3242, 2011 sample code compile list on clang++ and g++
https://qiita.com/kaizen_nagoya/items/685b5c1a2c17c1bf1318

N4606 Working Draft 2016, ISO/IEC 14882, C++ standard(1) coding list
https://qiita.com/kaizen_nagoya/items/df5d62c35bd6ed1c3d43

C++N4741, 2018 Standard Working Draft on ISO/IEC 14882 sample code compile list

同意

同意できる事項も他にいろいろあります。

僕がC++を使う理由
速いコードを生成するから

ハードウェアリソースやシステム関数に直接アクセスできる
これがC++をやめられない理由。

C++の現代的なイディオムを知るごとに、C++はずっとフレンドリーに感じられ
C++の規格書を理解するごとに、エラーメッセージはずっとフレンドリーに感じられる

昔話をしよう。
僕の卒業研究は『区間解析を用いた大域的最適化手法の改良』だった。

僕の卒業研究は「連立微分方程式のPade近似」でした。ごめんなさい。FORTRANで描いてます。C++まだ存在していなかった。

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>

文書履歴

ver. 0.10 上位7 20180417
ver. 0.11 上位10 20180418
ver. 0.12 表現を推敲 20180418
ver. 0.13 引用を補強, C++N4741, C++N3242追記 20190301
ver. 0.14 表現補足 20201226
ver. 0.15 AdventCalendar2021追記 20220115

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.
このエントリーをはてなブックマークに追加
http://b.hatena.ne.jp/guide/bbutton

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8