作者简介:老G先生,16年IT研发及管理经验,曾在通信大厂、沪上知名电商工作。
《技术人员发展十二条建议》
1、 关于迷信。不要迷信于造轮子来提升自己的实力,满足业务是第一位的。也接受反驳,研读源码、给开源贡献代码、甚至是放弃已知轮子,要造一个。但要问你的初心,你是为业务上线所必须,还是为了自己玩技术。再问项目时间要求,有没有时间和能力打磨好。
2、做好交付。发布频度不是越高越好,这背后是ROI。不同业态涉及到安全性、稳定性、需求的变化不一样,要量体裁衣。但快速交付基本上是大家的共识了。
3、练好基本功。熊节老师曰过:
软件做不好,就是因为不知道怎么开发。没有基本功,什么花哨的套路都玩不了,玩到最后你都会面临同样的一个问题:我今天在这儿改一行代码,我怎么知道改完以后整个系统到底是不是好的?怎么回答这个问题,是决定性的分水岭。如果你没有一套完备、可靠、快速的测试集。
4、系统学习。原理性的东西过时很难,比如网络协议。对于知识付费,少一点碎片学习,多一点系统学习,读经典。
5、刻意练习,不用10000小时,把SNS的基本功能练习了,可能对于并发、缓存、数据库索引就有所掌握;Kent Beck 的《测试驱动开发》多少人run过程序?IM尝试写一个可以跑的程序,又能积累一些网络应用编程的经验。还是熊节老师说的,全靠同行衬托。
6、调查能力。余晟老师在“每七人中已有一人获得免疫能力” 一文综合了德国政府的各路报道,从信源角度就非其他人可比。余老师还谈到
“如果你真的关心2019n-CoV,一定不要过多关注各种所谓自媒体的文章。这些文章大部分都没有调查能力,只能凑字数。无论引起盲目乐观还是盲目恐慌,都不是好事。今天我介绍一些国际接力合作的资源,希望对你有用。”
GISAID + github + Nextstrain,对抗疫情的国际接力
调查能力,对于新闻记者很重要,对于律师很重要,对于警探很重要,对于程序员同等重要。
7、少一些无用争论,如果争论是为了说服不相干的人。
8、提升工作效率。 以按时合格产出为荣。多思考相同的问题,能不能提升解决问题的效率,比如你接1个渠道跟接100个渠道不应该还是同等的工作量。微服务、中台、很多“大词”最终都要会到效率问题上。
9、工程师不等于只写代码。 经常听说一些言论,工程师木讷寡言,不擅长和人打交道。有时候不是是否擅长的问题,是能不能的问题?尺有所长,寸有所短。人有长板短板,但这是基于短板及格(不影响拿到基本结果)的基础上的。要不要和产品去讨论需求,要不要感知客户现场作业?要不要了解需求背后的“需求”?写的代码是否可用?交付的完成定义是哪些?要不要去收集用户使用的情况?
10、处处留心。 每踩一个坑可以帮助个人成长,但成长得比较快的程序员能从别人踩坑中汲取到经验。电商公司的磊哥是一个BG的总架构师,他分享成长秘诀之一就是总是把最难的问题留给自己;而小罗却是另外一类典型。BOSS之前有一个判断,小罗在悟性上明显低于吕布,但小罗会下笨功夫。他经常去研读其它系统的代码,尽管这些系统和当下做的事情无关。3年下来,他是那个一级域大约50几个系统最熟悉全局的人。
11、当日事当日毕。支持晨会和周会制度,通过晨会了解相关协作者的进展,减少点对点沟通。通过周会了解项目进展和风险,更快获得信息,并反馈。
12、总结原则、实践、规律。设计模式、架构模式不外乎涉及到高内聚/低耦合,抽象/平台/扩展设计,SOLID原则;采用简单的方案解决技术问题,不炫技,直到问题变复杂,不做过度设计;对于不了解的东西,做好POC 验证。凡事有利或有弊(成本),识别问题,综合判断。
作者简介:老G先生,16年IT研发及管理经验,曾在通信大厂、沪上知名电商公司工作。