プログラミングの特定の側面が完了するまでに10秒以上かかる場合、どのようにフォーカスを維持しますか?[閉まっている]


141

何か(コンパイル、起動時間など)が数秒以上かかる場合、私がやっていること(プログラミング)に集中するのは非常に困難です。逸話的には、しきい値は約10秒であるようです(そして、今は見つけることができませんが、同じことを言った研究について読んだことを思い出します)。そのため、通常起こることは、変更を加えてからプログラムを実行してテストすることです。それには約30秒かかりますので、何か他のものを読み始めて、それがわかる前に20分が経過し、プログラミングに戻るためのコンテキストスイッチに対処するためにさらに10分以上かかります(幸運なら!) 。

文字通り完了までに数分かかるものがあると言っても過言ではありません。

私は他のプログラマーがこの傾向と戦うために何をするのかについて非常に興味があります(または私がユニークで、彼らがこの傾向を持たない場合)。どんなタイプの提案も歓迎です-「コンパイルボタンを押した後、あなたの手に座る」からメンタルトリックまで、「変更をテストするために何かを開始するのに30秒かかるなら、開発プロセスで何かがおかしい」 !」


24
私は同様の問題を抱えています(したがって、このコメント:))。本当に役立つのは、朝のコーヒーが少ないか、まったくないことです。また、午前中に仕事をし、午後に会議を予定しています。それが役立つことを願っています....キティに見えます。
-DevSolo

7
あなたは先延ばしの形に取り組んでいます-宇宙中の知識労働者の敵です。
アディティアMP

130
!! 私は今それをやっています-リマインダーをありがとう-仕事に戻ります。
mjhm

8
私は通常、SEサイトでこの時間を過ごし、質問を読んで、他の開発者を支援するためにできることに答え、その過程で新しいことを学びます。
バーナード

6
SharePoint b / cの開発を開始する必要があります。実際には20分待機する必要があります:)
12

回答:


117

コンピューターにビープ音を鳴らしたり、サウンドを再生したりする「アラート」と呼ばれる小さなコマンドラインユーティリティmakeを作成しましたmake; alert。可能な場合は、引数を取るようにし、引数に応じて異なる音を出します。したがってmake; alert $?、a)ビルドが完了し、b)成功または失敗したことがわかります。あなたはそれに夢中になる必要はありません。だけecho -e "\a"で十分です。

本当におもしろい/いらいらしたい場合は、テキスト読み上げパッケージを使用して、ダイアログポップアップをトリガーします。

ここでの主なアイデアは、仕事関連のタスクが完了するとすぐに注意散漫を中断することです。


6
簡単な例:MSG="back to work" && xmessage -buttons ok -default ok -nearmouse "${MSG}" 2> /dev/null
sakisk

6
@faifその場合、の;代わりに使用します&&。2番目の例はshow_messagemake成功した場合にのみ実行されますが、これは期待したものではありません。明確にするために、私はあなたが与えた例が好きです、私は単に実装の詳細について気にしているだけです。;)
retracile

2
特定のタスクが完了したらメールで通知するクイックコマンドラインプログラムを作成しました。そのため、待ち時間にITの仕事をするために部屋を出ると、電話が鳴り、オフィスに戻って終了するように指示されます。私がやっていたこと。
フィル

7
気晴らしからあなたをそらすために+1-火で火と戦う!そうすれば解雇されません!
corsiKa

1
Ubuntuには、.bashrcに適切なアラートエイリアスがセットアップされています。libnotifyに依存しますが、インストールされている場合は実行できcommand; alert、完了したコマンドを指定するとデスクトップアラートが表示されます。長いコンパイルやテストに本当に役立ちます。
レオ

104

私は同じ問題を抱えており、解決策は、あなたを吸い込まないようなことをする時間を費やすことでした。オフィスを30秒間歩き回って足を伸ばしますが、とにかく動きが必要です。インターネットの閲覧に迷うことがあります。自分のキュービクルを歩き回るのはめったにありません。


37
クイックウォーキング/ストレッチを行うための+1。私たち全員がもっと頻繁にやるべきことです。
ジョンパーディ

