はじめてのプログラミング
これは エンジニアと人生 Advent Calendar2020 の2日目のエントリです。
昨日はトップバッターであるturaraさんの エンジニアと人生とわたし でした。
注1. 本記事は初心者向けプログラム講座ではありません。
注2. 本記事はポエムです。
…気が付けば既に人生の半分を職業プログラマーとして過ごし、また人生もそろそろ折り返し地点を過ぎているような気がするので「エンジニアと人生」というテーマにかこつけて自身のプログラミング遍歴を振り返ってみたわけです。
生まれてはじめてプログラミングというものをしたのは小学四年生の頃だったと記憶しています。
ある日父親がCASIOのMSXというものを買ってきました。
見た目はほぼキーボードで、申し訳程度にファミコンのカセットのようなものを刺すスロットがあるだけ。一般的にはゲーム機としてソフトと共に買う人が多かったようなのですが、父親が買ってきたのは本体だけでそこにゲームソフトはありませんでした。どうやら家電量販店で投げ売りされていたらしく、つい安さに釣られて買っただけのようです。
とはいえ新しい製品というのはいつの時代も心を踊らせます。ワクワクドキドキしながらテレビに接続し電源を入れたものの、画面に映し出されたのは青い画面と数行の英語だけ。
英語は全然わかりませんでしたが、唯一最後の
Ok
だけ意味が理解できました。
が、意味がわかりません。全然Okではない。
買ってきた父親本人も弟も、初日の青い画面を見ただけでそれ以降触りもしませんでした。
しかしどうやら説明書を見てみるとプログラミングが出来るらしいのです。ファミコンが大好きだった私は「ゲームのようなものが作れるのではないか?」とマニュアルを必死に読みました。これが私が人生で初めて出会ったプログラミング言語MSX-BASICでした。
唯一の手がかりである厚さ1cm程度のマニュアルで命令一覧を眺め、そこに書かれている数行のサンプルプログラムを意味もわからないまま人差し指で一文字一文字入力してみました。
「なぜキーボードに刻印されている英語はアルファベット順に並んでいないのか?」「なぜShiftキーを押さないと大文字にならないのか」と子供心に若干の憤りを覚えながらも一文字、また一文字と入力していきます。
数十分かけてようやく打ち終え、実行しようとRUNと打った直後に出てきた
Syntax error
という表示が純朴な少年の心を蝕みます。
そう、人生初のエラーメッセージとの戦いです。プログラミングとはエラーメッセージとの戦いなのです。しかしマニュアルに助けを求めても「プログラム中に構文エラーがあります」としか書いてありません。
RUN
Syntax error
RUN
Syntax error
RUN
Syntax error
RUN
Syntax error
RUN
Syntax error
…
期待に胸膨らませ輝いていたはずの少年の瞳はあっという間に画面を睨みつける濁った目になっていきました。世界にまた一人プログラマーが誕生した瞬間です。
とにかくマニュアルに載っているサンプルと入力したプログラムを一文字一文字確認するしかありませんでした。何もわからない小学生はカンマの有無や数字のゼロと大文字のOのtypoにはなかなか気づけないのです。ひどく地味な間違い探しでしたが回数をこなすと少しずつ修正すべき箇所がわかるようになっていきました。
ただ、プログラムを実行できるようになってもプログラム自体の意味がよくわかっていません。出力に何か文字や数字が出るのですが、それは一体何がどうなって出力されたものなのかサッパリわからないのです。
とにかく片っ端からサンプルを実行しては「何をしているのかわからん」を繰り返します。多くないとはいえマニュアルに乗っていたサンプルはほぼ全部打ち込んだと思います。さすがに全部実行すれば理解できる命令がいくつかありました。
PRINT命令
LINE命令
CLS命令
CIRCLE命令
PAINT命令
PLAY命令
などです。
画面に文字を出力するだけのPRINT命令の何が嬉しいのかはともかく、
その他の命令は画面に絵が描けたり音が流れたりするので直感的にわかりやすかったのです。
それからというものLINE命令とCIRCLE命令で線を描き、PAINT命令で色を塗り塗るというプログラムをひたすら打ち込んでお絵かきをしていました。使える色はたった8色だけでしたがテレビに思い通りに絵が描けるというのはそれなりに楽しいものでした。座標を変数に入れてFOR文で適当に変化させながらLINE命令やCIRCLE命令を繰り返せば不思議な模様が描けました。飽きたら音楽の教科書の楽譜を見ながらPLAY命令で音楽を鳴らしていました。
どんどん命令を追加していってそれなりの行数のプログラム(というよりは描画シーケンス)を作る頃になると、ここで新たな壁に直面します。
作ったプログラムが保存できないのです。
MSXにはファイルシステムなどありません。そもそも外部記憶装置など無いのです。電源をOFFにしたが最後、入力したプログラムは一文字残らず失われます。
唯一の手段として音声入出力ジャックをラジカセのIN側に繋いでプログラムをカセットテープに録音するという方法もあったのですが録音ボタンを押すタイミングが悪かったのかケーブルが悪かったのか、とにかく一度もうまくいった試しがありませんでした。
なので仕方なく取っておきたいプログラムはノートに手書きでプログラムを書き写すようにしていました。わざわざ行番号まで書き写していました。(※BASICは上の行からではなく、行頭に書いた行番号順に命令が実行されるのです。)
最初は楽しかったものの、そんな苦行を繰り返していたためやはり飽きるのも早かったのです。
数ヶ月もするとMSXはテレビ台の下でホコリをかぶるようになりました。
その後、六年生〜中学生の頃にはまた父親が気まぐれでパソコンを買ってくるのですが、PC-98シリーズ全盛の時代になぜか日立の来夢来人というマイナー機種を買ってくるセンスの無さです。やはり買ってきた当の本人はほとんど触らず、私がBASICで少し遊んでまたすぐに飽きることになります。(5inchフロッピーディスクがあったのでプログラムの保存はできるようになりましたが。)
そしてこの後、大学に入学しアセンブラとC言語を習うまで6年近くプログラミングから離れてしまうのです。
余談ですが小学生の頃の夢は実は「プログラマー」でした。
やはり当時はゲームが大好きで、しかもゲームを作る人=プログラマーという認識だったのです。
卒業文集委員の子に「プログラマーって何?」と聞かれたため、あれこれ説明したところ「なるほど」と理解してくれたようでした。
卒業式を終えて受け取った卒業文集の私の名前の箇所に記入されていた将来の夢は「コンピューターを扱う人」でした。
当時ぼんやりと思い描いていたプログラマー像とは違うとはいえ、なんと驚くことに私は夢を叶えた人生を送っているのです。
あの頃の熱量を懐かしみつつ、
丁寧なエラーメッセージが表示され
ノートに記入しなくとも保存できるという
あの頃の自分には夢のような環境で今日もプログラムを書いています。
エンジニアと人生 アドベントカレンダー明日12/3はりょー@エンジニア さんです!お楽しみに!
この記事が気に入ったらサポートをしてみませんか?