1 总是想凭自己的能力,从零开始单独完成功能代码,事实上,实现大多数功能的过程是,复制粘贴现有代码,外加适当修改。 2 认为掌握的编程语言越多,能力就越强,事实上哪怕就掌握一种语言,往深了学,都能拿到架构级别甚至更高的薪资。 3 面向教科书编程,比如设计表是用三范式,一个类如果能定义成抽象类,那就绝不定义成一般的类,事实上很多项目是赶进度,会用最直接(也可能是最粗糙)的方法实现功能。 4 认为做增删改查外带问题排查,是程序员工作的全部,在工作中遇到linux或组件或性能调优方面的问题,会主动排斥。事实上,写代码只是程序员工作中很少的一部分,更多的需要去关心项目测试,部署上线以及组件等值钱方面的技能。 5 过度重构,过度使用设计模式,只要是代码经手,眼睛里容不得沙子,恨不得把所有代码照着重构规范或设计模式规范重写一遍。事实上,做程序员的首先要确保代码准时完成,其次架构方面的能力不等同于重构方面的能力。 6 过度关注底层,比如跑通spring boot项目后,想要去看底层代码知道spring boot的流程,美其名曰知其然知其所以然,但更应该从流程上知道每个模块能干嘛,能怎么通过调整API来实现功能,在此基础上再去了解细节。 7 缺乏全面达到质量意识,尤其会忽略异常情况下的表现,比如做好某个功能后,确实能通过输入各种正确的参数来验证功能,但不会通过输入错误的参数来确保模块的健壮性。 8 过度迷信类似“回有四种写法”的编程技巧,比如在实现求幂时,为了提升性能,要用左移的方式。事实上程序员的价值,固然体现在编程方面,更体现在部署上线,问题排查,搭建业务系统(比如分布式集群),排查架构问题等方面,而所谓的编程技巧,更多只是单机版编程技能。 9 只关心技术提升,不关心如何提升自己的收益。比如某人在小公司干得风生水起,但如果问,下份工作该去哪?为了让自己的收益提升50%,该如何准备跳槽,那真就未必知道。 10 过度迷信领导的说辞,尤其在小公司,听领导说辞时,更要判断其背后的动机。或者说,如果在小公司,你真认真照领导说的做了,过了若干年,你发展的上线估计还真就是你领导的位置,而事实上,大公司的程序员,论技术和论薪资,绝对能碾压不少小公司所谓的“中高层领导”。 |
|