2
これは私の答えと組み合わせてうまく機能します...スピーカーを十分に大きく設定して、歩きながら部屋全体で聞こえるようにし、短くすることができます。(
たとえば

1
+1、10秒以内の処理を行います。ドリンク。チューインガムをつかみます。窓のそばを見てください。運がよければ、外で何かが起こっているかもしれません。音楽を聴いている場合は、プレイリストの内容を確認するか、トラックを追加してください。
ローランCouvidou

2
また、トイレを追加して使用します:)多くの場合、長いコーディングセッションの後初めて立ち上がるとき、彼らが言うように、配管を使用する必要があることがわかります。これらの休憩を使用して、自分の世話をします。
-eykanal

4
次の席/キューブで開発者と話をするまで... 20分間のブラウジングではなく、20分間のチャットです。
スティーブンエバーズ

29

健康のために何かをする:

立ち上がり、コンピューターから離れて、手と腕のストレッチ運動を行います。これには最大2〜5分かかります。RSIに苦しんでいないあなたの将来の自己は、これに感謝します。

また、2〜5分の休憩については、ポモドーロテクニックを読んでください。これは、頻繁に短い休憩をとって、現在の作業から気をそらし、物事を少し沈めるという考えに基づいています。思考の流れを完全に失うのではなく、脳に息を吹き込むのに十分な長さの短い休憩です。


10
起床する必要すらありません。目を閉じて30秒間休むだけで、しっとりして疲れにくくなります。
JBRウィルキンソン

1
これは素晴らしい答えです(神経質なエネルギーを燃やすのに役立ちます)。あなたが十分に訓練されていれば、ポモドーロのテクニックは機能します。
-DevSolo

1
+1。高さ調整可能なデスクがあることも役立ちます。私が立っているとき、私はそれらの短い休止(コンパイルなど)の間にはるかに生産的であることがわかりました。すぐに仕事に戻ります。たぶんそれは私だけかもしれませんが、私が考えているとき、ペーシングが助けになるとき、私はたくさん動き回るのが好きです。
Paperjam

1
Pomorodoのことは聞いたことがありませんが、私は長い間休憩を取ってより意識を休ませ、バックバーナーがしばらくの間何かを整理する必要があるという考えを支持してきました。シャワーとバスルームで多くのa-haの瞬間が発生する理由があります。
エリックReppen

25

開発は創造的なプロセスです。特にあなたのオフィスに気晴らしがたくさんある場合、あなたは常に生産的であることができません。それが、ジョエルテストが静かな労働条件を示唆している理由です。

ジョエル・スポルスキーは、「ゾーンにいない」ことの意味について説明しています。何かがあなたの仕事をすることを妨げるたびに、あなたは10分を費やさなければなりません、しばしばゾーンに戻って再び生産性を上げるためにもっと。

気晴らしがたくさんあります:

  • 妻からの電話、
  • あなたの近くのオフィススペースのビジネスパーソンへの電話、
  • 助けを求めている同僚、
  • お腹が空いていて、
  • 個人的な問題がある、
  • 10年前に経験の浅い開発者によって書かれ、リファクタリングされなかったレガシーコードで作業する必要があるため、
  • 遅いPCまたは遅いインターネット接続を使用して、
  • 長いコンパイルプロセスがあるため、

それとは何の関係もありません。あなたができる唯一のことは、気晴らしそのものを取り除くことです:

  • オフィスには電話がありません。
  • 静かな労働条件、
  • 高速なコンピューターとインターネットアクセス、
  • 高速コンパイルプロセス、

あなたの場合、気を散らすのがコンパイラーなら、次の方法でコンパイル時間を短縮してみてください。

  • プログラムのサイズを小さくします(たとえば、一部のIDEでは、ソリューションからプロジェクトをアンロードできるため、コンパイル時間が大幅に短縮されます)。
  • 夜間ビルドを使用し、作業中のコンパイルを少なくして、
  • より速いマシンを購入する(他に何もすることがない場合)

9

私はそれを言う人になると思いますが、あなたはただそこに座って、それが終わるのを待つべきです。

