この記事は https://www.quora.com/What-are-some-of-the-best-ways-to-learn-programming/answer/Roshan-Choxi より転載、翻訳をしています。素人による言語翻訳のため、翻訳された文章に誤りがある場合があります。あらかじめご了承ください。
私は 2 年間この質問に答える努力をしてきた。ここで紹介するものはどれも素晴らしいと思うよ。私は、成功した生徒が一貫して使っていた誰でも使える戦略が 3 つあると気づいたんだ。
- 目標ではなく習慣に没頭する
- 独学は辛い
- 作品を作る
メモ:これらの戦略は私が Quora で答えた他の質問を参考にした:Bloc についてどう準備すればいいですか?
目標ではなく習慣に没頭する
これは目標に集中するべきだという直感に反するだろう。でも聞いてくれ — これは目標を達成するために必要なんだ。まあとにかく、私と働く人はみんな、私が 1 日 3, 4 回「バットマン・ビギンズ」のラーズ・アル・グールのシーンを、オタクのように話していることを知っている。
Bloc の投資家たちは会議のはじまりにバットマンのシーンを見ることに退屈している。
ラーズはブルースにこう言った:
胸を擦れ。腕は気にするな。
もし習慣を作ることに集中して 1 週間で 20 ~ 30 時間のプログラミングをするなら、Web デベロッパーになるという目標は達成できるだろう。だが、もし目標に集中して Web デベロッパーを目指すなら、その数ヶ月はストレスと目標と後どれだけ離れているかという不安くらいしか得るものはないだろう。目標ではなく習慣に集中するんだ。胸を擦れ。腕は気にするな。
だから今 君がするべきこと:1 日 15 分プログラミングに費やす時間をカレンダーに書くことだ。15 分以上はダメだ。まずは 1 日 15 分計画したことを行うことに集中する。もし 1 週間毎日それができたら、1 日 20 分に増やそう。すぐに 1 日 1 時間にしたり、そういう自分の限界を超えるようなことはしないように。これは 10,000 時間のマラソンをすることなんだ。だから、まずはプログラミングをする習慣を作ることに集中する。何分やるかはそんなに重要ではない。重要なのは毎日続けることだ。
独学は辛い
私が Web 開発を学んでいる時、学習のために技術ではなくソーシャルな部分で大事にしたことがある。それはメンターを持つこととコミュニティに属することだ。
メンターを持つ
私は大学生のとき merge.fm という小さなスタートアップで働いていた。夏には、その会社の一人の共同創設者と共に働き、大学にいた時よりも多くのことを学んだ。知識のあるエキスパートと並んで働くだけで、君の学習は飛躍的に加速する。君は彼らが何を考え、君自身が何を知らないかを知ることができる。メンターシップは新しいことを学ぶための業界標準だったことには理由がある。効果的だからだ。
コミュニティに属すること
私が所属していた 2 つのコミュニティはイリノイ・アントレプレナーシップ・ネットワーク(私の大学の学生団体)とハッカーニュース(ハッカーやスタートアップの大きなオンラインコミュニティ)である。
ハッカーニュースにいた時は、オブジェクトやクラスについては学ばなかった。私は違う分野のものを学んだんだ。誰も JavaScript は好きではないことを学び、Rubyists はプログラミングのイケてる人たちだと学び、ブレッド・テイラー、リッチ・ヒッキー、そしてジョン・カーマックはプログラミングの神だと学び、そして、コーヒーについて真剣に取り組んでいるソフトウェア企業には製造所のようなキッチンがあることを学んだ。
手短にいうと、雑談の話し方を学んだよ。こういうのは他のデベロッパーと働く時には重要だと分かった。気持ちもデベロッパーにしてくれるしね。
作品を作る
Web 開発を学習していた初めの年、私は以下の作品を作った:
- ディグ・クローン(Sitepoint book にある Rails の教材、今はもう時代遅れだと思う)
- Eコマースアプリ(Agile Web Development with Rails 4)
- オタク向けアプリ(個人プロジェクト)
- リアルタイム・オンラインクラスルーム(個人プロジェクト)
- 語学暗記アプリ(学校のプロジェクト)
実際のプロジェクト開発は様々な理由で重要だと思う。私にとって最も重要なことは楽しいことだ。残念ながらこれは古典的な教育の中で失ってしまう。それでもこのリストに入るくらい重要なことだと思う。プロジェクトの作り方を教えてくれる資料を探そう。http://ruby.railstutorial.org/ は良いよ。
ゴキブリになれ
ここまで読んでくれた人のために特別に 4 番目の戦略を教えるよ。
ポール・グラハムは Airbnb の創設者にこう言った。
君たちは死なない。ゴキブリのようだ。
君は多分どこかでコードの学習を止めたくなるだろう。やりがいのあるものは、難しくて自分がバカだと思わせる時がある。だから、はじめに紹介した「目標ではなく習慣に没頭する」は重要だ — 学習の進捗や、「よし、できた」と達成感を得るには後どれ位やればいいのかを心配するのはやめるんだ。1 週間 10 ~ 30 時間やるだけでいい。それ以外の雑念を持たないゴキブリになるんだ。そして「死ぬ」な。
人生の 80 % は実行することという言葉を私が何年か前に作り、その言葉がよく引用されている。たくさんの人が劇を書きたい、映画を書きたい、小説を書きたいと言っていた。実際に書いた人は目標の 80 % 完了している。それ以外の人たちは、輝かしい生活を手にすることはできない。彼らは成功しなかったんだ。実行しなかったから。映画や小説を書けば半分以上は目標に近づいている。だから一番役に立った人生の教訓はそれだ。それ以外の教訓は参考にならなかった。
ウディ・アレン
メモ
文中に出てくる「胸を擦れ。腕は気にするな。」に関してはこちらに説明があります。