これは,98年7月14日、岐阜大学工学部応用情報学科のプログラム演習のときに話した内容です
とにかく,自分の力で,プログラムを動作させることが大切です。この覚悟が大切です。本のサンプルを入力して動作せているだけでは、足りません。自分が作りたい目標のプログラムを定めて、それに向かってやり遂げなくてはいけません。いいプログラムの書き方も重要ですが、それよりも、重要なことは、成し遂げることです。
また,プログラムの力を付けるには,プログラム作成の絶対的な経験量を身に付ける必要があります。この経験なくしては,その後の発展に対して基礎がぐらつきます。
プログラムにあたり,先ず、何を作るか明確にします。○○みたいなゲームのプログラムとか、キーボード練習プログラムとかです。きちんとした設計書を書けてという意味ではありません。設計書を書いてからプログラムをするのは,熟練してからです。
次に締め切りを決めます。締め切りを決めることで、集中力とやる気がわきます。
締め切りが、決まったら、その締め切りの1/3以下で、とにかく動作するものを作成します。エラー処理や画面の見栄え、コメントも後回しでいいです。がむしゃらに作成します。一気に作りあげます。エラー処理は後回しでかまいません。自分の知っているテクニックで、とにかく動くレベルまで到達させます。若い人は、若い力を思いっきり使って、徹也をしてでも動作まで持ち込みます。若くない人は、体の調子と相談してながらやる必要があります。
とにかく動作するものができたら、それを捨てる覚悟で作り直しをします。トラブルでプログラムを無くなり、作り直す話がよくありますが、いいプログラムはそういった中で作られます。
英語を話せるようになりたければ、とにかく話すです。プログラムができるようになるには、とにかく作り上げることが重要です。しかし、この段階で学ぶものも多いですが、英語で言えばブロークンイングリッシュです。英語のテレビコマシャールは分かっても、テレビドラマは分かりません。プログラムで、とにかくがむしゃらに作りことができるという段階に到達したら、さらに上にいく必要があります。以下はそのこつです。
コンパイラなどの基本ツールの最低限の機能を知らないと、作ることもできません。ここでいう基本ツールの機能を覚えるというのは、さらに、もうすこし、機能を覚えるということです。
具体的には、コンパイラ、エディタ、デバッカなどの機能を覚えます。たくさんを覚える必要がありませんが、使えそうな機能は手がなじむようにすることが重要です。
デバッカに関しては、多くの機能を覚えるより、自分の得意技を作ってそれを無意識に使えるようにしておいた方がいいでしょう。デバックテクニックのうち、得意技があると、エラーのときに、無意識に頭の中で、エラーの究明するにはどうしたらを考えることができます。これは、格闘技で得意技を持つことと同じです。対戦などの緊張状態では、無意識に体が動く得意技しか決まりません。
このエラー、また出たなとか意識し始めたら、ノートを書く時期です。発生した原因、解決する方法も書いておきます。今日の予定、どこまでできたかなども記録するといいでしょう。
ノートは、ルーズリーフは勧めません。糸で綴じたノートがいいです。人間の記憶は連続しているもの方が確かに覚えることができます。アルファベットも順番だから速く覚えることができます。
人に教えてもらうときも、このノートをメモがわりにしていくといいでしょう。
ループするときの変数を i とするなどです。こういったところをどんどんパターン化していきます。まず、変数名のつけ方です。適当なつけ方をやめます。規則に従った名称にします。パターン化すると変数名が長くなりがちですが、長くならないく、分かりやいものがいいです。
これと同時に、段付けの規則化も行いましょう。
さらに、ロジックの標準化も行うといいですが、これは、すこし大変です。うまく行えば効果がありますが、うまく行うことは簡単ではありません。名前の標準化で練習を積む必要があります。
ぶっつけ本番のプログラムを書くことをここで、卒業します。小さいレベルでは、まず、プログラムのコメントから先に書き、それから、コードを書きます。大きいレベルでは、設計書を書いてからプログラムに入ります。
枠、上から作っていくことを学びます。いわゆるトップダウン開発です。テスト環境を準備してから、プログラムをすることを学びます。
学んでいく順番は、コメントを書いてからプログラムを作成する、これに慣れたら、設計書を書いてからプログラムを作成する、これに慣れたら、テスト環境を準備してからプログラムに入るです。トップダウン手法を身につけるわけですが、身につける順は、ボトムアップです。
プログラムを作成するときに、「コンパイル一発主義」でやります。コンパイルエラーはもちろん、ロジックエラーのためのコンパイルし直しもなくします。さらに、仕様変更のときも、極力コンパイルをし直すことを無くすことを考えます。
もし、再コンパイルになったら、原因を明確にして、再コンパイルの原因を次から作らないないようにするにはどうしたらいいかを考えます。原因を明確にしていくときに、精神論に走ってはいけません。「注意深くやる」ではだめで、注意散漫でもできる方法を考えます。
ソフトウエア工学の本を読んで勉強します。また、設計書や、メモだけで、プログラムを作った気になってシュミレーションします。もちろん具体的に作成するほうが学ぶものが多いですが、紙の上での作業も、さらに上のレベルに到達するためには、重要です。
以上の7つのコツは、基本的に数が大きいほど、それ以前のこつの習熟を必要とします。ハンフリーのプロエス成熟度のレベルでいうと、「レベル1:こつ1、レベル2:こつ2,3、レベル3:こつ4、レベル4:こつ5,6、レベル5:こつ7」が目安です。
プロセス成熟度 提供:System Creates Inc.,