見出し画像

#001 書籍で独習してみた。

■趣旨


勉強法や技術書など実技を伴うような書籍は実際に書評を読んでも釈然としないことが多い。概要的に記載された書評では本当に求めている知識やスキルアップが見込めるのか計測しづらいと感じる。書籍を1冊分追体験することで自分も試してみようまたは自分には不要な情報と判断する一助となればと思い試験的に記録を残していく。

#001_001_000  これならわかる トレーニングドリルC

■目次


はじめに
Chapter 1 プログラムの基本とデータ型
Chapter 2 標準入出力
Chapter 3 プログラム制御
Chapter 4 配列
Chapter 5 関数
Chapter 6 ポインタ
Chapter 7 ファイル入出力
Chapter 8 構造体
Chapter 9 プログラムその他
Chapter 10 よく使う関数
Chapter 11 アルゴリズム
Appendix C言語を使うための環境設定と基礎知識

■はじめに


●C言語とは


 C言語は歴史が古く、最初に習得するコンピュータ言語としてたくさんの人が学んできた。コンピュータ言語の「基本」とみている。C言語のプログラムの作り方は、ほかの言語にも共通している部分が多くあり、C言語を理解していれば比較的最近にできた言語を学ぶ時もスムーズに習得できると考えられている。C言語で書いたプログラムはWindowsやUnixなどのプラットフォーム間で移植しやすい。

●本書の特徴


 本書は多くの問題を解くことでC言語の学習を進める。与えられたヒント解説を通じてC言語の「文法」や「機能」について基礎から順を追って説明している。プログラムを作成する問題では、仕様をよく読み、その仕様を満たすプログラムを作成することでプログラム作成能力を上げる訓練となる。前から順に問題を解くことを前提としているが、苦手な分野を拾い読みして学習してもよい。

●本書の対象読者


・C言語をこれから学習する人
・C言語の基礎をひと通り学んだ人
・プログラミングの経験は問わない
※他の言語を習得している人の方が学習スピードは速いが誰でもはじめは苦労する。コンピュータの扱いに慣れていない人は、巻末のAppendixにてプログラムを作成する上で最低限必要になる知識を十分に理解してから読むとよい。

●本書の学習のしかた


 本書はすべての問題で、各問題文のすぐ後ろに回答を記述している。
1問ずつ以下の順で学習するとよい。
1.問題
2.ヒント
3.解答
4.解説

①問題(&ヒント)を読む
初めて出てくる文法や関数は、問題文の中やヒントに説明がある。
問題文を読んだだけで解答が導き出せないときは、ヒントを参考にする。
②問題を解く
間違ってもよいのでとにかく問題を解く。机上でも実際のコードでもよい。何度でも書き直す。初めはコンパイルエラー、次は内容の誤りを順に探しては直していく。どれだけ時間がかかっても最終的にプログラムが作成できればよい。
③答え合わせをする
どうしても解けない問題がある場合、すぐに答えをみる。
答えに納得したらもう一度その問題を解く。
答えを知ってもなぜその答えが導き出されるのかを確認することが重要。
不正解の理由を自分で見つける作業は実力アップにつながる。
④解説を読む
解説は関連知識なども紹介している。
自分の解答が正解・不正解を問わず解説を読んで理解を深める
⑤応用してみる
1つの問題をきっかけに出てくる応用のアイデアに限りはない。
なにか思いついたら自分で自由に課題を作って解く
「こうすればもっと良くなる」、値のチェック機能を付ける、表示内容を分かりやすく変更する等改善点はいくらでも出てくる。

●本書のプログラムの実行環境について


使用するPCにはコンパイラが必要だが、本書では省いている。コンピュータの仕組みやプログラミングの理解を深めるためにもCコンパイラのインストールや環境設定は自分の力で行う

●チャレンジしましょう!


もっと深く知りたいことが出てきたら専門書やインターネットで調べる
頭だけでなく手も十分に動かす
学習に疲れたらお茶したり散歩したり息抜きをする
気負わず無理をしないことが大切。

