2010年11月28日
■[iPhone][開発] プログラマを目指す人が本を読む前に読むべきネットの記事
最近、プログラマ向けの書籍を紹介するのが流行ってたようで。
見習いプログラマが読んだら、すぐにジョブレベルが上がる10冊
きれいなソースコードを書くために読んでおくべき本10冊 - ひがやすを blog
Pythonのプログラマを志したおいらが買ってよかった5冊の本
「プログラマ向けの書籍」という点で言えば、
確かにこれらの本を読むといいのかもしれません。
ちなみに私はどれも読んだことないです。スミマセン。
ただ、一つだけ気になったのが、これからプログラムを始めて、
アプリを作ってみようと志してる方が、これらの記事を読んだ時に
果たしてどう思うんだろ?ってことでした。
「こんな高価で難しそうな本を読まないといけないの・・・?」
とか、思ってしまわないだろうか、と。
もちろん、そういう趣旨の記事ではないのは分かってるんですが、
そこが少し気になってしまったわけで。
もしそういう人がいたら、最初から引いてしまう必要はないですよ、
ってことで、それらの本を読む前に、まず読んで欲しい記事を紹介してみます。
ネット上の記事なので、もちろん無料です。
プログラマ、SE、ゲームプログラマについて - Yahoo!知恵袋
この、ゲームプログラマを目指そうとしてる方の知恵袋の回答に、
セガの平山氏の回答があって、この内容が本当に素晴らしい。
私も初めて読んだ時に感銘を受けました。
ちょっと長いですが、ここはあえて全文引用します。
「ゲームプログラマになる前に覚えておきたい技術」
http://d.hatena.ne.jp/asin/4798021180
を書いた者です。評判を検索していたところたまたま見つけたので、
これも縁かと思い書き込ませていただきます。
これは私の主観ですので、「そういう意見もあるか」程度に
思ってください。
私はまずはC++を道具としてゲームを作ってみることが第一だと思います。
C++はCを含んでいますから、文法要素が多すぎて大変なら最初はCの範囲
だけでもかまいません。
私が最初に参加したゲームはPS2のゲームでしたが、Cでした。
言語なんて道具なのでJAVAの方が良ければそれでもかまいませんが、
Cの方が「コンピュータってつまり何をする機械なの?」ということを
体で理解しやすいと思います。
また、たくさんのことを覚えるよりも、やり方を自分で考える経験を
たくさん積む方が大切です。
DirectXやOpenGLなどは所詮誰かが作ったプログラムにすぎません。
本質はそれによってどんな計算をどのような方法で行うかにあります。
Windowsだって誰かが作ったプログラムにすぎず、Windows上で動く
プログラムを作るためには「やむを得ず」覚えないといけないことが
いろいろありますが、やはりそれは本質ではありません。
VisualStudioの使い方だって同じです。極端に言えばC言語の文法すらそうです。
本質は自分が作りたいゲームをどうコンピュータで動く形で表現するか、
にあります。
だから、私はたくさんの本を読んで、たくさんのことを勉強することに
あまり意味を感じていませんし、
そうした人ができる人だという印象も持っていません
(物知りは所詮物知りです)。
「これが必要だからこれをまず勉強しないと」という考え方は、
挫折を招きやすく、もともとの目標を忘れさせます。
人間は必要性が納得できないと本当の意味で勉強することはできません。
むしろ「どこまで勉強せずにゲームを作れるか」と逆に考えた方がいい
と思います。
DirectXを勉強しないと3Dゲームは作れない、と言う人を私は疑います。
WiiやPS3はDirectXでは動いていません。あれは手段のひとつに過ぎず、
そもそもそんなものがなくても3Dのゲームは作れるのです。
その過程で「ああ、数学ってこういうふうに使うのか」とか、
「アルゴリズムってだから大切なんだ」ということが身に染みて
理解できるはずです。
数学やアルゴリズムやDirectXの面白くない本を苦労して読むのは
その後でも間に合いますし、その時ならきっと楽しく読めると思います。
また、本の良し悪しもよくわかるようになって、ハズレな本に
高い金を払わずに済むでしょう。
クイックソートで感動するには、クイックソートが必要な状況に
出会った経験が必要なのです。
その順序が逆だから挫折する人が多いのだと思います
(高校の勉強もそうですよね)。
あとは本の宣伝になってしまいますが、許してください。
私の本はそういった思いを本にしたものです。
DirectXもWindowsプログラミングも一切なしで、
可能な限り最短距離でゲームを作るための「計算の本体」を
学べるようにしたつもりです。
中身はDirectXで動いているので、付録のソースコードを見れば
DirectXの実際の使い方も勉強できるかと思います。
以上です。がんばってください。
簡単にポイントをまとめると以下でしょうか。
・やり方を自分で考える経験をたくさん積む
・人間は必要性が納得できないと本当の意味で勉強することはできない
・どこまで勉強せずにゲームを作れるか
すごくよく分かる内容ですし、私も同じように考えてます。
ゲームに限らない話でもあるでしょうね。
以下のようなのを書いたのも、そんな思いが理由の一つなのかも。
iPhoneアプリを作ってみよう:目次エントリー - もとまか日記
難しいことは後でいい、というか、後から読んだ方が分かりやすい。
大事なのは、とにかく手を動かしてみること、ですね。