プログラミングの疲労にどのように対処しますか?[閉まっている]


48

「眠りが必要」のような疲労ではなく、「もう悩むことはできません」のような疲労は、通常、作業中のプロジェクトで障害物にぶつかったときに始まり、一般的に締め切りに近づきます。

仕事のプロジェクトでも個人のプロジェクトでもかまいませんが、最近ますますヒットしています。私はアイデアを得て、それに取り組み、いくつかの本当に良い日を過ごして進歩を遂げます、そしていくつかの厄介なことが私をつまずかせます、私はあなたが望むように物事を得ることができません、私は制限に達しましたフレームワークでは、ドキュメントを見つけることができないなどの問題があり、イライラするだけです。

それとも私はこれで一人ですか?


4
ロードブロッキングが発生した場合でも、プロジェクトの進捗を測定できますか?そうでない場合は、測定可能にすることを検討してください。着実な進歩の可視性は、私が知っている最高の維持です。

7
これはモート(テリープラチェット)を思い出させます-モートが馬小屋の糞を片付けているところです。「見てみましょう、私はほぼ4分の1を終えたので、それを3分の1と呼びましょう。ヘイラックでそのコーナーを終えると、半分以上になります。手押し車の負荷...宇宙の素晴らしい素晴らしさを一連の小さな塊と考えた場合に対処するのがはるかに簡単であることを除いて、何も証明しません。」
Steve314

@ Steve314:プラチェット岩を+1。
11

ナマズ効果をお試しください。
rwong

@rwong:私のプロジェクトのほとんどはソロプロジェクト(または非常に小さなチーム)です。しかし、それは面白いアイデアのように聞こえます。
sevenseacat

回答:


42

怠慢

あなたが説明するのはたぶん先延ばしです。それは非常に一般的な現象です。リンクをクリックして、時間的動機付け理論について読んでください。

先延ばしを打つために、リストを作成します。先延ばしになっていると感じたら、リストを開き、最初の項目で作業するように強制します。数分後、心理学者のミハーリー・チクセントミハーリィが説明するように、ゾーンまたはフローに入ります。

この画像であなたを認識してください:

代替テキスト


2
自分を強制するための+1。同じことが私にも当てはまることがわかりました。開始することが最も難しい部分です。
マイケルK

2
年が経つにつれて、すべてのプロジェクトが垂直軸に沿って下降していることに気付かないでしょうか。水平方向にも動きがあります。
11

オープンソースプロジェクトをコーディングする代わりに、今日は一日中先延ばしにしています。くそ
-gruszczy

1
この問題を解決するための+1。
コナー

2
私は、リストには、上部にだけ不快なタスクを持っているならば、それはそれを行うには自分自身を強制的に次のことは不可能になることができますを見つける...
ローマStarkov

10

私にとって有効なのは、障害となっている問題から離れることです。これは、他の人がコードベースの別の部分で作業することを提案したことを意味します。それは実行に行くことを意味する場合があります。私は、障壁に頭を打つことは障壁を強化するだけであることがわかりました。焦点を無関係なものに変えることで、潜在意識が問題を解消できるようになります。シャワーを浴びているときなどに解決策を見つけることに何度も驚きました。


4
シャワーは間違いなくバグ修正に適した場所です。
オーブリング

これは、障壁を強化することだけについて本当に良い点です。私はそれが私がしなければならないことだと思う、プロジェクトを異なる部分に分解して、私の脳が十分になったら別のものに切り替え、脳の別の部分を使う。
sevenseacat

8

プログラマーは、グリーンランタンのドライブよりも大きなドライブを持っている必要があります。何かがうまくいかないとき、私たちはその小さなかゆみをより深く掘り下げて、それが質問をすることであろうと本を読むことであろうと理由を見つけようとします。

その疲労を止めるためにできることは、少しの間問題から離れ、与えられたタスクの別の側面に取り組むことです。

私にとって、子供のようにリラックスできるプログラミングタスクはGUIで作業しています。それは非常に簡単で、脳を遮断することができます。それはまた、私の脳に、私が何かを成し遂げているというプラセボ効果を与えます。


だから基本的に、プロジェクトに没頭したままで、忙しい仕事に?そして、ええ、それは最悪の気持ちです-あなたがすべての時間を何かに入れたが、まだ何も達成していないように感じるとき。
sevenseacat

