プログラミングに興味を持って、楽しいので何かをしてください。それがあなたの10年/ 10,000時間を入れても構わないと思うように、それが十分に楽しいことを続けることを確認してください。
プログラム。最良の学習方法は、実行することによる学習です。より技術的に言えば、「特定のドメイン内の個人のパフォーマンスの最大レベルは、拡張された経験の関数として自動的に達成されるわけではありませんが、パフォーマンスレベルは、改善への意図的な努力の結果として、経験豊富な個人によっても増加できます」(p。366)そして、「最も効果的な学習には、特定の個人に適切な難易度、有益なフィードバック、およびエラーの繰り返しと修正の機会を備えた明確に定義されたタスクが必要です。」(p。20-21)「認知の実践:日常生活におけるマインド、数学、および文化」という本は、この視点の興味深い参考資料です。
他のプログラマーと話してください。他のプログラムを読んでください。これは、どの本やトレーニングコースよりも重要です。
必要に応じて、大学で4年間(または大学院で)入学してください。これにより、資格を必要とする一部の仕事にアクセスでき、分野をより深く理解できますが、学校を楽しんでいない場合は、(ある程度の熱意をもって)自分でも仕事でも同様の経験を得ることができます。いずれにしても、本の学習だけでは十分ではありません。「コンピューターサイエンスの教育は、ブラシや顔料を研究することで、誰もがエキスパートプログラマーになることはできません。私が今まで雇った最高のプログラマーの一人は高校の学位しか持っていませんでした。彼はたくさんの素晴らしいソフトウェアを生み出していて、彼自身のニュースグループを持っていて、彼自身のナイトクラブを買うのに十分なストックオプションを作っています。
他のプログラマーとプロジェクトに取り組みます。一部のプロジェクトで最高のプログラマーになる。他のいくつかの最悪である。あなたが最高のとき、あなたは自分の能力をテストしてプロジェクトをリードし、あなたのビジョンで他の人を刺激することができます。最悪の場合、マスターが何をするかを学び、マスターがやりたくないことを学びます(彼らがあなたのためにそれをやらせるからです)。
他のプログラマーの後にプロジェクトに取り組む。他の誰かが書いたプログラムを理解する。元のプログラマが周りにいないときに、それを理解して修正するために必要なことを確認します。あなたのプログラムを設計して、あなたの後にそれを保守する人たちが簡単にできるようにする方法を考えてください。
少なくとも半ダースのプログラミング言語を学びます。クラス抽象化(JavaまたはC ++など)をサポートする1つの言語、関数抽象化(LispまたはMLなど)をサポートする1つの言語、構文抽象化(Lispなど)をサポートする1つ、宣言仕様(PrologまたはC ++テンプレートなど)をサポートする1つ、コルーチン(IconやSchemeなど)をサポートし、並列処理(Sisalなど)をサポートします。
「コンピュータサイエンス」には「コンピュータ」があることを忘れないでください。コンピュータが命令を実行し、メモリからワードをフェッチし(キャッシュミスあり/なし)、ディスクから連続したワードを読み取り、ディスク上の新しい場所をシークするのにかかる時間を把握します。(回答はこちら。)
言語標準化の取り組みに参加してください。それはANSI C ++委員会であるか、またはローカルのコーディングスタイルに2つまたは4つのスペースインデントレベルがあるかどうかを決定している可能性があります。いずれにせよ、あなたは他の人々が言語で好きなものについて、彼らがどれほど深く感じているかについて、そしておそらく彼らがなぜそう感じているかについてさえ少し学ぶでしょう。
言語の標準化の取り組みをできるだけ早く終わらせるための適切な意味を持ちます。