プログラマーになるには

http://d.hatena.ne.jp/moto_maka/20101128/1290886142
http://d.hatena.ne.jp/JavaBlack/20101124/p1

「こんな高価で難しそうな本を読まないといけないの・・・?」

高価だとはぜんぜん思わないけど*1,答はYESです.

私はまずはC++を道具としてゲームを作ってみることが第一だと思います。
C++はCを含んでいますから、文法要素が多すぎて大変なら最初はCの範囲だけでもかまいません。

まあこれはいいかも.でもそうなるとEffectiveC++とかGoFくらいは最低限必要だよね.

C++実践プログラミング

C++実践プログラミング

C++ Coding Standards―101のルール、ガイドライン、ベストプラクティス (C++ in‐depth series)

C++ Coding Standards―101のルール、ガイドライン、ベストプラクティス (C++ in‐depth series)

Effective C++ 原著第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)

Effective C++ 原著第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)

新訂版 More Effective C++ (AddisonーWesley professional co)

新訂版 More Effective C++ (AddisonーWesley professional co)

  • 作者: スコット・メイヤーズ,安村通晃,伊賀聡一郎,飯田朱美,永田周一
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2007/06/29
  • メディア: 単行本(ソフトカバー)
  • 購入: 8人 クリック: 129回
  • この商品を含むブログ (44件) を見る
オブジェクト指向における再利用のためのデザインパターン

オブジェクト指向における再利用のためのデザインパターン

また、たくさんのことを覚えるよりも、やり方を自分で考える経験をたくさん積む方が大切です。

その中に「基本的なテクニックをマスターする」ことが含まれていて,その方法として最も安価で最も簡単な手段が本を読むということ,それも名著を読むということなんだよね.

たとえば「アルゴリズムを自分で創る能力」は非常に重要だけど,それを訓練するためには,まずは先人のつくったアルゴリズムや理論や,或いはソースコードを勉強するのが一番の近道です.より多くのアルゴリズムを学ぶことで,それを元にしたより優れたアルゴリズムが発明できるようになる.アルゴリズムを創る練習のためには「車輪の再発明」も大いに結構だけど,より良いプログラムを作るのには車輪の再発明は避けるべきだ.

(物知りは所詮物知りです)

無知はしょせん無知です.無知は無能で馬鹿の証明です.*2馬鹿な奴に仕事は任せられません.

単なる物知りなだけで仕事のできない奴もいるけれど,無知で仕事のできる奴はいません.

人間は必要性が納得できないと本当の意味で勉強することはできません。

「必要性」ねえ...「プログラミングが好きだ」で十分じゃないの.

むしろ「どこまで勉強せずにゲームを作れるか」と逆に考えた方がいいと思います。

怠け者の論理だし,それでいいプログラムができるわけでもない.*3努力する人なら専門書の5冊や10冊は読むし,読まない人は理由を付けては勉強をサボる怠け者ってだけ.*4


少なくとも,仕事をするのに「当たって砕けろ」はプロの姿勢じゃないな.そういうのは入社する前にやっておくべきです.

クイックソートで感動するには、クイックソートが必要な状況に出会った経験が必要なのです。

真に無知な人はクイックソートが必用な状況に出会っても,それがソートアルゴリズムの問題であるということにさえ気づかない.クイックソートが必用な状況で「こういう時にはクイックソートを使えばいいんだ!」と閃くためには,前もって数多くのアルゴリズムを学んでおく必用があるのです.

アルゴリズムイントロダクション 第1巻 数学的基礎とデータ構造

アルゴリズムイントロダクション 第1巻 数学的基礎とデータ構造

アルゴリズムクイックリファレンス

アルゴリズムクイックリファレンス


リンク先のYahoo知恵袋でさえも,ベストアンサーには,もうちょっとまともな回答も出てるのね.

1.とりあえずC言語。ポインタや構造体は完璧に理解できないとだめです。
1.5.DXライブラリの学習。ゲームプログラミングの楽しさを味わって下さい。
2.基本的なアルゴリズムとデータ構造の学習やデバッグ技法など。DXライブラリと並行で進めて下さい。
3.C++言語。最低限クラスは理解を
4.WindowsAPI(OSの仕組み)の学習。途中までで良いですがWindowsのメモリ、プロセス/スレッドは理解してください。
5.DirectXの学習。色々ありますので必要そうなのを。
6.ゲームアルゴリズム、数学、AIの学習。必要なものを自分でチョイスしてください。
7.リアリティのための3Dシェーダの学習。必要に応じて。最初はいらないです。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1438427284

http://b.hatena.ne.jp/entry/d.hatena.ne.jp/moto_maka/20101128/1290886142

  • id:r-west 危険。勉強サボる理由に使われそう。体系的理解は強力な武器で、本を読まずに得るのは難しい。一人でやってたら視野が狭まって間違った独りよがりに陥る危険。勉強と手を動かすのと両輪ともに必須と読むべき

まったく同感.


そういえばこんな人もいたなあ.

「ポリフォーフィズムという言葉が流行はじめたのは、Perfumeがポリリズムという曲をリリースしたころですか??? なんか言葉が似ているから若者の間で浸透したんじゃないの??」