常に物事に取り組み、積極的に行動する必要性を感じないように、自分を再訓練する必要があります。これは非常に有害な問題であり、開発者だけでなくすべての人々に影響を及ぼします。社会は、継続的な刺激(視覚、聴覚、精神)の必要性に取りつかれています。電話を抜いてテキストメッセージを送信したり、Webを閲覧したり、Facebookをチェックしたりせずに、30秒以上アイドル状態を維持できる人はいないようです。

あなたがコンパイルをヒットし、それが1分ほどかかる場合は、ただ座って脳をリラックスさせる絶好の機会であることを考慮してください。刺激的なことをしたいという衝動に抵抗し、非活動の瞬間を楽しんでください。

時間が経てば簡単になり、一日中脳を100%発火させ続けようとするのをやめると、仕事の経験がずっと良くなるでしょう。


マルチタスクのハチンが本当に正当化されているのか、それともおそらく世代間の誤解なのか疑問に思う。確かに、研究ではマルチタスク処理時に生産性の損失が発見されましたが、それは単に一部の人々が開発したスキルにすぎない可能性があります。任意の新しい技術やプロセスのために、私は人々が本当に効果的にそれらを使用する方法を学びました前に、彼らは生産性のためにひどいことが判明した研究があったと確信している

@JonofAllTradesそれは技術や学習に関するものではなく、人間の脳が複数の良心の思考ストリームを継続的にマルチタスクできるように生物学的に設計されていないことは知られている事実です。私たちは、短期間でいくつかの切り離された考えを両立させることができますが、それを超えると、バランスをとる行為全体がバラバラになります。精神的にも肉体的にも磨耗するため、健康的ではありません。なぜそんなに多くが病気で疲れているのだろうか?私たちは皆懸命に働きます。
アランバーバー

ああ、でも一つのことに集中するのは大変で、私たちの注意はすぐさまさまれます。いつものように、幸せな媒体があります。一度マルチタスクをよりよく学べると思うし、1950年に生まれた40歳の理想的なワークフローは、1990年に生まれた40歳とは違うと思う。 100年前よりも病気や疲れが増えています。どちらかといえば、それを意識する贅沢をする余裕があります!

8

@retracileが提案していることに同意しますが、Zenプログラミングルールに従って、一度に1つのタスクのみに焦点を合わせる必要があることに注意してください。電話への応答、Webの閲覧、ソーシャルネットワーキング、またはマルチタスクを行うことで、生産性が低下する可能性が高くなります。短い待機時間を使用して、既存のタスク/ソリューションとそれを改善するためにできることを考えます。


8

ドアポストに取り付けられたバーがあります

ここに画像の説明を入力してください

プルアップは5回しかできないので、1分もかかりません。または、お茶を入れます。


プルアップ私は今本当のために不思議行うことができますどのように多くのプログラマ地球上で
kommradHomer

2
少なくともすべてのコンパイルでプルアップを試してみると、さらに多くのことが可能になります。
エスコルオントラ

3
あなたのIDEがあまり賢くないなら、あなたはより良い形になります..これは興味深い結論につながります。

常に過熱するマザーボードを搭載した古代のMacを使用すると、かなり熱狂しました。それが冷えるのを待っている間、私は働いた。

これ大好き!開発者のバフが多いほど、彼のツールは!@#$ tierです。
エリックReppen

6

私にとって、焦点を維持する方法は、そのワークスペースに関係なく、クリーンなワークスペースを維持することについて冷酷です。私の現在のプロジェクトの一部ではないものは、神聖なS / N比のノイズです。フォーカスを維持するための重要な部分は、S / N比を高く保つことです。

コーディングしているとき、これは、最近使用していないプログラムを閉じ、ブラウザのタブを定期的に整理し、現在のプロジェクトに直接関係のない項目をデスクトップに残さないことを意味します。つまり、タブを閉じる、プログラムを閉じる、一時ファイルを削除する、アーカイブする必要があるものをアーカイブするなど、「ラウンドを行う」ために10秒の遅延を使用します。

「ラウンドを作る」という習慣を身に付けると、ウサギの痕跡も防ぐことができます。これは、現在のタスクを継続的に評価し、思い出させる必要があるからです。

今日既に5回開いているタブを再度開くか、15回目の昇格された特権でコマンドプロンプトを再起動する必要がある場合、少額の費用がかかりますが、キーボードショートカットなどのアクセラレータを使用すると、これを削減できます確かに非常に小さな価格。


