すばやく理解したい・・・
私は,30年以上,色々な言語を経験してきました。
単にプログラムを記述するだけでなく,
新しい言語開発にも携わってきました。
でも,最初に使い出すときや,新しい処理系を作るとき,
●マニュアルの多くは英文のことが多い。
●回りに知っている人がいない。
●業務に使うので,習熟に時間をかけていられない。
というのが実情です。
ですから,人に聞かなくても,
どうやってすばやく言語に習熟するかが課題となります。
結論からいうと,
●言語の機能をすべて覚えようとしない
ことです。マニュアルを参照すれば分かることは,
なるべく覚えないようにします。
ただし,言語が基本としている考え方は
きちんと理解しておきましょう。
基本となる考え方とは,色々な言語に備わっている
変数,配列,手続き,変数のスコープ,オブジェクト指向などの
考え方です。
これらの考え方は,色々な言語で類似の概念ですので,
他の言語を理解する上でも役にたちます。
暗記よりもトレーニング
そして,以下のような手順でトレーニングします。
(1) 表示だけのプログラムを作ってみる。
(2) 表示するプログラムの前に固定的な演算や
データのアクセス方法を入れ,実行してみる。
(3) 入力文を先頭に付けて入力したものを表示したり,
演算結果を表示したりするプログラムを作ってみる。
(4) プログラムの受け渡しのプログラムを作ってみる。
(5)言語特有の色々な表現を試してみる。
(6)言語の概念に適したプログラミングに心掛け,考え方に慣れる。
満遍なくマニュアルを読んでいても,
多分,理解する前に
プロジェクトは終わってしまっているでしょう。
言語を覚えたからといって
ところで,あなたは,日本語を知っているからといって
日本語で...
●ケーキのレシピを書けますか?
●小説を書けますか?
●数学や物理のテキストを書けますか?
逆にあなたは,国語辞書の全ての言葉を...
●説明できますか?
●使えますか?
それでも貴方は日本語で話しています。
同じように,C言語を知っているからといって,
●事務処理のプログラムを書けますか?
●ゲームのプログラムを書けますか?
●流体力学のプログラムを書けますか?
Cのすべての定義を
●覚えていますか?
●使えますか?
それでもあなたは?
プログラムとは?
ですから,以下の3点は納得できると思います。
●プログラムとは,あくまでコンピュータに対する手順
●プログラミング言語は,手順を示すための言葉
●手順が分からなければプログラムは書けない。
また,
●すべての用語を覚えていなくてもプログラムは書ける。
ということもご理解いただけると思います。
プログラミング言語を
勉強するに当たって・・・
繰り返しますが,言語の基礎になっている
基本的な概念は理解しましょう。
また,全部を覚えようとせず,
使うとき,テキストやヘルプを参照しましょう。
すると,いつも使う表現は,自然に覚えてしまいます。
そうですね。外国語を覚えるのと同じですね。
要は,手(Hand)馴れ,耳(Ear)慣れ,目(Eye)慣れです。
わたしは,これを「HEE(へー)慣れ」と言っています。
ただ,ミスを少なくするために,
●なるべくキーボードから入力せず,
メニューから選ぶ,またはコピーする。
ことに心がけましょう。
すなわち,操作は,なるべく安易な方法を選ぶこと。
これが基本です。
アルゴリズムの重要性
前に述べたようにプログラミング言語を覚えたからといって
プログラムは書けません。
解決すべき問題における
常套手段や手順を身につけることが大事です。
どう記述するかは,困ったときに参照すれば構いません。
また,普段から色々なことに興味を持つことが大事です。
モデル化の重要性
また,プログラムを記述する前に
適切な図式化技法で問題を表現しておくことが
重要です。
ですから,最低限,
以下の図法は使えるようになっておきましょう。
●フローチャート
●データフロー
●状態遷移図
これらは,手順を記述したり,
現象をモデル化するための
手段ではありますが,
問題整理にも役立ちます。
数学の式もモデル化のひとつです。
式表現は,問題把握のための言葉です。
決しておろそかにしないようにしましょう。
複数人で
プログラムを作るとき
複数人でプログラムを作るときは,
以下のような点にも配慮する必要があります。
●コミュニケーション
●ソフトウェア開発プロセス
●プロジェクト管理
●ドキュメントの標準化
●自らの役割・責任
これらは,いわゆる「ソフトウェア工学」のテーマですが,
これらも重要であることを頭の片隅に入れておきましょう。
|
1.C言語の誕生
2.C言語の仲間たち
3.新しい言語をすばやく覚えるには
4.Cでプログラミング
5.データの入れ物 変数の考え方
6.注釈・定数
7.プログラムの実行順序
8.配列
9.C言語特有の代入文・制御構造
10.関数の話
11.構造体と共用体
12.ビット演算
13.プログラムの場所をポインタで
14.ファイルの入出力
15.色々な便利な方法
|