http://el.jibun.atmarkit.co.jp/minagawa/2010/04/post-ebc4.html

という迷言は,まともな本を一冊でも読んで理解していたら,絶対に出るはずがないものです.これこそまさに「視野が狭まって間違った独りよがりに陥った人」ですね.

http://d.hatena.ne.jp/minekoa/20101127/1290953991

ちょっと追記

結果、床が抜けそうですし、万年貧乏だったり。

というわけでAmazon Kindleには期待してます.*5

C++ の必読本は簡単にいえば C++ in-Depth シリーズ全部なのですが、それはプログラミング言語的に普通のことではなく、 C++ がおかしい、ということは忘れてはいけないと思います。

さすがはC++.他の言語とは一味も二味も違いますな.*6

ためしに検索してみた.

C++ Coding Standards―101のルール、ガイドライン、ベストプラクティス (C++ in‐depth series)

C++ Coding Standards―101のルール、ガイドライン、ベストプラクティス (C++ in‐depth series)

Modern C++ Design―ジェネリック・プログラミングおよびデザイン・パターンを利用するための究極のテンプレート活用術 (C++ In‐Depth Series)

Modern C++ Design―ジェネリック・プログラミングおよびデザイン・パターンを利用するための究極のテンプレート活用術 (C++ In‐Depth Series)

Essential C++ (C++ IN‐Depth Series)

Essential C++ (C++ IN‐Depth Series)

Exceptional C++―47のクイズ形式によるプログラム問題と解法 (C++ in‐Depth Series)

Exceptional C++―47のクイズ形式によるプログラム問題と解法 (C++ in‐Depth Series)

More Exceptional C++ さらに40のクイズ形式によるプログラム問題と解法 (C++ In‐Depth Series)

More Exceptional C++ さらに40のクイズ形式によるプログラム問題と解法 (C++ In‐Depth Series)

  • 作者: ハーブサッター,Herb Sutter,浜田光之,浜田真理
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2008/11/05
  • メディア: 単行本(ソフトカバー)
  • 購入: 2人 クリック: 32回
  • この商品を含むブログ (19件) を見る
Exceptional C++ Style―40のクイズ形式によるプログラム問題と解法=スタイル編 (C++ in‐Depth Series)

Exceptional C++ Style―40のクイズ形式によるプログラム問題と解法=スタイル編 (C++ in‐Depth Series)

Accelerated C++―効率的なプログラミングのための新しい定跡 (C++ In Depth Series)

Accelerated C++―効率的なプログラミングのための新しい定跡 (C++ In Depth Series)

C++ネットワークプログラミング―ネットワークアプリケーション設計に役立つACEとデザインパターン (C++ in‐depth series)

C++ネットワークプログラミング―ネットワークアプリケーション設計に役立つACEとデザインパターン (C++ in‐depth series)

  • 作者: ダグラス・C.シュミット,ステファン・D.ヒューストン,Douglas C. Schmidt,Stephen D. Huston,浜田真理,浜田光之
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2002/08
  • メディア: 単行本
  • 購入: 1人 クリック: 34回
  • この商品を含むブログ (11件) を見る
C++ Network Programming Volume 2: Systematic Reuse With Ace and Frameworks (C++ in Depth Series)

C++ Network Programming Volume 2: Systematic Reuse With Ace and Frameworks (C++ in Depth Series)

STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library (paperback) (Addison-Wesley Professional Computing Series)

STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library (paperback) (Addison-Wesley Professional Computing Series)

C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond (C++ In-Depth Series)

C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond (C++ In-Depth Series)

Boost Graph Library, The: User Guide and Reference Manual (C++ In-Depth Series)

Boost Graph Library, The: User Guide and Reference Manual (C++ In-Depth Series)

Applied C++: Practical Techniques for Building Better Software (C++ In-Depth Series)

Applied C++: Practical Techniques for Building Better Software (C++ In-Depth Series)

これで,いいのかな?

間違い探しみたいなタイトルだけでもなんとかならんものか.*7

*1:大学行ったら,いくら金かかると思ってんのよ. http://workingnews.blog117.fc2.com/blog-entry-3413.html

*2:時には傲慢で怠け者の証明でもある.

*3:その「最低限の勉強」とやらだけで,分厚い専門書の5〜10冊を読むことくらいは含まれているのだと,分かった上での発言なんだろうか?

*4:こういうのってゲーム会社のポジショントークじゃないかな.「分厚い専門書も読まなければならないし,英語も数学も必用だし,必死で勉強しないと落ちこぼれるし,それだけ頑張っても才能がない人はやっぱりダメプログラマなままだし,オマケに薄給激務で将来性もないよ」なんて本当のことを言っちゃうと,プログラマを死亡する 志望する人が減っちゃうからね. http://alfalfalfa.com/archives/1544597.html

*5:日本の出版社には何も期待してません.Amazonに市場を独占されるのを,指をくわえて見ていてください.

*6:それだけ異常に複雑な言語があればその複雑さ自体が実用言語としての致命的欠陥であり,普通は普及することなく消えていくのだろう.C++の最大の不幸は,それが普及してしまった時代背景ではなかろうか.

*7:そういう所まで無駄に混乱を招くのは,C++らしいと言えなくもない.