我是一名软件工程师,俗称码农,尽管我已经半年多没写代码,尽管我现在的抬头听起来比码农要威猛许多。我仍然最喜欢这个称呼。
书中有一句,“你要做的只是坐下来思考每一种可能的解决方法,一步接一步,一个接一个,要坚信一定会有一种解决方法,而且你一定能够找到这个方法。”
这大概就是工程师的形象。
我们无时无刻不享受着工程带来的种种便利。工程无处不在却又无影无踪。严谨而系统的解决问题的能力,使得工程师们与其他人群显著区分开。
工程师思维核心是模块化系统思维。就像我们写程序,不仅要识别出系统中的不同角色,也就是职责,还要描绘出不同角色之间的通信与交互,也就是流程。
工程师思维有三个特征。
1. 从现实事物中预见和抽象出结构的能力。工程师不仅仅看到事物的表面,更需要关注冰山没在水底下的部分。历史学家可以在很多年后整理挖掘事物之间的关系,但工程师必须事先就发现。
2. 在约束之下熟练设计的能力。工程不同于思想,永远都有现实的限制。
3. 深思熟虑之后取舍的能力。工程师们常常需要在成本、性能、安全等方面进行平衡,才能达到合理的结果。
科学、哲学和宗教也许忙着追求自认为的真理,而工程则在约束下跳舞。