3
@Karpieあなたはまだ何かを達成しています。「ビジーワーク」の一部を実行すると、実行する必要がある作業を続けることができますが、すべてのシリンダーで脳を発火させる必要があるわけではありません。

私は知らない-GUIの仕事はいつも私に平気で動いているようだ。正しく動作させて使用できるようにするのは楽しくてやりがいがありますが、見た目を良くすることは私にとって非常に困難です。
マイケルK

このようにしばらく離れると、約50%の時間、私は二度と戻ってきません...:/
ロマン・スターコフ

6

私はほとんど常にこのエリアに陥る傾向があります。

プロジェクトの開始は簡単で、すべてが新しく、調査と発見が必要なもの、構築するプロトタイプ、すべてが楽しいものです。しかし、課題が薄れていくにつれて、私の関心は薄れていきます。ソフトウェアビルドの製品版を入手し、使用しなければならないプラットフォームのあいまいな問題のために存在するとんでもない小さなバグを解決します。

あなたを殺すのに十分です。

他のことに飽きて罪悪感を感じるまで、私はこれで過度に役立つものを見つけたことがありません。次に、退屈な作業を少し済ませます。生産性は約20%に低下しますが、それは鈍いコーディングの負担です。

1つの解決策、チームプログラミングがあります。他の人が直接関与している場合、非常に困難です。


1
+1、チームビルディングはうまく機能します。残念ながら、他の人にあなた自身の個人的なプロジェクトに興味を持ってもらうことは非常に困難です。
dan_waterworth

@dan_waterworth:確かに、私自身のためにプログラミングしてから非常に長い年月が経ちました。60〜80時間の週で、何年にもわたる貴重な休暇は、むしろ欲求を取り除きます。
オーブリング

2
+1正直:「...他のことに飽きて罪悪感を感じるまで...生産性は約20%に低下します...」
Kavka

チームプログラミングの詳細を教えてください。
エスカルース

6

ペアプログラミング

これらの場合、ペアプログラミングが本当に役立つと思います。よくペアリングしている人を見つけて問題を攻撃しましょう。他の意見や、障害物を乗り越えるための響板に勝るものはありません。再び進歩を始めると、熱意は自然に戻ってくる傾向があります。

残念ながら、これは私たちの会社では嫌われているので、生産性に影響する問題を本当に感じることができる場合にのみこれを行う傾向があります。


+1、それはチームプログラミングと呼ばれていましたが、3つ以上が良いので、私の答えで提案した唯一のものでした。;-)
11

3

新しい言語を学びます。あなたの興味を刺激するために新しい言語を学ぶことほど素晴らしいものはありません。Haskellをお勧めします。


1
+1新しい言語の場合、Haskellの場合は+1。1 + 1 = 1ただし、投票の計算は正しいようです。
11

1
@Orbling、それはだから1 | 1 = 1
dan_waterworth

1 & 1 = 1私の意図により近いと思います。;-)
11

1
@Orbling、どの程度P(vote) = S((1 + 1)/t)、どこS(x)シグモイド関数はありますか?(システムの温度を選択できます)。
dan_waterworth

それが私の最新のプロジェクトで試したことです。RubyとRailsを学ぼうとしました!それはドキュメンテーションがそこにすべてではないことについての部分でした、
ねえ

2

私は他のエリアを1時間またはそれ以上叩き始めます。私は職場でEclipseを使用しています。Eclipseを使用する// TODO:と、コードを入力して、ウィンドウ内でそれらをすべて照合できます。他の作業中に変更または修正したいものが見つかった場合は、TODOを入れて、勢いを壊さないようにします。あまりにも長い間(1〜2時間以上)動けなくなると、リストの作業を始めます。それは景色の変化を提供し、ほとんどの場合、変化は非常に簡単で、リラックスするのに役立ちます。多くの場合、私は何かを達成していると感じさせながら、答えが飛び出します。

注:私はリファクタリングが大好きで、コードをどんどん改善しています。あなたのマイレージは異なる場合があります。


1
+1これは私がいつもしていることで、特にコードのスムーズな流れを確保するのに役立ちます。もちろん、通常のコーディングの原則に従う場合は、完全な擬似コードを事前に作成することをお勧めします。ゆっくりと実際のコードに取り込んでください。
11
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.