“阅读文本大概需要2.5分钟。”
恰好最近在反省自己的日常生活,感觉每天做些增删改查、枯燥无味的工作, 对于现在的我来讲,学会且能够享受生活就是牛逼,对于其他行业一样。
写代码十年了,现在也还坚持要让自己写写代码。
* 第一层能力,编码能力。用你掌握的语言把描述中的算法编写出来,运行正确。逻辑比较复杂的代码,比如说五层以上的循环,各个层内有判断和处理,能看透能定位问题。或者其他语言写好的核心级别的代码块,能重新编码成另一语言的版本。这一层能力决定了程序员之路能走多顺畅多块。
* 第二层能力,分析推理。从需求文档到对象设计,能有多快多准确。一个问题或者变更,要动哪层哪块代码,动多少,工作量多大。还有,这个需求后续最有可能跟着哪些需求,这个问题后面会隐藏着什么其他缺陷,如何改进,工作量多大。这一层能力决定对技术理解深入到什么级别,对客户业务需求理解有多深入,对软件架构有多了然于胸。
* 第三层能力,销售水平。客户提出的需求,有的是对他重要对你则稍微改动即可,你是免费还是收费,收的话收多少合适。项目管理所谓进度质量成本三角,数据库的速度一致性数据量三角,根本是取舍之道。程序员要生存要发展,人生就是干活,作品的价值,售出的价格三角的平衡。不能只从自己的视角看自己的东西,要从团队客户商业战略角度多审视。所以要提高销售水平,和bug斗也要学会别被人斗,万一斗起来自己能有概率反杀。
* 第四层能力,意志力。这个不用展开,十多年间遇见几个很有天分的,做了几年转售前转项目经理,感觉他们疲于救火了,以至于有些火能力不足以灭了。这个社会专心做技术不行,放弃了技术上的攀登也不行。共勉。
PS:很多人都为了生活打拼,放弃自己的梦想、兴趣、爱好,像机器一样工作。如果一个人有追求,能够享受生活,活的有趣,对我来说他就是牛逼的。除了技术,日常爱好摄影、音乐。我觉得这才叫程序员,而我这种以及很多普通程序员只能算是民工。总体上而言,厉害的程序员能够对问题(不仅仅是技术问题)有更深入的见解,从而能够根据更复杂的信息做更好的抉择,然后能够执行好这个抉择。