プログラミングは、ファミリーベーシックが最初だ。
ファミコンに専用カートリッジとキーボードを接続して、パソコンのように自分でプログラムを入力して、動かすことができるという代物だ。
別売りの周辺機器で、作ったプログラムを保存するための『データレコーダー』という記録装置があり、カセットテープに音として記録することもできた。
当時はたしか小学4年生ぐらいで、添付されていた取扱説明書をすり切れるまで(実際ページがかなりちぎれた)何度も読み返しながら、やれることは全部やってみて、肌で身につけていった感じ。
V3も買ってもらい、こちらも同様に説明書から知り得ることは何でも試してみた。V3はメモリも倍増していたし、取扱説明書も判型が小さくなって厚みがどっと増えて読み応えがあり、さらに面白かった。
当時はインターネットのようなものは無かったので、情報は友達から見聞きする話や書籍だけが頼り。
マイコンBASICマガジン(ベーマガ)という、読者が作ったオリジナルゲームのソースコードが掲載された本があり、そこにはいろいろなパソコンの各機種向けにそれぞれ数本掲載されていた。実に貴重な情報だった。
そういう背景があって、後にパソコンに触れた時は、BASICはそこそこにして、アセンブラでコードを書いていた。まだモニター上で16進ダンプを入力するレベルからだったが、ファミリーベーシックより格段に便利で、後にMASMなどでニーモニックが直接バイナリに変換される(ラベルを書いておけば相対アドレスを自動的に解決してくれる!)のは感動モノだった。
C言語は、そういう背景があって、アセンブラより遙かに便利な、高度なアセンブラとして使うところからのスタートだった。教本はK&R(カーニハン&リッチー)が基本だったと思う。柴田望洋さんの本もだいぶ読んだ気がする。
C言語から始めた人が苦労するポインタの概念は、ネイティブだったため何の苦労もなく、どちらかというとスタックの使い方やレジスタをいちいち退避する無駄なコードにイライラしていたように思う。
C言語時代は、アルゴリズムとデータ構造について学んだことが大きい。サーチやソート、データ圧縮などなど。
C言語が多分高校1年生の頃で、学校でCOBOLを教える授業などもあったけど、あまりにもヒマなので授業中は内職ばかりしていた。
ファミリーベーシックから入ったワケで、基本的にはゲームを作ることが目的のプログラミングだったが、C言語以降は、結局のところ周辺ツールやライブラリばかり作っていた。
ドット絵を描くためのドット絵エディタを作って、グラフィック担当の友達に使ってもらったり、マップエディタを作ったり、そこそこ広い2Dマップを表示してスクロールさせる部品を作ったり、パソコン同士をRS-232Cケーブルで接続して、複数人で遊ぶ為の通信プログラムを書いたり。
高校を卒業し専門学校に入ってPrologやLispを教わったのが本当の意味で人から教わった最初のもので、それまでは知的好奇心だけで突き進んでいた。AI関係だったので、イライザだ、エキスパートシステムだ、遺伝的アルゴリズムだ、というあたりね。卒業生で一番有力だった就職先はヴァル研究所だった気がする。たぶん当時の応用分野は、乗換案内ソフトの最短経路探索とか、日本語変換ソフトの形態素解析から学習などの機能改善とか、そういう分野だったと思う。
私は卒業後は印刷屋になったので、結局プロにはならなかった。
それが、何の因果か、今はプルリクを送る日々を送っているw