2006-08-04
勉強が出来ない奴はプログラマになれ!(バカだからできる勉強法)
どのくらいの人がこのブログを読んでいるか分かりませんが、
もし、勉強が出来ない人が周りにいたら、このブログを紹介してあげてください。
ふと
勉強が出来ない人は、プログラマになったほうがいいと思った。
僕はというと
自分でも驚くくらい勉強というものが出来ない。ものごとを知らない。
はっきり言ってバカなのである。
たとえば、
- 大学行ってない。
- 株式公開と上場の違いを知らなくて、一同ぽかーん。
- つい最近まで、サイバーエージェントを知らなかった。(技術者には必要ない)
- 英語が一切読めない。
- 宮崎料理「冷や汁」を「冷や飯」だと思ってた。
- 基本的に会議とかでよく出る英語、「さじぇっしょん」とか、「あさいん」とか、「ぶらんでぃんぐ」とか、「うぇぶつーぽいんとおー」とか、よく分からん。
- 人力(じんりき)検索を入力(にゅうりょく)検索だと思っていた
たぶん、まだまだあるけど、自分がバカだから気がつかないんだと思う。
でも、
とくいなこともある。
それは、人に優越感を与えること(笑)。
それとプログラミング。(まだまだだけど、得意といえば)
というわけで
僕の(勉強できない人向け)プログラミング学習法を紹介したいと思います。
1.朝起きたらケータイで「はてなブックマーク」の昨日の人気エントリーを見る。
勉強も出来なくてプログラミングを知らない人は、まず「はてなブックマーク」を知って欲しい。
世の中の流れがバカなりに分かる。
これから流行りそうなものを見つけられる。
朝から PC はダルいのでケータイで。
2.教材はオープンソースなフレームワークやライブラリ
まず、自分の教材とするフレームワークを決める「Ruby on Rails」とか「prototype.js」とか「Catalyst」とか、「Dojo」とか、「Simphony」とか、「Seaser」とか、
決める基準は、まずオープンソースであること。
次に、1.であげた「はてブ」で良く出てくるけど、あんまり具体的な情報がないもの。
3.教材が決まれば言語が決まる
僕の場合は最初は「prototype.js」で JavaScript を学び。
4.言語の基本の文法をマスター
これは、人によるけど一ヶ月くらいかな。
5.実際に例とかをコピペして何か作ってみる
ドキュメントは最低限しか読まない。
ドキュメントは勉強できない人には理解できない。
ドキュメントには書いた人が大事だと思うことしか書かれていない。
6.仮説をたてる
なぜ、こう書いたらこういう風に動くのか。という風に。
自分なりに仮説を立ててみる。
ここでいう、仮説のことを僕は「イメージモデル」と言っています。
この「イメージモデル」が一番大切なのです。
7.ソースがどこにあるか知る
イメージモデルが出来たら。フレームワークのソースがどこに配置されているのかを知りましょう。
たとえば、prototype.js なら script タグの src にある。 Perl CPAN なら、大抵、/usr/lib/perl5/site_perl にある。
Java や C だったら、ソースをダウンロードしてきて、自分でビルドして動かせるようにしておく。そうすればソースは手元にある。
8.フレームワークの入り口を見つけて突入する
呼び出している関数や、継承しているクラスや、フレームワークへの入り口である。
そして、そのフレームワークのソースをそこから読む。読む。ひたすら読む。
ドキュメントは読んでも理解できないし、大抵英語なので時間の無駄です。
9.必ず分からない箇所がある。
分からない箇所には二つの種類がある。
- 文法が分からない。
- ややこしくてよくわからない。
文法が分からない場合は、もう一度よく勉強しましょう。
ややこしくてよく分からない場合は、以下のように解決します。
- ややこしい部分を等価の式に分解してどんどん自分の読みやすいように書き換えてしまう。
- 式に分解したあと、一度動くことを確かめる。
- そのあと、print文を挿入したり、デバッガで追いかけたりする。
例:
var SomeClass = Class.create(); SomeClass.prototype = { initialize: function(options){ Object.extend( this, Object.extend({ property1: 1, property2: 2 }, options || {}); ); } };
ほぼ等価↓↑
var SomeClass = Class.create(); SomeClass.prototype = new Object(); SomeClass.prototype.initialize = function(options) { if(options.property1 != undefined) { options.property1 = 1; } if(options.property2 != undefined) { options.property2 = 2; } this.property1 = options.property1; this.property2 = options.property2; }
ここで、ふたつ格言。
フレームワークを書き換えることを恐れるな!
等価式を見つけることがプログラミング上達の肝!
10.イメージモデルの破壊、再構築を繰り返す
そうして、自分のそのフレームワークに対するイメージモデルを切磋琢磨していく。
出来たイメージモデルは言葉では表せない右脳的プログラミングセンスとして、あなたに蓄積される。
以上。おしまい。
この勉強法が勉強できる人に出来ない理由
会社でも、勉強が出来る人はドキュメントばかりを読んでいる気がする。
持たざるものは進化する。
勉強のできない人へ
プログラマになりましょう。
- http://d.hatena.ne.jp/nouse/20060804
- http://d.hatena.ne.jp/kinneko/20060805
- http://d.hatena.ne.jp/textfile/20060805
- http://d.hatena.ne.jp/kidd-number5/20060805
- http://d.hatena.ne.jp/argius/20060805
- http://d.hatena.ne.jp/kab_studio/20060805
- http://d.hatena.ne.jp/nonomachon/20060805
- http://d.hatena.ne.jp/dk19810313/20060806
- http://d.hatena.ne.jp/m_konno/20060806
- http://d.hatena.ne.jp/hatayasan/20060806
- http://d.hatena.ne.jp/satojkovic/20060806
- http://d.hatena.ne.jp/dacs/20060807
- http://d.hatena.ne.jp/seiunsky/20060806
- http://d.hatena.ne.jp/babie/20060807
- http://d.hatena.ne.jp/LazyCoder/20060807
- http://d.hatena.ne.jp/izuguchi/20060807
- [仕事] フレームワークを使って学習する
- http://d.hatena.ne.jp/amachang/20060814
- エントリー
- IT系ビジネスBlogのSEOとCGM
- http://d.hatena.ne.jp/gedan/20061016
- 勉強できない人向けプログラミング学習法
- hamastaの日記 ??Pythonで学ぶプログラミングの世界?? - [programmi...
- 第101回目はネットのお役立ち情報??4月1日はあの日
- おれもぶっちゃける!! Yoshiori の WEB 標準まとめ
- http://d.hatena.ne.jp/Tatibana/20070806
- 画竜点睛
- technacの日記 - すげー感動した
- Webプログラミング能力認定試験に意地でも受かるブログ - この資格...
- 出力日記 - Prototype.jsを勉強する(1)
- タイトル未定 - 勉強法を考える。
- 徒然ならぬ日々 - プログラミング系ブクマ
- i2frame blog - 万が一PHP勉強するときのためのメモ
- 勉強が出来ない奴はプログラマになれ! - バカだからできる勉強法 -...
- 遥か彼方の彼方から - 勉強が出来なくても小説が書けるようになる方...
- ウィクリーえがちゃん - 1201997518*ネタ
- Re:えがちゃんは凄いよ - IT戦記
- 牌語備忘録 - 今年一年の自分のプログラミングまわりを振り返ってみ...
- これはえがい開発日記@サブブログ - やりたいネタ(2009/01/03に新...
- 文若のダイアリー。 - 2009年に実践したいライフハックまとめ
- akatsuki7dnの日記 - 自分を奮い立たせる為に
- Yuki_Aの日記 - 飲み会
- Yuki_Aの日記 - 飲み会
- Yuki_Aの日記 - 飲み会
- kobayoungの素 - 好きなサイト(その他)
- レファレンス的雑記帳 - はてなで働きたいから。
- レファレンス的雑記帳 - 遅延評価勉強法と100日プログラミング
- レファレンス的雑記帳 - プログラミング言語を習得するためには
- duck75の限りなく高等遊民に近い起業日記 - 遅延評価勉強法について
- tosh_log - 勉強が出来ない奴はプログラマになれ!(バカだからでき...
- にょきにょきブログ - 「60%の人間はプログラミングの素質がない」...
- laiso - プログラマが体験するべき○つのこと
- 402 http://b.hatena.ne.jp/
- 346 http://www.hatena.ne.jp/
- 285 http://b.hatena.ne.jp/hotentry
- 199 http://reader.livedoor.com/reader/
- 146 http://morino.itigo.jp/
- 124 http://d.hatena.ne.jp/
- 117 http://b.hatena.ne.jp/entrylist?sort=hot
- 87 http://secure.ddo.jp/~kaku/tdiary/
- 34 http://www.google.co.jp/ig?hl=ja
- 27 http://b.hatena.ne.jp/hotentry?