John Rezig:毎日コードを書く

昨年の秋、私のサイドプロジェクトの仕事は停滞しました。私は実質的に前進せず、 カーンアカデミーでの主な仕事を犠牲にせずにそれ以上のことをすることができませんでした。



私の作業組織にはいくつかの深刻な問題がありました。 私は主に週末に、時には夜に働きました。 結局のところ、これは私にとって最良の戦略ではありません。 週末にできる限り多くのことを改善する必要があるため、私には大きなプレッシャーがかかりました。計画を完了できなかった場合、それは失敗のように感じられました。 この問題は、次の週末が無料になるという保証がないという事実によって悪化しました。それでも、これらの2日間すべて朝から夜までコーディングしたいという事実ではありませんでした。



さらに、1週間の休憩は長すぎます。メモを取ったとしても、作業していたことや中断した場所を忘れがちです。 週末に仕事をすることができなかった場合、休憩は2週間続きました。 このような数週間のコンテキスト切り替えは致命的です。私のプロジェクトの多くは、このような注意の欠如から生まれることなく消滅しました。



180日間で180のサイトを作成してプログラミングを勉強することを決めたJennifer DeWaltの驚くべき実験について聞いて、私は同じような戦術を試してみました。



画像

スティーブン・レジグによるイラストレーション



私は自分自身にいくつかのルールを設定しました。



  1. 毎日コーディングする必要があります。 私は他のこともできます-ブログでドキュメントや記事を書いてください。ただし、コードの作業に加えて。
  2. 機能的なコードでなければなりません。 インデント、再フォーマット、および可能な限りリファクタリングをいじる-カウントしません。 私はこれをすべて行うことができますが、それが毎日の手当の主要部分になることはできません。
  3. 真夜中より前に書かれたコードのみがカウントされます。
  4. すべてのコードを開いてGithubで公開する必要があります。


これらのルールのいくつかは、とてつもないもののようです。 技術的には、深夜までコードを排他的に記述する必要はありませんが、コードが汚れないように、遅くまで起きているようにしたかったのです。 Githubで書かれたすべてを公開する必要もありません。 このルールは、コードにより注意を払う必要がありました。できるだけ早く再利用やモジュール性について考えてください。



この戦術は非常に効果的であることが判明し、現在、継続的な作業の20週目が近づいています。 それが私の仕事スタイルを完全に変えて、私の人生と心の状態に大きく影響したので、私はそれについて書きたかった。



画像



これらの仕事の習慣の変化は、多くの興味深い結果をもたらしました。



最小作業コード。 コードの作業には、少なくとも1日30分を割り当てる必要がありました。 特に昨日何をしたかを覚えておかなければならないことを考えると、短い時間で意味のある何かを書くことは非常に困難です。 時々私はもう少し仕事をすることができました(しかし、通常は1時間以内でした)、そして週末にはそれが一日中起こりました。



プログラミングは習慣です。 概して、Githubのダイアグラムが上の図でどのように見えるかについては、あまり興味がなかったことに注意することが重要です。 これが私の実験の最も重要な結果だと思います。主なことは、あなたが自分自身のために何かを変えたいと思うことです。 同じことはどんな食事や運動にも当てはまります。自分でやらなければ成功することはありません。



不安に対する勝利。 実験を始める前に、「十分な」作業を行う時間や「十分に」移動する時間がないことを非常に心配していました(サイドプロジェクトには特定の期限がなかったため、この「十分」を測定できませんでした)。 仕事進歩感は 、進歩そのものと同じくらい重要だと思いました。 目が開いた! 私が毎日着実に前進し始めるとすぐに、私の不安は徐々に消えていきました。 完了した作業量に満足し、1回でできる限り多くの作業を行うことに夢中になりました。



週末 週末に仕事をすることは、私が前進する時間しかなかったので、サイドプロジェクトで重要な進歩を遂げる重要な方法でした。 今週末はそれほど重要ではありません-これは非常に良いです。 1週間にわたって蓄積された計画と期待は、ほとんどの場合失望につながりました。 思い描いていたすべてのことをやることはめったになかったので、次の週末にはカフェや博物館に行ったり、公園を散歩したり、女の子と時間を過ごしたりして、エンターテインメントをあきらめました。 副プロジェクトがあなたにとってどれほど重要であっても、一生をかけてはいけません。



バックグラウンド処理。 プロジェクトでの定期的な日常作業の興味深い副作用は、あなたの心がバックグラウンドで作業を開始することです。 よく通りを歩いたり、シャワーを浴びたり、精神的な努力を必要としない何かをしたりするとき、私は自分がしなければならないことを考え、現在の問題の解決策を見つけることがよくあります。 これは、私が週に一度だけプログラムした場合には当てはまりませんでした。 1週間の間に、私の頭は他のタスクで占められていました。あるいは、サイドプロジェクトに取り組む時間がないという懸念さえありました。



コンテキストの切り替え。 サイドプロジェクトの作業を再開するたびに、コンテキストの切り替えに時間を費やす必要があります。 残念ながら、1週間の休憩の後、この切り替えは非常に困難です。 この意味での毎日の作業ははるかに効果的です。なぜなら、休憩ははるかに小さく、コンテキストははるかに速く復元できるからです。



時間管理。 私にとって実験の最も重要な側面の1つ-仕事、サイドプロジェクト、残りの人生の間で時間をよりうまく分散させる方法を学びました。 少なくとも毎日何をしなけれならないかを知っていたので、自分の1日をより良く計画する方法を学ばなければなりませんでした。 夕方に他の計画がある場合、メイン作業の開始前に、プロジェクトの作業をより早い時間に延期する必要がありました。 仕事をする時間がなく、どこかで遅れた場合、一日をスキップするのではなく、早く帰る必要がありました。 趣味の時間は少なくなりましたが(浮世絵などを彫る)、やることは何もありません。選択しなければなりません。



外部知覚。 あなたの愛する人があなたの新しいルールに慣れると、もう一つのプラスが表示されます。 私のガールフレンドは、少なくとも毎日プロジェクトに少し取り組む必要があることを理解しており、時にはこれを念頭に置いて他のことを計画する必要があります。 「はい、私たちは散歩に行くことができます(映画館などに行くことができます)が、その後仕事を終える必要がある」と言うことができてとてもうれしいです。



どのくらいのコードを書きましたか? 過去数ヶ月でどれだけのことを書いたのか信じられません。 私はいくつかのサイトを作成し、いくつかのフレームワークを書き直し、Node用の多数の新しいモジュールを作成しました。 私はあまりにも多くのことをしてきたので、自分が書いたすべてを覚えていないこともあります。ほんの数週間前は遠い過去のようです。 完了した作業量に非常に満足しています。



私の実験は大成功だったと思うので、できる限り新しい習慣に固執したいと思います。 サイドプロジェクトをうまく進めたい人には、この戦術を強くお勧めします。 試してみたら、これがうまくいったかどうかを教えてください -できるだけ多くの本当の話を聞きたいです。






All Articles