iPX社員によるブログ

iPX社員が"社の動向"から"自身の知見や趣味"、"セミナーなどのおすすめ情報"に至るまで幅広い話題を投下していくブログ。社の雰囲気を感じ取っていただけたら幸いです。

頭を切り替えるには

こんにちは。iPXの堀田です。

寒さが徐々に和らぎつつある中、いかがお過ごしでしょうか。
世間は例のウィルス流行により混乱気味ですが、読者の皆様のご健勝をお祈りしております。

過去のブログ記事においてTensorFlowについて書いたことがありますが、最近ではTensorFlowに加えてPyTorchを扱う業務も並行しており、頭が混乱する場面もしばしば・・・
ということで、今回は頭の切り替え方について考えてみたいと思います。

頭の切り替えの大切さ

まず頭を切り替えることがなぜ必要か、私が頭を切り替えないまま進めてしまいやらかしてしまったことをいくつか挙げてみます。

  • ソースコードの修正が必要な部分に気付いていたのに、別の作業に取り掛かっている間に忘れてしまう。
  • 前の作業で使用していた言語で別のコードを書いてしまう。
  • 昨日ネットで調べたはずの外部ライブラリ関数が思い出せない。

まあしょうもない凡ミスの数々ですが、積み重なるとバカにならない時間が無駄になってしまいます。
頭の切り替えをうまく行うことで、コンピューターゲームにおけるセーブとロードのような役割を期待します。

では具体的な頭の切り替え方、もしくはそれに伴う弊害の緩和方法について考えてみます。

アプローチ

休息を取る

タスクを切り替える際に休憩を入れ、リフレッシュする。

これは基本中の基本ですね。
休憩中に考えを整理し、次の作業内容を落ち着いて思い出しましょう。
思考速度を落とし頭を冷やすことも効果的です。

作業項目リスト

プログラムなら実装項目、あるいはもっと細かな・些細なやることをまとめたTODOリストを作成しておき、作業を切り替える際に確認して機械的に次の作業に取り掛かれるようにする。

メモにどの程度の情報量が必要かは人により異なります。
最初の方はリスト作成作業により、あるいは情報が足りず思い出すのに逆に時間がかかることになるかもしれません。
しかし、形に残すということは考えの整理には非常に有効なアプローチです。慣れれば確実に作業効率がアップすることでしょう。

ツールを活用する

プログラミングならではのアプローチかもしれません。

例えば、Visual Studio Code等のIDEにはTODOリストとソースコードを紐付けるような機能・拡張機能があります。(Todo Tree等)
GitHubのIssueもリンク付きコードスニペットを挿入できますね。
文章に表現しづらいタスクもツールを活用してリストアップしていきましょう。

また、頭の切り替え方ではありませんがテスト駆動開発はやらかしに対して容赦なくツッコミ(エラー)を入れてくれます。ちゃんと機能していれば

おわりに

最近担当の案件が佳境に入り、時間を無駄にすることが多かったので振り返ってみました。

書いている途中に思い出したのですが、「思考の整理学」という本がありましたね。
思考の整理学 (ちくま文庫)
読む機会がありませんでしたが、名著ということなので次に読んでみます。