自力で全部作ると力がつく -プログラミングの独習

私が初めてプログラミングをやったときのことをお伝えします。

初めてのプログラミング体験

私が初めてプログラムを作ったのは大学生のころでした。

理系とはいえ化学科の学生だったので、コンピュータープログラム関連の授業を受けたことはありません。でも実験などで必要かと思い、Sharpのポケットコンピュータを購入しました。幅が20センチ程度、厚さが2センチ程度あり、かなり重たいものでした。3万円くらいしたでしょうか。

そのポケットコンピュータは、BASICという基本的なプログラム言語でプログラムを作って実行できるものでした。私はプログラミングを習ったわけではありません。ポケットコンピュータについていたコマンドのマニュアルを読んで自己流でプログラムを作ってみました。プログラミングの基礎を知りません。

ですからたくさんあるコマンドの中での使い道が分からないものがたくさんあります。使い方がわかるコマンドだけを使っていました。

どんどん複雑化した野球ゲーム

少したってから、私はそのポケットコンピューターで野球ゲームを作りました。最初の発想は六角形のサイコロ野球消しゴムです。サイコロのように転がして、ヒットとかホームランとか三振とかを表示するだけのとても簡単なプログラムです。

ただ、サイコロのように6個だけではつまらないので20個くらいまでの乱数を出してその数に応じていろいろな結果、ホームラン、ツーベースヒット、併殺打、バント、犠牲フライなどバリエーションを増やしました。

次に、ヒットやツーベースを打ったらそのランナーを記憶させておいて、タイムリーヒットを打ったときに得点を表示するようにしました。もちろんアウトが3つになたらランナーはクリアされます。

次に打順によってヒットや長打の確率を変えるようにしました。3番目のバッターのときはヒットの確率が高くなる。4番だとホームランの確率が高くなる。9番だとほとんどアウト。そんなふうに変えてみました。

さらにはプロ野球チームのデータを取り込みました。当時好きだった中日ドラゴンズのほか、西武ライオンズと読売ジャイアンツの3チームを選べるようにしました。バッターが落合だと打率も長打力もあるとか、秋山だと長打力があって足が速いとか。このころには盗塁機能もついていて、足が速い人は盗塁成功確率が高いというようにしてありました。

作りこんだ野球ゲームを、大学の授業中に後ろのほうの席で、友達2人と対戦して遊んでいました。改良するたびに、「おもしろくなった!」というユーザーの生の声を聞いてどんどんと改良を続けていきました。
さらには9番バッターに対して1回だけ代打を出せる機能、3球勝負でピッチャーとバッターが対戦するモードなども開発しました。

最初はただのサイコロ消しゴムのプログラムだったのに、なんと進化したことでしょう。

失敗を身をもって体験すると力になる

このゲームプログラムの開発は全くの独力で、自己流で行いました。最初はプログラムの作りも下手くそでした。そのうちに身をもって気づいたことがいくつもありました。

繰り返し処理はサブルーチンにして独立させる、サブルーチンに引数を渡してデータを選べるように変数は配列変数にする、修正やデバッグがしやすい作りにするなど。

拡張されたプログラムにより、メモリーはいっぱいになりました。けれども増設メモリーは当時は高価でした。なそうるべく節約したプログラムにすることも重要でした。

プログラミングの基本を教わってから始めたのではないので、自己流の基本をはずれたところもたくさんありました。けれども、基本を外れたことによる失敗を身をもっていくつも体験しました。でもこういった体験を積んでいたほうが、最初からいい方法を教わってやるよりも力がつくと思います。

失敗を身をもって体験すること、それがプログラミングにとっても、他の勉強や技術の習得にとっても、大切なことではないでしょうか。

子どもにそんな機会を与えてあげたいですね。

こちらのエンジニアライフにも関連した記事を書いています。
「初心者にものを教えるには、効率的にやるよりも、失敗体験を積ませよう!」