前日できなかったことが次の日になって改めてやってみると結構あっさりできるようになったことはないでしょうか?
私個人は帰宅したあと調査したわけでもないのに、次の日には整理できて実現できることが結構あります。
どうしてなんだろう。。とここ最近考えていました。
新しいことや、やったことのないことをやってみるのは技術者としては一番面白いところでもあり、期限があれば一番辛いところだと思います。
初めてやる技術はネットサーフィンをしたり、技術書を読んだりして、いろんな方が書いたサンプルコードを引っ張ってきて検証して、自分の作ろうとしているものに徐々に形を変えていくというやり方がほとんどかと思います。
でも探しても探してもできないことって多々あるかと思います。
それは自分自身が単純にロジックを理解できていないなど様々な原因があるんだと思います。
できない要因
まず、できなかった時のできない要因というものを考えてみました。
- 情報を集め過ぎて整理が付かない。
- そもそもやろうとしていることを実現するための方法論が理解できない。
- 公開されている技術情報が少なすぎる。
- 集中力散漫。
- 体調不良。
- やる気の問題。
できる次の日
できるようになっていた次の日のことを考えてみました。
- 朝一番で出社していた。
- 早く起きて前の日のことを出勤しながら整理していた。
- 二日酔いではなかった。
- ロジックのことだけを考えていた。(他の心配事などはなかった)
まとめてみると、できなかった日は、「そのことばかりやり過ぎて頭の中ががんじがらめになっていたり、集中できる環境下ではなかった」のが、できるようになっていた次の日は「朝早く起きて出勤中に昨日のことをじっくり考え、誰もいないオフィスに朝一番で作業」をしていたのです。
ということは、
「できない日は帰る」→「次の日は一番早く出社して誰も来ないうちに作業してしまう。」
これが一番だということがわかりました。
ただし私の経験上、24時間後ろで監視されながらプログラミングしたときなどはこれはできませんでした。
(なぜなら帰らせてもらえなかったから)
納期がある場合など作業している状況は人によっても違いますし、一概には言えませんが、どうしてもできない場合は、情報だけを集めて、PCを離れて自分の頭の中で整理することが大事なのだと思います。
(その時の状況が許せばのお話です。)
デザイナーでも煮詰まったら他の全然違うデザインを触ったりする方もおられるようです。
前の日終わらずに帰ったら、その代わりきちんと次の日は早起きして頑張る!
あくまで「私の場合」ですので、他の人に当てはまるかは不明ですが、煮詰まることは誰にでもあると思いますので参考までに。
プログラマーは、将棋のように次の手次の手を考えてロジックを作る仕事ですので、きちんと睡眠取って冷静に判断が付けられる状態を保ちたいものです。