1
ブラウザのタブ(またはプログラムなど)を閉じる際の問題は、ブラウザのタブを閉じようとすると、タブに簡単に気を取られてしまうことです。答えを実装した後にStackoverflowの質問に戻り、サイドバーに興味深いリンクを表示してクリックするなど
。...-ボブソン

6

仕事をしていない実際の時間を追跡するのに役立ちます

これにはいくつでも使用できます。私はあなたのためにダウンロードできる無料のアプリがたくさんあることを知っています(今のところ私の頭の上のものは考えられませんが、誰かが私にいくつかをくれたらこの答えに追加します)、または独自に作成するのは非常に簡単です。私は通常、作成したものを使用します。これは、画面の隅にあるWorking/のボタンが付いた小さなウィンドウで、NotWorkingフォーカスを切り替えるたびにいずれかをクリックします。

チェス時計も機能します

あなたの時間を追跡するという行為は、あなたが仕事に費やすべき時間をどれだけ無駄にしているのかをより意識させます。記事、そして仕事に戻る


5

注意を保つために、Doodleを使用します。私はいつもキーボードの後ろにペンとメモ帳を置いて、落書きします。意味のない紙片をこするだけではありませんが、注意を十分に保ち、気を散らさないので、作業中の状態にすぐに戻ることができます。

私は無意識のうちにこれを一生やしましたが、最近それについてのウィキを見つけました:http : //en.wikipedia.org/wiki/Doodle


4

何をするにしても、StackExchangeサイトにはアクセスしないでください。彼らはあなたを吸い込むでしょう:)

さらに深刻なのは、何かを完了するのを待っている間にWebを閲覧することは、生産性にとって良くありません(現在のタスクに関連する何かを研究している場合を除く)。

私は通常、1〜2分以上かかることのない小さなタスクをいくつか実行します。(何かをきれいにする、コメント、メモを書く)。


1

あなたの場合、起きて少し歩きましょう。「ゾーン」に戻るのが難しい場合は、おそらくあなたが遠すぎているためです。ウェブ上で何かをすることは、別のゾーンであり、時間を追跡するのは簡単です。散歩に出かけたり、理想的にはトイレでウィズをとったり、ランダムな同僚と話したりします。自動操縦の舞台裏で多くのことを行います。休憩はコーディングには悪くありませんが、良いですが、アイデアは、すべてのシリンダーでの発砲をしばらく停止し、あなたの心のより意識的な部分が休息する間、バックバーナーが何を思い付くかを見るということです。良い開発者は人間の計算機ではありません。オートパイロットで直感的でパターンマッチングを行うすべての処理を行う脳の部分に、しばらくの間それらの処理を実行させます。

これが単なるコーディングの問題ではない場合は、ADDを検討してください。


1

立ち上がって歩き回るなどの提案は、サイクルが長い場合(1時間程度)に適しています。しかし、サイクル時間が短くなり、vimの間を行き来して数分おきになったら、パイプラインに留まることでゾーンに留まります:ビルドまたはテストスイートの実行中に、コードを確認し、ビルドまたはテストが成功した場合にとにかく実行する次のチャンクで作業を開始します。


1

この「予備時間」の使用方法について、毎日の初めに計画を立ててください。それが関与する可能性があります

  • いくつかのドキュメント作成タスクに追いつく
  • 次に書くクラスのユニットテストケースを作成し、
  • あなたが学びたいと思っていた新しい技術を研究し、
  • お気に入りの叔母に手紙を書いて、

または実際には何でも。

この二次タスクを常にデスクトップ上のどこかのウィンドウで開いてください。「コンパイル」ボタン(または30秒以上かかるもの)を押したらすぐに、セカンダリタスクに切り替え、実際にそのタスクを進めるのに十分な時間をかけます(数分かかる場合があります)。またはそれよりも少ない可能性があります。

二次的なタスクを実行している間、これはあなたの脳に焦点を合わせるべきではないということを心の奥に置いておいてください。プログラミングについて考え続けてください。これは簡単ではありません。それでも、コンテキストスイッチの影響を受ける頻度は高くありません。

