1976年生まれのプログラミング初心者のゲーム制作日記

ひょんなことからJavaでゲームを作ることになり、その過程を記しています。

オンラインで知った1人の人物のおかげで最初の壁を突破

初心者向けに書かれた本が難しくてもがいた自分は、オンラインでなにかもっとわかりやすく説明している場所はないかと探しました。

いろいろ検索しているうちにいろんな技術に関するビデオレクチャーを個人投稿するようなサイトにたどり着いたのですが、その中でこれはよいと思われる人物を1人発見しました。彼はアメリカ人で、年齢もまだ20代でした。そのサイトには本職のプログラマーから趣味でやっている人まで含め、Javaに関するチュートリアルビデオを投稿している人がたくさんいたのですが、その中でも彼の説明は自分にとってひときわ分かり易かったのです。

彼のレクチャーを見ることで、僕は簡単なプログラムの書き方を理解することができました。

彼のレクチャーが良かったのは、初心者がつまづく問題をよく把握していたからです。彼は初心者の思考が停止しがちなポイントでちゃんと立ち止まり、必要な情報や解決策を提供してくれました。

そして最も重要だったのは、彼がトライ&エラーのスタイルで解説してくれたことです。しばしば彼は失敗例を最初に書き、それを実行してうまくいかないことを見せ、その書き方だとなぜうまくいかないのかを説明し、正しい書き方にプログラムを書き直す、といったやり方を取りました。

自分の知る限り、こうしたレクチャーの投稿者や入門書の著者の多くは正しい(ちゃんと動作する)プログラムの文章だけを提示するというケースが多いように思います。当然ながら彼らはすでに答えを知っているので、その答えを起点にして僕ら初心者のいる場所まで道をつなげようとするわけです。

しかし学習している側にとっては道のりが逆になります。僕らは今いる場所から、見えていない答えに向かって歩き出すわけなので、当然間違った道に進んだり、道に迷ったりすることもしょっちゅうです。またいきなり正しい道を提示されても、なぜそれが正しいのか今ひとつピンとこないこともしばしばです。

この僕が見つけた彼のレクチャーが良かったのは、僕ら初心者の立っている場所から一緒に歩む形で説明しようとしていたことです。レクチャーの中で彼はしばしば意図的に間違った道を選択しました。なぜならそれが初心者が選びがちな道だったりするからです。たまに少しペースが速すぎると感じることもありましたが、大抵のケースにおいて彼の立ち止まる場所や提供する説明は非常にツボを心得たものでした。

教えている内容は他の方と同じでも、この些細なアプローチや想像力の違いが初心者には大きな差となることを実感しました。そして彼はどうしてこういうことができるのだろうと、少し不思議に思ったりしたのですが、彼のウェブサイトに行って自己紹介文を読んだときに、少し納得しました。

紹介文の中で、彼は自分がプログラミング学習者として劣等性であったことを語っていました。彼はアメリカの大学でコンピュータサイエンスを学習したようなのですが、まわりの人間はみんなできる人ばっかりの中(あるいは彼にはそういう風にみえた)で、自分だけ初歩的なことも理解できずにいて非常に焦っていたそうです。彼は講師の説明だけでは結局前に進めなかったので、僕と同じように様々なソースをあたって自分なりの学習法を模索し、どうにか壁を突破することができたそうです。

彼は学生としては劣等性だったかもしれませんが、その経験が彼を優秀な教師にしたのだと思います。彼よりもずっと知識があって、実績も立派で、概念やロジックを語るのは大好きでも、実際のステップを説明するのは下手な多くのプログラマーよりも、彼のほうが僕にとっては何倍も優秀な教師でした。

彼には今でもとても感謝しています。