■総評

 文字量が多くなるので各章ごとにまとめ的な総評を差し込むことにする。
本書を読む前に42Tokyoというプログラマー養成機関でPiscineと言われる1ヶ月に及ぶ試験を受けた。その際に初心者なりに感じたことを書き記す。

 実際に独学でプログライングを学習する際、理解できないことが多いため、数学的思考や情報科学的な知識をもっていない文系の方はかなり負荷がかかることを覚悟してほしい。そういった意味で「気負わず無理をしない」という言葉は実体験を得てかなり腹落ちする。

 コンパイラの意味を知らないという方は知っている知人を頼るかかなり時間をかけて言語開発環境の設定をネットで調べながら構築することも覚悟してほしい。情報の陳腐化は早くなってきているためネットで拾った情報もページが変化していたりするため、ある程度情報を収集する力または理解する力がないとストレスがかかる。

 そうした負荷を除いてはじめにに書かれている学習方法には基礎的な作法としての学習手順が書かれており、安心して良いと言える。また全11章の学習手順もこれまで確認した書籍に共通する一般的な順序になっているため妥当と思える。ポインタは鬼門なので、特に注意が必要だ。

次回は、Chapter1に入る前に、初心者が必要とされる前提知識が記載されているAppendix「C言語を使うための環境設定と基礎知識」について記述する。章ごとに書くと冗長的になる恐れがあるため、本書のシリーズは連載が少し多くなることが予想される。

■詳細版 目次


Chapter 1 プログラムの基本とデータ型
1 C言語の特徴(Q1→Q3)
2 プログラムを書く上での基本(Q4→Q10)
3 データ型の基本とデータの大きさ(Q11→Q16)
4 演算子(Q17→Q26)

Chapter 2 標準入出力
1 標準入力(Q1→Q5)
2 標準出力(Q6→Q13)

Chapter 3 プログラム制御
1 分岐(1) 条件による制御―if(Q1→Q7)
2 分岐(2) 場合分けによる制御―switch(Q8→Q11)
3 繰り返し(1) 決まった回数繰り返す―for(Q12→Q18)
4 繰り返し(2) 条件によって繰り返す―while(Q19→Q26)

Chapter 4 配列
1 配列(Q1→Q3)
2 文字列(Q4→Q12)
3 二次元配列(Q13→Q15)

Chapter 5 関数
1 関数(1) 関数の仕組み(Q1→Q4)
2 関数(2) 関数の自作(Q5→Q11)
3 変数の範囲(Q12→Q14)

Chapter 6 ポインタ
1 変数のアドレスと大きさ(Q1→Q3)
2 ポインタの基本(Q4→Q8)
3 ポインタの応用(Q9→Q20)
4 ポインタによる変数の渡し方(Q21→Q26)
5 プログラム実行時の引数(Q27→Q34)

Chapter 7 ファイル入出力

1 ファイル操作の基本(Q1→Q5)
2 ファイル入力(Q6→Q9)
3 ファイル出力(Q10→Q12)
4 バイナリファイルの入出力(Q13→Q20)

Chapter 8 構造体
1 構造体(Q1→Q10)
2 共用体と列挙体(Q11→Q15)

Chapter 9 プログラムその他
1 マクロ(Q1→Q10)
2 複数ファイルのプログラム(Q11→Q14)
3 変数の有効範囲(Q15→Q17)

Chapter 10 よく使う関数
1 文字列や数値を扱う関数(Q1→Q5)
2 メモリ管理や時刻を扱う関数(Q6→Q10)

Chapter 11 アルゴリズム
1 再帰(Q1→Q3)
2 ソート(Q4→Q5)
3 探索(Q6→Q8)
4 データ構造(Q9→Q10)
5 リスト(Q11→Q15)

Appendix C言語を使うための環境設定と基礎知識
1 Cプログラミングを行うための環境設定
2 プログラミング前の基礎知識


この記事が気に入ったらサポートをしてみませんか?