C言語の学び方(達人への道)
初心者編
- 基礎の基礎を一通り学ぶ
- コンピュータ
- プログラム開発の手順
- C言語のスタイル
- 関数
- 変数と定数とデータ型
- 使ったもの
- ライブラリ関数(printf, scanf, ...)
- 構文(if, switch, while, for, ...)
- 演算子
はリファレンスマニュアルの該当個所を見て詳細を確認する
- 良いサンプルから学ぶ(learning by example)
- 実際にコンパイルして実行してみる(learning by doing)
- 所々を変更してみる(learning by modifing)
- コンパイルエラーに慣れる
- 要所要所で変数の値をprintf等で表示してみる
初級者編
- アルゴリズムとデータ構造について学ぶ
準備として
等を学んでから、基本的なデータ構造
等および、基本的なアルゴリズム
等を学ぶ
- マニュアルを読んで理解する習慣を身に付ける
中級者編
デバッグの仕方
- まずは、落ち着くべし!(Calm down!)
- コンパイル・リンクエラー
- 思い通りに動作しない場合
- コンピュータに成りきって、プログラムを実行してみる
- 要所要所で変数の値等を表示してみる
- fprintf(stderr,"KOKO\n");
- #ifdef DEBUG〜#endif等で囲んでおくと良い
- どうしても解決できない場合
- 自分が何をどのようにしようとしているのかを、
他人に分かるように説明してみる
テストの仕方
- 分岐構造の全ての経路を通るように
様々なデータを用いて実行してみる
- 例外処理がちゃんとなされているかチェックする
- クリティカルな場合を試してみる
良いプログラムの作り方
- トップダウン設計を行なう
- 先に仕様書を作成する
- コメントを正しく入れる
- 関数の入出力仕様を明確にする
- 変数の隠蔽を意識する
- 大きな関数は作らない
- 大きなファイルは作らない
- goto文を多用しない
- マジックナンバーを入れない
- ヘッダーファイルを有効活用する
- 変数名等を工夫する
- 例外処理を行なっておく
- 再利用を意識する
- トリッキーなことはしない
- 問題解決に適したアルゴリズムを用いる
- 必ずドキュメントを作成する