《高效能程序员的修炼》从书名来看,像是写给程序员们的葵花宝典,事实也是。但当程序员阅读此书,会发现其中的道理不仅仅面向了程序员,对诸多职业也有着同样的借鉴意义。

软件开发远不只是写代码那么简单……

封面第一句。软件开发是个很有意思的话题,从一个团队来说,软件开发可以是一个软件团队的组织管理;从一个项目来说,软件开发可以是一个功能的设计与实现;从一名开发人员来说,软件开发可以是一个独立的接口开发。软件开发可以包含编程语言、IDE、敏捷开发、AAR、部署、发布、维护等等,程序员是软件开发重要环节之一。

但,这句话远不只是软件开发那么简单……

通用来说,我们所承担的岗位,远不只是,满足岗位职责,那么简单。至少对于一个有追求的开发、测试、销售等等来说,并不只是那么简单。通常,若要满足岗位的基础职责,听话、加班、熟练、考证、升级差不多的就够了。若要做的好些,用用设计模式、聊聊深度学习、谈谈架构设计,领导看见也能美滋滋。若要更好些,把自己的岗位看做一个棋子,纵观整个棋盘,考虑到棋子的交互配合、以最终棋盘胜负为岗位成败的意识(技术强者若不配合项目达成目标,那也一文不值)。若要再好些,或许需要更长远的预见性,预见客户诉求变化的倾向、预见技术发展趋势、提供可复用的技术或模式等等。

事事往往思易行难,不管是写代码还是公务员等,谁能料定能受宠10年20年。世界在惩罚不思考的人、惩罚懒惰的人,例如中年危机。简单,往往是在特定年龄,特定场景下享受的奢侈待遇,这些如果离开,那便是一无所有。

我认为最有效的,最好保值的,是从岗位出发,经过岗位技能的熟练,再到岗位技能的精通与改进,最后再到哲学指导(并不特指某个体系,可以是某种设计的根性分析联通到了世界的规律等)。哲学,不管是佛学还是西方哲学亦或等等,决定了一个人看待事物的立场,体现出他处世的态度,影响了其分析设计的理念。一个人的视野与处世态度,往往决定了其在一个岗位上的长久,甚至是绝大部分岗位。同时,哲学必须建立于强力的技能之上,大多数的我们,大部分的时间便是工作,所以我们的岗位是联系哲学最有效的途径之一。

我的观点是,不抵达哲学的岗位承担,往往是随波逐流的祈祷;脱离技能的哲学,更像是自欺欺人。简单,并不是<程序员=写代码>这么简单,断章取义别人的<化繁为简=简单>是无知的体现。作为一名程序员,无论是开发还是测试,若对于软件开发的理解就是写代码,那就真的危险了。

程序员应当是为程序而生的哲学家,他不仅可以设计并写一段漂亮的代码,还可以做一手好菜,画一幅好画等等。软件开发远不只是写代码那么简单……做饭也远不只是开火放盐那么简单……