第16回 私は初心者です?「7.初心者の壁」

16−7 初心者の壁


さて、再びmizuno-amiです。

センパイ君達のやり取りをメインにお送りしてきた今回は、如何だったでしょうか?
少なからず、簡単にプログラムが組めそうだ、と思ってNS Basicを買っちゃった人は、居るんじゃないかと思う訳ですが、もしかしたら、この冒頭のセンパイ君のように、使わずにお蔵入りしている人も入るんじゃないかと思っています。

今回紹介した例は、あまり極端ではないとは思うのですが、要はプログラミングとはやり方も色々だし、自分が欲しい機能を具体的に絞りきれないから難しいんじゃないかと思ったりするわけです。
センパイ君のように、とりあえず、とりあえず、と使える機能を試しながら、泥臭いプログラミングをするのは、とても重要なことです。

例えば、私たちは、ごく当たり前に日本語を話します。しかし、だからといって、日本人が皆、作家などの文筆家になるとは限りません。
なぜなら、プロの作家というのは、日本語を話せるのは前提条件であり、そこに、いろいろな方法や手法を駆使して表現できるように訓練しているからです。
これをプログラミングに当てはめてみれば、色々なコマンドを暗記していても、それが使いこなせなければプログラマとしては失格です。いくらコマンドを多く知っていても、処理が1つも書けないようでは当然ですが、この処理方法を学習するために、色々試し、また、人の書いたコードを参考にしたり、処理方法の定番を学んだりする訳です。
日本語の初心者という表現は、あまり見かけませんから、プログラマの初心者などと卑下しなくても、色々試して、動くものが作れればOKじゃないかと思っています。


 経験上、新しいプログラムを作る際に、面白いことに傾向があることに気がつきます。
まず最初は「こういうのはどうだろう?」と、とりあえず動くものを作ってみますが、これが思ったより上手くいったりすると、次々と機能追加をするようになるんですね。
そして、ある時、これ以上「手を入れるより、別の方法を使った方が良さそうだ」という時期を迎えます。
センパイ君が、データベースを使おうかどうか迷った時期もそうですが、これは、今まで自分の作ったものを完全に破棄して作りかえるくらいの労力を要する大工事だったりします。
お恥ずかしい話、この大工事は、かなりの労力を要しますので、意欲よりも「面倒臭い」という思いが先に立ってしまい、キーボードから手が離れたりする訳です。
最初のうちは「動けば楽しい」ので、あまり気にならないですから、ほんと、楽しいと思えるうちに色々と試して身につけたほうが得策だと思います。


 ところで、プログラムを作る上で、何も考えずにガンガン作って楽しむ時期は確かにあります。
しかし、何も残さずに前に進むと、後から結構苦労をします。
例えば、ある程度作りこんだ後、しばらく期間が開いてしまうことは良くあることです。そういう時、後から手を入れようにも、何も資料類がありませんので、頭から解析しなきゃならなくなります。
これが結構タイヘンですが、学生時代に、自分が書きなぐった下手くそな字が並んだノートを、いい年になってから清書するような行為ですから当然でしょう。
「お客様に収めるための資料」などとプロのように構える必要はありませんが、自分が後から見て手が出せるような資料を残しておくことは、かなり重要ですので、習慣づけておくようにしましょう。


 また、いわゆるプログラミングの初心者とベテランの差は、試し方にもあるような気がします。
初心者の頃は「これが動くかな」という試行ですが、ベテランになると「こうやって動けばOKだな」という動作上の目的を持っているわけです。
こういう「何がOKで、何がNG」ということを予め想定して進めることは、後からの問題点の切り分けにつながります。とは言え、こういう視点を一朝一夕で習得することは難しいかもしれませんね。そもそも、最初のうちなんか動くかどうかも理解できないんですから。


ま、色々と偉そうな事を書き垂れてきましたが、結局、プログラムを覚えるのも使うのも自分になりますし、人に使ってもらう事だってあるでしょう。
何はともあれ、ひとまずのところは、センパイ君のように、色々なプログラムを作って楽しんでみてください。頭で思っているよりも、色々な発見に遭遇しますから。
難しい話は、それからでも良いじゃありませんか(笑)


◆◆◆◆◆◆◆◆◆


「そうだな、データ交換用のデータベースファイルを別に作ったらどうだろう?」
「なるほど、それなら不用意に上書きすることはないですよね。」
「まぁ、オレがプログラム中からビームできるようにすれば良いんだけどな。」
「いえ、データ交換なんて頻繁じゃないですから、それでも良いんじゃないですか?どうせ、Palm持ってるの2人だけだし。」
「ま、そうかな。」
「それより、集めた店の情報、パソコンでも利用できないですかねぇ。」
「それも面白そうだが、連携させるのは難しそうだな。」
「少しずつ考えれば、何とか解決できる、んじゃなかったでしたか?(笑)」
「よし、何とか考えてみるか!」





前へ     目次へ

第16回 私は初心者です?「7.初心者の壁」