元底辺エンジニアが語る、エンジニアとしての生き様、そしてこれからの生き方

生き様012. 僕がプログラムを覚えた時 ~キャリアの軌跡「プログラム学習編」~

»

基礎力は大体学生の頃に育った

今回は、僕がプログラミングと出会い、どう学んだのか、についてお話します。

今、仕事として使っているプログラミング技術の基礎は、学生時代に培ったものです。
逆に言えば、僕が学生時代に学んだことをトレースすれば、僕程度の技術者にはなれる!
…わけではありませんが…

これから学ぶ人、誰かに学び方を伝える人の役に立つ…のかもしれません…


コンピュータとの出会い、そして初めてのプログラミング

時は1990年代前半。
まだ、Windows95が世に登場する少しだけ前。

当時は、MS-DOSというMicrosoft社製のコマンド形式のシングルタスクOSが全盛。
国内では、NECのPC98とその互換機がとても強く、他社製は…という状況。
ただ、当時の僕の中では「ファミコンとはちょっと違うゲーム機」ぐらいの認識でした。

そのパソコンを弄り倒せる機会が、小学校6年生の時にやってきます。
毎週1回あった「クラブ活動」という授業。
半年サイクルで所属を変えて「普段授業では体験できない事を体験しよう」という素敵な授業でした。

その中に「パソコンクラブ」というものがありました。
学校に20台ぐらいあったパソコンを使ってみよう、という素敵な活動でしたが、実質ゲームクラブです。
プリインストールのゲームは無かったので、数個しかないゲームを取り合う修羅場!

そして、ゲームが獲得できなかった時に、たまたま手に取った「日本語ロゴライター」。※1
これが、僕とプログラミングの出会いなのでした。


パソコン部に入部

中学に入った時、部活に選んだのがパソコン部でした。
選んだ理由の一つに、小学校の時のプログラム体験がありました。
中学の部活でも「日本語ロゴライター」を使っていたのです。

当時はインターネットもなく、プログラミングを勉強するには

  1. 付属のドキュメント(リファレンス、サンプル集)を読む
  2. “当時は”マニアックな専門書や専門雑誌を読む
  3. 周りのプログラミングやってる人に聞く
  4. トライ&エラー

当時メジャーだった、C言語BASIC言語ならともかく、流石にロゴ言語はマイナー過ぎます。
専門書に情報はありません。
約40年間で唯一、学校の図書室に1冊だけ本があったのを見たことがあるだけです。
なので、付属のサンプル集やリファレンスに齧り付き、周りにいる先輩や同級生と情報を交換したり、作ったプログラムを参考にする、という方法で勉強ていました。
…本人の意識は「勉強ではなく遊んでるだけ」でしたが…

この経験をしたお陰で、今でもリファレンス集的なドキュメントを読み解く事は苦ではないです。
何度か、資料が少ない特殊な言語の開発を経験することになりましたが、このときの経験が生きている、と感じます。

この「日本語ロゴライター」でプログラム初めて触り、3年間みっちりやってみて

良かったと感じたところ

  • 日本語でプログラミングできるので、心理的ハードルが低い
  • 画面上の[かめ]を動かす所から始まるので、操作に対する反応が直感的
  • 前述の[かめ]の振る舞いから、配列やオブジェクトを理解する助けになった(凄く後で、ですが)
  • 関数型言語だったので、後のC言語学習のスモールステップになった

逆に悪かったと感じたところ

  • 英語開発言語に対する心理的抵抗感「日本語でできるのに…」

実は、英語コマンドも使えたのですけどね。全然使っていませんでした。
機能のすべてが日本語で使えてしまったので、全く使う意味を感じなかったのです。
「ここから先をやるためには、英語のコマンドが必要」ぐらいのハードルにしておいてくれた方が、後々の学習には良かったのかもしれません…。


夢はゲームクリエーター&進路決定

この頃、僕の夢は「ゲームクリエーター」でした。
良くある「ドラクエマリオを作りたい」ではなかったです。
何故かと言うと、この当時はRPGゲームをやったことが無かったから。
今も、ドラクエとFFはシリーズをプレイしたことが無いです。何故か…

でも、ファミコンやスーパーファミコンのゲームは遊んでいました。
格ゲーブームで、駄菓子屋にあるゲーム筐体に小遣いを注ぎ込んだこともあります。

