2019-05-10 (金)
眠い...今週は寝不足気味.
会社で話をしていて,プログラミング始めた頃を思い出したりした.
初めてプログラムを書いたのは,小学生の時にX1のHuBASICを触ったのが最初で,コンピュータやソフトウェアの存在を知ったのもその時だったので,コンピュータとソフトウェアとプログラミングは自分にとって同じ存在だった.
キーボードのキーを押すと画面に文字が出る時点で謎の仕組みだったし,LINEとかCIRCLEとか書くと画面に図形が表示されるだけで面白かった.最初は全く意味もわからずにサンプルプログラムを触って,IF,THEN,ELSE, GOTO, PRINTといくつかのグラフィック命令くらいは分かるようになったけど,英単語も知らなかったので,アイエフ,イーエルエスイー,ジーオーティーオーと頭の中で読んでアルファベットの羅列として覚えていた.
そのころは,サンプルを切り貼りして時間になったら音が再生されるプログラムとか簡単な双六ゲームを作ったりしたけど,いちから自分で何か作ろうと思うと,だいたい途中でうまく行かずに苦戦したり諦めたりしていた.
スーパーファミコン版の「ぷよぷよ」で遊んで,似たような落ちものパズル作りたくなって作り始めたけど,隣接している同じ色のキャラクタを消す処理をなかなか正しく書けず最後までちゃんと動かなかった.だいぶ後になってから再帰的に処理すれば楽だと気づいたけど.
あとはキーボードで操作する簡単なお絵かきソフトを作ったときも,sin,cosも意味もわからず使ってたし,数学の知識が足りなくてだいぶ苦戦していた.円を思った位置に配置するために長方形の対角線の長さが欲しかったのだけどどうやっても求められず,父親に聞いて a^2 + b^2 = c^2 というピタゴラスの定理を教えてもらったりしていた.ただ,平方根の存在も知らなかったのでSQR命令には辿り着けず,0.5乗してそれらしい値が出てきて満足した気がする.
ちゃんとプログラミング勉強しようと思ったのは中2の時で,そのとき使い始めたPC-9821 V166はN88-BASICは使えないと説明書に書いてあって残念だった(けど後から試したらMS-DOS版のN88-BASICは普通に動いた).インターネット環境も手に入ったので,いろいろBASICライクな言語を探してHSPに辿りついた.
プログラミングの入門書やアルゴリズムの本を買ったり地元の図書館で借りたりしてたけど良い本にたどり着けず,公開されてるソースコード読んだり,プログラミングの掲示板やメーリングリストのほうが役に立った.実は良い本もあると思ったのは,高校生のときに東京まで出かけたときに池袋のジュンク堂で本を探すようになってからで,確かC言語プログラミングとコンピュータアルゴリズム事典を読んだ時だと思う.
会社でしていたのはそんな話ではなくて,子供にプログラミング教える話だったけど.