はじめに
こちら How to maintain the habit to learn coding skills の翻訳記事です。
プログラマとして学習を続けていくこと。について書いてあります。
意訳や誤訳も多いかもしれませんが、非常に参考になる内容でしたので翻訳しました。
以下、翻訳です。
やる気の炎を失うな
「勉強をする」、ということは当然他のことに費やす時間を減らさなければなりません。
もし、学習に対する意欲を失いたくないのなら。コンピューターの前から離れて家族といる時間を増やしたり、大好きな趣味に時間を費やしたり、運動したりする時間は決して捨てるべきではありません。
学ぶことは大変だ
さて、あなたがコンピューターの前に戻ってきても困難なことが待ち受けています。
それは1つのことを完璧に学習しきることです。
他の言語はとても輝かしいものに見えるし、新しい技術は今のプロジェクトを革新できるものに感じるでしょう。
さらに、もしあなたが「良いプログラマになるための方法」を信じるのなら。
多くのデザインパターンとそれの実装方法を学び、オープンソースプロジェクトに加わり、時代においていかれないためにコンピューターサイエンスを身につけ、もちろん業務の進捗も遅らせてはならなりません。
とても不可能なことに感じます。
我々には(最低でも)週5日のフルタイムの仕事があり、休日は自の時間を満喫しなければなりません。
ですが実際には、あらゆる知識に精通し、自分の時間を満喫するプログラマーがいます。(あなたの周りにもいることでしょう。)
彼らは学ぶことの方法を知っているのです。
「やる気」 ではなく 「習慣」 で勉強する。
今、あなたが新しい言語を学ぼうとしているとします。コードスキルを常に磨き続け、より深い仕様を理解しようとするでしょう。
あなたはいつまでそれを続けられますか?
前述の通り、あなたの脳は常に新しいことを求めます。
**「やる気」**だけで学習を続けることは非常に困難です。あなたにとって素晴らしい学習になる予定であったものも、いつかは全く触ろうとしなくなってしまうでしょう。(あなたの部屋にもし、1ページしか読まずに置きっぱなしになっている技術書があればまさにそれの話です。)
一方、**「習慣」はあなたの人生の学習の支えとなります。ここで「習慣」**を形作るための幾つかの方法を記します。
1. 学ぶことを絞る。
プログラミング言語、フレームワーク、コンピューターサイエンス、ソフトウェア。なんの勉強をしても構いません。ただ、広く浅く知ろうとすればあなたの身になることは何もないでしょう。
大切なことは、**「あなたが今、本当に学びたいこと」を選びそれに集中することです。決して「今流行っているから」**という理由で学ぶことを選んではいけません。
2. ゴールと再評価
学びたいことが決まったら大枠と中継地点を含んだ、学習プランを計画しましょう。
例えば数ヶ月といった時間制限とゴールを設定します。ゴールに到達したらあなたの学習を再評価しましょう。
再評価してもっと学びたいと思えば、また新しいゴールを設定して学習を続けましょう。
もし、十分だと感じたら後ろめたく感じる必要はありません、最初に設定したゴールに到達しているのですから胸を張って別のゴールに向けて出発しましょう。
さらにより良い学習のためには、
- 数個先のゴールを設定しておく
一つのゴールに到達した時に、また学び始めるために「やる気」の炎に火を灯す必要がなくなります。
- 細かいタスクも計算しておく
もし日々に学習に取れる時間が少ないのなら、悩んでいる時間は30分でももったいないです。本を1章読む、チュートリアルをこなす、動画学習を行う。などの時間も設定しておくとゴールへの到達がより明確になります。
3. 毎日時間を作る。
学習を**「習慣」**にするためには、たとえどんなに短い時間でも毎日学習のための時間をとるべきです。
趣味や他のことをする時間を減らす必要はありません。そうするとあなたの「やる気」はいつか枯れてしまいます。ですが、他の何かをする前に学習の時間を少しとるようにしましょう。
大丈夫、ゆっくり。落ち着いて。それが「習慣」を作る秘訣です。
もし「暇な時にやろう」や「今夜は星が綺麗だから勉強しよう」では「習慣」を作ることはできません。
毎日少しの時間でも学習を続ければ、(「やる気」の炎を燃やさずに)学ぶべきことに簡単に没頭できるでしょう。
4. 継続するプロジェクトを持とう。
「習慣」で学習するには、一つの分野を100%まで学び切る必要はありません。
一つの学習を終えたら、楽しかったことを次の学習に持ち越しましょう。
「ペットプロジェクト」を持っているプログラマーがいます。
彼らは(例えばブログやTODOといったアプリを)新しい言語を学ぶたびに作成します。そうやってコツをつかんでいくことが重要です。製品レベルであったりバグがないようにテストしたり、どこかに公開する必要は特にありません。
言語でなくても学んだ新しいことはあなたの**「ペットプロジェクト」**に組み込んでいくようにしましょう。
最後に
学ぶことはプログラマの一生の課題です。常に学ぶべきことはあり続けます。
ですから楽しんでこの旅を続けましょう。
この広い世界では、目的地に到着してもまた新しい目的地が無限にあなたの前に広がるでしょう。
忘れないでください。あなたは人間で、世界の全てを見て回ることはできないのです。
参考