その体験から「こんな楽しいゲームを作る人に、僕もなりたい」と考えました。
当時の雑誌に[ゲーム専門学校]の広告が定期的に載っていた、というのもあります。

ですがそれ以上に。
同じ部活の同級生が「ゲームクリエーターになる!」と豪語していたのがきっかけでした。
それまでは「ゲームを作る仕事がある」だなんて意識もしていなかったのですから…

そして、2つ上の同じ部活の先輩が、情報系の学科がある工業高校へ進学したのを見て、
僕もそこの高校へ行きたい!と目標を立てました。

「今ひとつ学力が足りない」と言われながらも、なんとか希望の高校の希望の学科へ進学しました。
「今ひとつ」といいながら、その壁は相当高かったらしく…
当時、中学校で僕に関わっていた先生が「希望の高校へ進学したのは知っていたが、希望の学部へ進学したとは思っていなかった」と素敵なコメントを卒業時にして下さいました。

中学当時の僕の将来設計:

  • 工業高校の情報系学科へ進学
  • 東京のゲーム専門学校へ進学
  • ゲームクリエーターになる!


情報系の工業高校での出会い

前述の進路は、高校入学前にあっさりと崩れました。
入学前の保護者向け学校説明会で、母親が

「専門学校で学べるレベルの学習は、高校在学中でやる。専門学校は無駄」

というありがたいお話を先生から引き出し、僕に伝えてくれました。
「高校で学んだ事以上の事を学びたかったら、大学へ行け」と暗に言われた様です。


そんな高校ですが、ウチのクラス、スゴイい人達が揃ってました。

  • ベーマガ投稿の人。C言語で関数定義知らずにゲーム作ってた剛の者。
  • 在学中にDirectX触って、シェーディングプログラム始めた人。(↑と同一人物)
  • Nifty掲示板の常連。マニアックな知識の宝庫の博士。
  • 在学中にLinuxに興味持って、カーネル解読始めた人。
  • 卒業制作で、CUIベースの2人対戦通信麻雀作った人。(牌はAA)
  • 超理論派少年。ロジカルシンキングの塊みたいな人。

他にも色々…
これ、2000年より前の出来事なんですよ?
正直、今振り返っても意味不明過ぎて、どう凄いのか説明がうまく出来ません!!

結局何が言いたいのかと言うと。
褒め言葉としての「頭オカシイ」。そんな人間の巣窟みたいな環境でした。※2

その中で、僕は、僕自身は、ただの普通の人間なんだと。
僕自身にも色々と原因はあるんでしょうが、第一線を走る人間ではないのだと。

挫折とは違うのですが、そういう事を、この時強く心に刻んでしまいました。

そして、ゲームクリエイター夢も、いつしか自然と向かなくなりました。


ところで、この文章を読んで「お前、○○高校じゃね?」と思った方。僕の当時を知っている方。
気軽にコメント下さい。「非公開希望」と書いて下されば、コメントは公開されません。
本名晒してるから、分かってますよね?


情報系の工業高校で学んだこと

そんな人達の凄さを見せ付けられながらも、高校ではしっかりと学んでいました。

中でも、ある先生に言われた2つの言葉は、今でも僕のエンジニアとしての核になっています。

「パソコンに使われる人間になるな。パソコンを使う人間になれ」
「コンピューターは間違っていない。正しく動かないのは自分が間違えているからだ」

マインド的な事以外に学んだ技術はこんな感じです。

  • UNIXによるCUIでの操作
  • C言語をみっちり
  • Z80でアセンブラ触る
  • 電気とか電子とかガッツリ
  • LANとかLinuxサーバー設定とか

この中で、幾つか運が良かったと思える事があります。

C言語を学べた → 1年前からFORTRANからCへ学習環境が変わった
LANやサーバー設定とか → 丁度、学校内のLAN環境の更新時期だったので体験できた

総じて、中学時代に体得したモノを、3年間掛けて基礎からしっかりと叩き直されたと感じています。
逆に「基礎だけなら完全に収めた!」と自惚れる結果になっていたわけですが…

その辺りは、就職してから思い知る事になるのでした…



※1:正確には「LogoWriter2」という名前のソフト。
LOGO言語を日本語で扱えるようにしたソフト

現在は、ロゴライターWin4が販売されているらしいが…


※2:今でも、そうらしい。
たまーに、母校のWebサイト覗くと、理解が追いつかないです。


Comment(0)

コメント

コメントを投稿する