写代码,与写文章、绘画、思考复杂问题,并没有本质上的区别,都是创造性的活动。 每个人的创造力,都会随着身体状态而波动。广为人知的是,一个人年老体衰后,相比年富力强时,创造力会急剧下降。其实,人每天的状态起伏,也同样会剧烈影响这一点。 如果是拧螺丝,那么在精疲力尽、拧不动以前,身体状态对结果不会产生太大影响。因为拧螺丝的指标非常简单——拧紧,要做的事也非常机械化——拧,直到它紧,换下一个。 但如果是写代码,有些事,是不能在状态不好的时候完成的。 比如,在 Java 里,遍历一个外部的 List,做一些处理。如果状态不佳、做事前想的东西少了点,那么很可能直接这么做: public void handleAList(List aList) { for (int i = 0; i < aList.size(); ++i) { // Do sth with List#get(int) } } 这样做是从 C/C++ 带来的一种很直观的做法。有什么问题吗?