プログラミングを効率よく学ぶ上で参考になるブログ記事があったので翻訳して紹介したいと思います。
Written By Suneel Chakravorty, A Developer At Yipit The 2 Biggest Mistakes I Made When Learning to Code
1年前、大学を出たての僕は現実世界に挑もうと決心した。実現したいスタートアップのアイディアはたくさんあった。でも、コードの書き方は知らなかった。
Yipitの共同創立者のVin Vacantiのアドバイスに従って独学でコードを勉強し始めた。
最終的にプロトタイプを作り上げられるのに十分なほど学習するまでの道のりは厳しかった。もしあなたが当時の僕と同じ途上にいるならば、同じ間違いを犯さないことを祈っている。
間違い#1: 実際には必要のないことに時間を費やしすぎた
僕はどこから手を付けたらよいのかすらわかっていなかった。たくさんのバズワードがあって、たくさんの競い合う観点があって、何が重要なのかを判断するのが難しかった。Hacker NewsやQuora、StackOverflowを巡回して、人気の記事からランダムに用語をひっぱってきたことで僕はこんな馬鹿げた寄せ集めのリストを考え付いた。
HTML, CSS, AJAX, PHP, Javascript, Heroku, Celery, SQL, jQuery, Django, POSTGRES, nodeJS, BackboneJS, Ruby, Rails, MongoDB, Python
どれが必要で、どれが必要でないかがわかっていなかったから全部を学習しようとした。
すべきだったこと: 実用的なプロトタイプに必要なものだけにリストを絞り込むべきだった
最終的に、リストの項目が実際に何をするものなのかを理解し、以下のものに絞り込んだ
- HTML: ページを構築する(e.g. これがリンク、これがタイトル)
- CSS: コンテンツをスタイリングする(e.g. マウスオーバーした時にリンクを太字にする)
- Javascript: コンテンツを動的なものにする(e.g. リンクをクリックした時にポップアップを開く)
- jQuery: 使いやすいプラグインが集まったJavascriptライブラリー(e.g. 写真のスライドショー)
- Python: データを処理する(e.g. データベースからユーザーの購入履歴を引き出してオススメを提示する)
- Django: Pythonで実装されたWebアプリケーションフレームワーク。上に挙げた全ての要素を繋ぎ合わせ、多くのビルトインの必要な機能を提供する(e.g. 予め用意されたログインシステムやPythonだけを使って簡単にデータベースにアクセスする方法等)。フレームワークを使おう。めちゃくちゃ楽になる!
間違い#2: すぐにコーディングを始めなかった
コーディングの本を読むのに時間を使いすぎた。自分のプロジェクトに実際どう役立つかもわからずにいた。最悪なことに、読んでいるものを実際に応用しなかったので自分の中に何も蓄積されることがなかった。
すべきだったこと: 最初から小さなプロジェクトに取り組みながら学習すべきだった
あとになって、実用的なプロトタイプを作り上げるのに十分なとても効果的な学習方法を発見した:
- 積極的にチュートリアルに取り組んで、例題のコードを書くこと。これに関してYipitの同僚開発者が素晴らしい提案をしている。
- 簡単なプロジェクトを選んでコードを書く。シンプルなブログや、基礎的な投票アプリをつくってみる。
- #2を何度か繰り返す。
- 自分のスタートアップのプロトタイプを作り上げる
今すぐやり始める利点はたくさんある。速やかにプログラミングにおいて持ちうる不安を乗り越えられること。すぐに学習の労力が報われることがわかること。何よりも大事な利点は、自分のプロダクトをつくり上げるのに必要なスキルを急速に伸ばせることだ。