こんにちは。技術記事を書こうとしつつも無理そうなので開き直ってこの記事を書いてみたebiです。
お題に沿って書こうとしたらインターネット老人会みたいな記事になっちまったな、なんて書き出しから始めてたら「インターネット老人会」なるアドベントカレンダーを先日見かけて思い切りネタ被りしてますが気にしないことにします。
また、タイトルは月ノ美兎さんの「みとらじ(月ノ美兎のギャラクティカラジオ)」の一コーナー「あなたのインターネットはどこから?」のもじりです。
こう言う記事を喜んで見る人は懐かしさを感じるかもしれないので良かったらそちらもどうぞ。
PC遍歴の振り返り
僕は入社までのプログラミング経験だけで言うと、正直あまり大したことやってないので、PC遍歴から記述してみることにしました。
原体験の幼年期~
僕が生まれる前は家族が東京に住んでいたことや、一回り近く年の離れた兄がいたと言う境遇もあって、田舎暮らしだった割に古き良き娯楽品が身近に多かった気がします。
そして丁度今シーズンの某アニメでも熱を上げて取り上げられているPC-9800シリーズの機体が家にはあって、幼き頃にそれを触る機会があったのが僕のPC遍歴の原点かもしれません。
とは言っても、年齢的な関係もあり幼稚園に入るか入ってないかの時期しかまともに触ってなかったので、実際にPC-9800シリーズで遊んだゲームの記憶は凄く断片的です。
そこそこ色んなゲームをプレイしたはずだけど、幼年期の記憶ゆえにタイトルとかまでは全く覚えておらず、まともにプレイしたことがあると自信を持って言及できる作品と言えば、ふしぎの海のナディアのアドベンチャーゲームとかRPGツクールとかその辺くらいです。
使わなくなってからも実家に長年置き去りにされてたのを、いつまでも残っているかも怪しいしと、ある年の帰省時期に撮影したのがこちらです。画質が終わってるしお見苦しいもの見せてすみません。
分かりやすいロゴを撮っておけばよいだろうと撮影した「PC-KD852」の文字はPC-9800シリーズの機体本体ではなく、ディスプレイの方でしたね。近くに本体もあったのだろうか……。
(ところで今読み返してみると okada.ken さんのPC-9800シリーズ記事の写真の方に「PC-KD854」とニアピンな型名記載が写ってますね。なんか感動……!!)
放課後長時間PCと戯れた小学生時代~
恐らく小学生にはなっていただろうある日、我が家に初めての現代的なPCとしてiMacが導入されました。
最初はぷよぷよ通にハマったり、沢山のミニゲームが入ったソフトでのゲームプレイに良く利用してた記憶がありますが、最終的には専らインターネット利用が中心になってきました。
設置当初はダイヤルアップ接続でインターネットに繋ぐことになったので、例の効果音や電話の受信でネット回線が切れると言うあるあるネタも経験しました。
分かりやすく覚えている記憶だと、少し前にとうとう更新が止まってしまったもののサイト自体は今も生きているドラゴンクエストのファンサイトをお気に入り登録してました。
一時期はそのサイトからのサイト間リンクで色んなサイトを巡ってたはずです。由緒正しきネットサーフィンって奴ですね。
そのサイトなどの掲示板に入り浸った時期もありました。当時のファンサイト系の掲示板って投稿すればするほど経験値とかが増えて称号や専用アイコンとか貰えませんでしたか?
ガキなのでそれを超素直に喜んでた気がします……(遠い目)
その内、どこかのサイトきっかけに配布型CGIゲームを嗜むようになって、色々やりましたが最終的には「The Wars of Roses(WOR)」シリーズにハマって、併設されたチャットルームも良く利用するようになりました。
ネットサーフィンやゲーム内でのコミュニケーションのため、最初は我流で身につけたタイピングでしたが、その内にタイピングゲームをいくつか触ったりして今に繋がるタイピング技術のベースを身につけました。
先日、なにかの動画でふと思い出したのですが、一時期に流行ったらしいポストペットそのものを触ったことはなかったものの、そのキャラが登場するタイピングゲームがPCに入っていてそれにハマっていました。
(いま調べてみたら「打モモ」ってソフトだと思う。古の記憶も意外と調べれば分かるもんだ)
小学校高学年くらいになると周りでPC触っている友達も増えてきて、メールを送り合うようになったり、ぱどタウンみたいなサイトに登録したり、と実際の知り合いとPCを利用しての交流も生まれ出しました。
ネット文化にハマる中学生時代~
この時代になっても飽きずにWOR、もといFarland Historyに興じていたのですが、そんな時に出会ったニコニコ動画の存在は一つの転換期だったように感じます。
僕はなんだかんだで初めて作成したニコニコ動画アカウントをいまだに使い続けているので、確認すればすぐにどの時代に作成されたアカウントか分かるのですが、
何を隠そうそのアカウントはニコニコ動画(夏)と言う四季と連動した短いバージョン期間に作られており、これは僕が中学3年生で部活を終えて、暇を持て余すようになった夏休みのタイミングであったのが凄く分かりやすく記録されています。
ニコニコ動画を知ったのは恐らくこの更に前の年に帰省していた兄きっかけで、の◯太戦記か何かの動画をリビングで見ていたのを見て、なんだあのサイトと動画は、と後から調べたからだったと記憶しています。
ニコニコ動画(夏)は「ニコニコ動画流星群」のようなニコニコメドレーがランキング上位にいた時代だったので、その辺りでニコ動文化を後追いで身に付けつつ、主にはゲーム実況やプレイ動画を視聴していました。
プログラミング遍歴の振り返り
初めてプログラムを動かした高校生時代~
ある日、帰宅部で時間を持て余していた僕は本屋さんでプログラミング系の書籍を購入しました。まだ実家に実物が置いてあるはずですが、気の抜けたキャラの挿絵が付いた初心者・入門者向けのありふれた書物だったはずです。
その本で扱っていたプログラミング言語はJavaで、お馴染みの文法を一通り学習した後、じゃんけんゲームやおみくじゲームと言った、ありがちなソースコード例が紹介されている感じでした。
それらを写経しつつ、ちょっと設定値を変えて挙動を変えてみたりしながら一冊分の学習をとりあえず終えた後……
だからと言ってこの知識をこれからどうすれば良いのだ?
とやることが尽きて、すぐに飽きたと言うか、その次にやってみることが何もなくて僕の初めてのプログラミング体験の時期はあっという間に終わりました。
センター試験への応用
正確には、これで完全にプログラミングとの縁が切れたわけではありませんでした。
と言うのも、僕の時代に実施されていたセンター試験の数ⅡB試験においては、冊子の一番最後にプログラミング系の選択問題があったのです。
その選択問題ではJavaではなくBASICを基準とした文法が使われていましたが、基本的なプログラミング文法の雰囲気は共通していたため、適当に過去問を回答してみた感じこれなら解けそうだと感じ、模試などでは表立って解けないにしても密かに本番向けの選択肢として取り入れたのでした。
Rubyとのニアミス
ところで先に触れたニコニコ動画において、RPGツクール系の動画を良く見ていた関係である時、自分もツクールをやってみたいぞ!と思い立ちました。
今のRuby界隈にこの事実をご存じの方がどの程度いるかは分かりませんが、当時のPC版のRPGツクールにはRGSSと言うRubyがベースのフレームワークが搭載されていたのです。
(そして当時の「るびま」にも取り上げられていたようです)
そのため、Rubyと言うプログラミング言語の存在を僕はこの知識を通して知っていて、先ほどのJava本を購入した経緯とも関係していたかもしれませんが、詳しい経緯はもう覚えていません。
しかし、思い立ったは良かったが哀しいかな。当時の僕が過ごしていたのは市場の小さな宮崎県。
自転車をこいで近所のデオデオや100満ボルト、ヤマダ電機と言った家電量販店を巡ったのですが結局探し求めていたパッケージを見つけられず、ネットや店頭取り寄せで注文する度胸や発想を持ち合わせていなかったがために計画は頓挫したのでした……。
(そもそも当時は古いPCを自力でメモリ交換したりしつつ騙し騙し使っていたので、システム要件をまともに満たしていたかも怪しいですが)
不真面目な一情報系大学生時代~
この振り返りを機に試しに大学入学年度の学部要項を検索してみたのですが、普通にネットに公開されてました。
引っ越しの際に捨てたら二度と巡り合えないんじゃないか、もったいないかな、とか悩んだ末にボロボロの学部要項を一応は段ボールに詰め込んで実家に送ったまま封印されている気もするんだけど、あの葛藤はなんだったんだ……?
しかもなんだったらシラバス検索から過年度の各授業概要や計画を見返すこともできる。大学って凄いですね……!!
必修科目のC言語経験
本題に戻ると、僕が入学した大学の学科は情報系特化ではなかったのですが、情報系も一部混ざった複合学科だったので、プログラミングの必須科目がありました。
学籍番号か何かでクラスが「Cプログラミング」か「Javaプログラミング」に機械的に振り分けられ、僕は「Cプログラミング」の方でした。
学期の開始直後やテスト直前になると、Javaの方が簡単だったのにって声が周りから聞こえてきた気がします。
地方から上京してきたばかりで、過去問や授業資料を継承していく文化があることすら全く知らない情弱の僕はそんなこといざ知らず、大人しくポインタだのバブルソートだのと言った一通りのCプログラミングの基礎講座をこの時に形式的に受けました。
選択科目でのRuby経験
2年生以降では選択の専門科目として、いくつか情報系の授業を受けました。
そんな中「プログラム設計とアルゴリズム」と言う授業において、外部講師の方が授業で採用していた言語がRubyでした(学科内の研究室としてRubyを積極的に使っていた例はなかったんじゃないかな程度の意です)。
この時がRubyでのプログラミング初体験となります。
ただ、この頃になると、すっかり僕は立派な(?)不真面目大学生になっていたので、授業出席が必須ではなく授業資料や教科書を読んで進められそうな授業のほとんどを欠席するようになっていました。
この「プログラム設計とアルゴリズム」の授業も資料を最初や途中で渡しつつ、あとは複数回の中間レポートとしてファイル成果物をWebシステムから提出するような形式だったので、そこさえこなせれば良いと早々に理解した僕は積極的な授業参加をしてません。
それでも、この授業を受けていて印象に残っている部分がありました。
最終的な題材が見た目の動きで分かりやすいサッカーをこなすプログラムだったのと、これを一から作るのではなく、ベースとして動かせるようになっているパッケージ群を与えられて、そのままでは団子サッカーしかできない選手の動きを定義する思考プログラムだけを改良させる形式の課題だったことです。
当時のソースコードも手元に残っているのですが、改良部分とは言え勝手に晒すわけにもいかないので、GKやFW、MF、DFの役割を番号に従って配分して、選手ごとに動ける範囲とかを定義した、とだけ言っておきます。
(実際に動かそうとちょっと試してみたけど、古めのライブラリ利用とかLinux系のデスクトップ環境でないと動かせない雰囲気のせいあって記事公開に間に合わず断念)
また、せっかくなので発掘した該当授業のシラバスのスクリーンショットも載せておきます。
オブジェクト指向や継承も取り扱っていたようですが、その辺りの基礎知識の記憶が微塵もありません。不真面目な学生でごめんなさい。
スクリーンショット引用: 早稲田大学 シラバス詳細照会 > 過年度シラバス検索
内定後のWeb開発の勉強
成績とか人気度の都合もあり、成績順に決まる研究室選びの時に情報系の研究室を選ばなかったので、半導体などの電子工学寄りの研究室にいました。
その際に、いつ作られたかも分からないスクリプトがHTMLタグを自動生成してアップロードしてくれるような方式で更新しているホームページの管理係程度はやっていましたが、研究室時代はまともにプログラミングをやっていないのでBPSへの内定後まで時を飛ばします。
内定までの経緯は以下で書いてるので割愛します。
さて、IT系の会社に入社が決まったとは言え、以上の経験からすると流石にWeb開発などは未経験過ぎる状態でした。
そのため、内定までの期間に少しでも準備しておこうかなと思い、研究室の合間を縫って、応用情報技術者試験の勉強をしたり、HTML/CSS/JavaScript(jQuery)を使って簡単なテンプレサイトを作ってみる入門本を一つこなしました。
(余裕があれば入社までに何かWebサービスを一つくらい作ってみる?程度までのサポートやインターンの提案も出ていたのですが、流石にそこまで時間と気力を割く余力はなかったので最低限できそうな範囲で取り組みました)
まとめ
入社直後は、まずはRuby on Railsに拘らず、自社サイトなどのWeb開発全般で取り組めそうな案件から参加しつつ、足りない経験を業務を通して地道に補いながら、徐々にRuby on Railsの開発にも携わるようになりました。
以上の個人的な経験から言うと、学生時代にWeb開発やアプリ開発の経験があるに越したことはないですが、ないならないで仕方はないかなとは思ってます。
とは言え、僕自身も最低限のプログラミング経験はあって、明らかな向き・不向きの資質は事前に見極めていたつもりですし、PC利用歴は長くて未知のソフトやツールを自力で調べて、使いこなす経験は少なからずあったので、未知の領域をキャッチアップしていくにあたっての下地があったおかげでなんとか食らいつくことができたのかなと思ったりはします。
こうして過去を振り返ってみると、今から10年、20年経った時に今の当たり前が懐かしくなる時代が来ることが少し楽しみであり、不安でもありますね。
それでは次回は何かの技術記事でお会いできればと思います。