ゲームプログラマを目指していた頃の話,あるいは技術の学び方の学び方
私のプログラマとしてのキャリアは小学校高学年のゲームプログラミングからだった。中学の頃には毎晩徹夜してプログラミングに励んでいた。愛機PC-6601は家庭用テレビに接続するタイプで,我が家にはテレビは1台しかなかったので,お茶の間タイムにはプログラミングできなかったからである。たぶんその頃に一生分の徹夜をしたのだろう。
最初はベーマガを買い,掲載されている BASIC のゲームプログラムを写経することから始まった。今では信じられないが「いんたーねっとでだうんろーど」とか,なかったんだぜ。市販ゲームはあるにはあったが何千円もした。だからみんなベーマガに掲載された BASIC プログラムを手入力するしかなかった。
もちろんのことながら,そんな単純作業はすぐに飽きる。まずは入力した BASIC プログラムを読んで改造する。これがけっこう楽しくて,無敵にもできるし,いきなりゲームクリアとかもできる。今度は自分でもゲームを作ってみる。最初のうちは楽しいが,すぐにパフォーマンスに不満を覚えだす。
うわさでは「きかいご」なるものを習得すると BASIC の10倍以上のスピードが出るらしい。そこで書籍を入手しようとする。しかし PC-6601 用の機械語プログラミングの本などなかったので,MZ-80 用のプログラミング本で何とかしようとしてみる。もちろん,何とかならないのだが,そこは hack である(もちろん当時はそんな言葉知らなかったけど)。当時はパソコンに詳細なリファレンスマニュアルが付属していた。最初は読み方がさっぱりわからなかったのだが,プログラミング本に書かれていた「パソコンは好きなだけイジっても壊れることはないよ」みたいなことが書かれていたのに勇気づけられて,いろいろ hack しだす。そうすると,最初わからなかったリファレンスマニュアルに書かれていることが解読できたりするんだな。すぐに Z80 CPU のニーモニック(機械語とアセンブリ言語の対応関係)をそらんじることができるレベルに到達する。
その頃の原体験は,今の教育方針につながっていたりする。大学教師になってから舘伸幸さんと「組込みソフトウェア」という授業を開発するんだけど,意気投合したコンセプトが「技術の学び方を学ぶ」というコンセプトだった。コンピュータ技術は日進月歩なので,技術を学んでもすぐに陳腐化する。だけど,リファレンスマニュアルなどの技術文書の読み方のコツをつかめば,それはエンジニアとして一生ものだ。それが「技術の学び方を学ぶ」というコンセプト。
思えばこの頃に誰からも教わることなく学んだことは「技術の学び方」だった。暗号のようなリファレンスマニュアルや他人の書いたプログラムを解読する。そしてちょっと改造して動作を確かめる試行錯誤をする。そんな風に学んだことは,今の私のキャリアを支えている。私の使命の一つは,そんな原体験を,現代の文脈に合わせてアレンジして,学生たちに体験してもらうことだ。