これを行うと、コンテキストを何度も失っても、失われた時間は実際には無駄な時間ではなく、一日の終わりにそれを見せるためのものがあります。しかし、最も重要なことは、一日の初めに、その日の二次的なタスクがどうなるかを計画することです。


1

コンパイル時間を使用してコードを文書化し、コードをクリーンアップし、コードを適切に調整して、IDEから離れずにコードの品質を改善できると考えています。


1

私は通常、バグ、タイプミス、またはその間にコードのスタイルを改善する方法を探します。それはコードを見続けることですが、私は(常に)面白いものに気を取られません。また、これ


1

ADHDが少しあると考えられます。たくさんの人がいます。対処メカニズムは、他の回答(または薬物療法)に記載されているとおりです。


1

これらの10〜30秒の間に、何かを実行します。

  • それは精神的な活動の多くを必要としません
  • コンパイルしているコードを開き、再度チェックします(何か間違っているか、改善する方法を見つけるかもしれません)

その間、(時間がかかる場合を除いて)時間がかかるとわかっていることはしないでください。

  • 本を読み始めた
  • 時間がかかることがわかっている場合はメールを読んでください

また、コンパイルの終了を知らせるオーディオアラームをインストールしないでください。あなたの同僚はそれを高く評価します。


12
個人的に、メールをチェックするのはひどい考えです。ご存知のように、それはあなたの30秒が簡単に30分になるほどの時間の吸盤になります。
エイドリアン

一日の始めと終わりに電子メールをチェックすることは、多くのexecタイプが好むヒントの1つです。あなたの会社の規模に依存します。
エリックReppen

メールの確認に30分かかる場合は、行わないでください。メールを取得するために郵便局に行くわけではないので、私にとっては30秒〜3分の操作です。
BЈовић

1
@ErikReppen、私がそれをした場合、私は仕事を持っていません。
HLGEM

0

一般的な作業中のインターネットの注意散漫のために、Google Chromeを使用している場合は、The Pomodoro Pluginをお勧めします

私は個人的に、あなたはあなたのすべての勤務時間中に生産的であることができないと思います!コンパイルしているので、呼吸をするのに十分な努力をしたことを意味します...悪用したり、コンテキストから抜け出したり、コンパイルでエラーが発生しない場合は次のステップを考え続けます...または作業をきれいにしますエリア:デスクトップ、タブ、エクスプローラー...


0

あなたが説明していることは完全に正常です。

ユーザビリティの調査を行っていたとき、遅延を大きさで見ることになりました。ユーザーがボタンをクリックすると、どれくらい待つ必要がありますか?

  • 0.1秒:知覚遅延なし
  • 1秒:フォーカスの変更なし
  • 10秒:注意が失われました
  • 1分:ユーザーは別のタスクに切り替えます
  • 10分:ユーザーは立ち上がって立ち去ります

入力などの複合操作など、多くの例外があります。

パフォーマンスの作業をしているときに、「操作Xの速度はどれくらいか」という質問をよくしました。答えは、ユーザーが遅延を認識できる限り、高速であることが望ましいことです。

あなたのケースでは、あなたはその10秒のしきい値に達している、とあなたの注意がドリフトします。あなたができる最善のことは、遅延を減らすことです。遅延が短いほど、生産性が向上します。画面の左側にコードがあり、右側に実行中のアプリがあると想像してください。コードを編集すると、アプリはリアルタイムで変更されます。あなたがそこにいるまで、改善する余地があります。

ジェフの最近のブログ投稿(それがもたらす多くの優れたコンテンツ)も参照してくださいhttp : //www.codinghorror.com/blog/2012/03/visualizing-code-to-fail-faster.html

他の何かに切り替えるつもりなら、あなたがやっていた仕事と同じようにあなたの脳に関与しないものを選んでください。机をきれいにし、瞑想し、ストレッチし、腕立て伏せをし、アートを作り、窓の外を見てください。


0

SASでアドホック作業を行うとき、次の行が非常に便利であることがわかりました。

dm log 'postmessage "Code finished"' continue;

これにより、先行するすべてのコードの実行が終了すると、ポップアップダイアログボックスが生成されます。他の言語にも同等のものがあると確信しています。retracileの答えへのコメントとしてこれを投稿したはずですが、十分な評判はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.