厉害程序员相对于普通程序员的优势在于:
1. 有更高概率做出正确的技术判断,在有多种选择的项目,选择合适的框架,选择合适的算法,选择合适的协议至关重要。比如 ,选择关系型数据库还是NoSQL?选择哪种缓存?选择哪种消息队列?选择TCP还是UDP?高手对技术的各个方面都有深入的理解,对各种技术的优缺点都熟悉,更高概率能选对。任何技术都有短板,高手知道如何扬长避短。
2. 写出的代码更容易排错,不是高手的代码就不会错,而是高手的代码出了错容易找。高手的代码可读性一定很好,模块清晰,命名规范,格式工整,关键的地方有注释,出了异常有log,自然容易排错,即使交给别人去debug也是比较容易的。
3. 厉害的程序员善于解决问题,通常让最好的程序员去解决崩溃,死机和性能问题,这种问题最考验技术功底,需要对系统上上下下有全面深刻的理解,甚至要对OS内核和硬件都有所了解。比如,我们一个工程师负责去解决某些服务器总是死机的问题,最后他调查后怀疑是服务器厂商的主板设计缺陷,导致CPU在进入休眠后有一定概率无法再次唤醒,然后设计了一个测试环境验证了这个问题,反馈给了服务器厂商。这种问题哪是普通程序员能想到的。
我们来谈程序员对性的追求。
可靠性(reliability)
可读性(readability)
可维护性(maintainability)
可测试性(testability)
可扩展性(extensibility)
可移植性(portability)
可伸缩性(scalability)
易用性(usability)
可用性(avaliability)
可重用性(reusability)
互操作性(interoperability)
可管理性(manageability)
可支持性(supportability)
一致性(consistency)
安全性(security)
性能(performance)
稳定性(stability)
精确性(accuracy)
可客制性(customizability)
魯棒性(robustness)
上面都是软件在不同层次下的品质指标,学习软件工程时会谈及。有空再填。
厉害的程序员从不说『这不当初你让我做的吗?』
厉害的程序员从一开始就能识别出那些不靠谱的需求并说服对方放弃或修改。
如果不能说服对方,厉害的程序员就会在设计中留下变更的接口,不把代码写死。等老板客户产品经理过来需求变更的时候,他们也会面露难色,表示变更需要至少X天时间,等产品经理面带愧色离开后,化X分钟把问题搞定然后花时间去做更有意义的事。所以厉害的程序员可能也会加班,但绝不会天天加班。他们不会浪费自己的时间。
厉害的程序员和厉害的销售、厉害的主持人一样,他们对自己所做的工作的内在规律和运行方式有着本质的认识。看他们工作能感受到一种有韵律的美。
===================
解释下什么叫更有意义的事:
为项目(公司)编写更好的开发测试工具包;
优化框架、减少子系统(模块)耦合,将需求变更产生的工作量和代价最小化;
学习更好的技术(开发规范,开发流程),并将其引入到自己的项目(公司)。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有