kolmas.tech note

雑記と思索、偏った技術の覚え書き

私のプログラミング遍歴:前史〜高校生

野良プログラマ名乗っているので、その遍歴をまとめておく。

前史

  • 1989年生まれ1
  • はじめて触ったコンピュータはスーパーファミコン、次いでゲームボーイカラー2
  • 小学校のパソコン室にはWindows 95TRON系のOSが物理スイッチによる切り替えでデュアルブートできるパソコンがあった。
    • 朧げな記憶で、しかも当時は全く何も知らない子供だったので、型番など詳しくは全く覚えていない。TRONというものが何なのかも当時は知らなかった。デュアルブートなんて言葉も当然知らなかった。
      • ただ先生が「トロン」と言っていたので、そういう名前のものなんだとは思っていた。
    • 「インターネットを使って何かを調べてみましょう」的な授業があった気がする。

中学生(2002〜2005年)

  • パソコン部に入る。
    • そのパソコン部は、顧問の先生はいるもののはっきり言って放任状態で、学生は当時隆盛を極めていたFlash動画を見たりFlashゲームをしたり、フリーゲームをダウンロードして遊んだりしていた。
      • 学生が学校のパソコンで勝手にフリーゲームダウンロードして遊ぶとか、今の感覚からしたら絶対にありえない光景であった。
    • パソコン室のパソコンの半数にはRPGツクール2000が入っていた。好きなゲームを自分で作ることができる、ということに感動してちょくちょく触っていた。
      • 小さい頃から何かを作ることが好きだったが、手先が絶望的に不器用だった。でもパソコンを使って作れるものなら、キーボードが使えさえすれば作れるということ4に気づく。
      • なんでこんな遊びに近しいものが学校のパソコンに入っているのか、と当時は思っていたが、今から思えばイベント5の設定内容は順次・分岐・反復というまさにプログラム実行の三要素を含んでいて、プログラミング的思考を遊びながら身につける教材として優秀だったのだと思う。
    • 後半の頃には、同じ部活の友人に触発されてHSP6を使ったプログラミングをかじっていた。見様見真似の独学で、ろくなものは作れなかったが。
    • あとは、他の学生の例に漏れずゲーム7などして過ごしていた。
  • 三年の夏頃に部活が終了してからは、しばらくパソコンに触れる機会はなかった。
    • それ以前から、四つ上の姉が大学受験に大層苦労していたの見ていて、そうなりたくないという不純な動機で高大一貫校を目指していた。元々の両親の教育方針もあって塾通いなど忙しい日々だった。元々規制が強かったゲームはこの頃は完全に無。
      • 風呂上がりに扇風機で涼む時くらいしか自由時間はなく、その間、件の姉8が持っていたHTMLとCSSの分厚い本を読んでいた。

高校生(2005〜2008年)

  • 初めて自分専用のパソコンを手に入れる。当時の一般的な電器屋で売られているノートパソコンとしてはそこそこ高性能な部類。OSはWindows XP
  • Javaに手をつける。
    • 件の姉が大学でもらってきたというSun Microsystems編のJavaの教本9が家にあったのがきっかけ。それを読んだり、ググったりしながら、あてもなくプログラムを書いていた。
      • あてもなく、とはいえ、一応「ゲームを作ってみたい」という欲求はあった。初学者には難易度が高過ぎたが。
    • 当時どんなものを作っていたのかは最早覚えていないが、闇雲でありながらも、一応Swingを使ったちょっとしたGUIアプリケーションを作れるくらいにはなっていた。
      • 変数や関数10の考え方、基本的な制御構文などは理解していたように思う。
      • ただ、サンプルプログラムありきの改造で諸々のプログラムを作っていたため、意味が全く分からない所がたくさんあった。
        • 全く分からなかったものの典型的な例はstaticキーワードの有無、ひいてはnewの本質。オブジェクト指向の理解が根本から抜けていた。
    • 折角だから何か資格を取ろうと思って勉強した基本情報技術者11の教本で、ようやくオブジェクト指向的な考え方とJavaにおける対応記法を理解する。
      • これまで書いていたプログラムで所謂「おまじない」だった部分が頭の中で簡明に整理され、理屈で説明できるようになる。まさに開眼という感覚。
      • これでJavadocを読めるようになり、作れるものの幅がサンプルプログラムの応用を脱する。
  • Javaの他に新たに手をつけたものにはPHPがあった。
    • 中学生時代末期に本を読んで妄想していたHTMLとCSSによるウェブページ作りも、試しに色々やってみていた。
      • そうすると、俄然サーバサイドもやりたくなってくる。尚、なぜPHPを選んだのかは覚えていない。
    • しかし、自分でウェブサーバを世界に公開する知識とリソース、ひいては度胸、はまだ無かった。
      • 自分のパソコン上でApacheを走らせて遊んでいた。
    • この辺りの成果は、当時役員をしていた生徒会のウェブサイト構築として一応は結実する。
      • 今の感覚からしたら目も当てられない酷い構成12ではあったが。
      • しかしそれ以来、なぜか一度もPHPを書いていない。
  • 一部上述したが、折角だから何か資格を取ろうと思い立ち、結果、初級システムアドミニストレータ基本情報技術者情報セキュリティアドミニストレータの三資格13を取った。
    • ただ勉強して資格を取っただけでは実務的なことにすぐには直結しない、ということは大学生時代に知る。とはいえ関連する話題を大雑把とはいえ幅広に理解する、という点においては、結果的にとても役に立った。

大学以降に続く

blog.kolmas.tech


  1. 平成元年。高校や大学で複数年次の学生が属するグループ(生徒会とか、研究室とか)に入った時は、ついに平成生まれが来た、とか言われたもの。そのうち令和元年生まれがそう言われる時が来るだろう。
  2. これらゲーム機をコンピュータというなら他の様々なものにも当時からコンピュータは入っていただろうよ、というのが厳密には正しいが、ここは、コンピュータの仲間であると当時自覚していたものという定義による。
  3. 最近はやってる暇がないものの、今でもゲームは好き。子供の頃に強く規制されていた好きなものは大人になっても好きなものであり続ける、というのは正しいと思う。
  4. もっとも、自分でオリジナルなゲームを作るなら、絵を描くとか音楽を作るとか、その手のセンスが必要なこともできなければならない、ということにも早々に気づく。
  5. RPGツクールの「イベント」とは、分かりやすい例としてはRPGのマップ上のキャラクターに話しかけた時に実行される処理などといったもの。
  6. Hot Soup Processorの略で、Basicライクなプログラミング言語。スープカップのアイコンが懐かしい。まだあるのね。hsp.tv
  7. 一番印象に残っているのは「喰人王」というタイピングゲーム。これもまだインターネット上に存在していたのか。mclover.hateblo.jp
  8. 大学でコンピュータを触り始めていた。専門にはしていなかったが。
  9. その本は大学院生時代に後輩に貸したのを最後に、どこかにいってしまった。
  10. Javaにおいては「メソッド」であるが、オブジェクト指向の理解はこの段階では得ていなかったので、ここではあえて「関数」と書いておく。
  11. 当時の情報処理技術者資格試験の体系におけるもので、現在のものとは異なる。
  12. 幸にして現存しない。
  13. 当時の情報処理技術者資格試験の体系におけるもので、現在のものとは異なる。大幅な資格体系の変更があったのが、ちょうど情報セキュリティアドミニストレータを取ってからすぐの頃だったと記憶している。