在没有搞清楚开发需求、任务工作量、团队期望值之前,100分的程序员不会轻易答应。特别是对于新人来说,比较急于表现自己,对于同事或者老板的工作安排来者不拒,精神可嘉,方法不可取。承诺太多,会出现自己无法按时完成的情况,即使按时完成,也可能没有达到别人的期望值,长期以往别人对你的失望会越来越多。所以推荐的做法是在接受任务时,多问几个为什么,哪怕招人烦也问题不大,把要做的事情弄清楚,和同事和领导多交流明白,之后再说Yes也不迟。
看起来和第一条雷同,其实细究起来不一样。第二条执行起来比第一条难得多。当遇到明显不合理的要求时,可以考虑拒绝,前提是准备好了全面充分的理由。不要经常说No,但是一旦说了,就要切中要害。100分的程序员不会闷头干活,知道自己的定位和团队期望,分清楚哪些是不合理的要求,哪些是合理的要求,然后把明显不合理的要求和领导沟通下,取得支持。
在信息爆炸的年代,碎片化的知识很多,系统学习的时间越来越少,如果没有自己的知识体系,很容易被淹没在知识的海洋中,而且难以记忆。100分程序员推荐的做法,通过Wiki或者其他知识管理工具构建一个知识框架,大的分类可以包括软技能、架构、语言、前端、后端等,小的分类可以更细化。每周定期把脑海中的东西梳理到管理工具中,让大脑卸下负担,只记住框架、大的分类和关键点,这样可以继续吸收新的知识。工作中的收获不断填充上去,慢慢就形成知识体系了。
程序员比较容易陷入的困境是专注于自己的一亩三分地,不关心团队的进度和业绩,也不关心软件的整体架构和其他模块。这种状态长期下去没有好处,特别是在大公司中,逐渐成长为一颗螺丝钉。100分程序员会在工作之余,多看看其他在做什么,看看团队的整体规划,看看软件系统的架构和说明文档。对自己的工作更理解,而且知道为什么这个产品应该这样设计,为什么领导应该这样做规划,这种大局观非常有利于自己的职业生涯。
程序员在新手时期需要培养良好的代码规范。最直接的办法,遵循公司已有的代码规范(如果没有类似的规定,也是醉了),从简单的变量命名到模块划分,有些规则可以导入到编码工具中,更多的部分需要自己体会和遵守。关于此方面的知识,最权威的书籍是《代码大全》,别误会,书名是个美丽的错误,里面不是代码集锦。对于新手来说,养成一个统一的编码风格非常重要,是基础一步。不要把重点放在哪个代码规范更好的争论上,肯定是各有利弊,选定一个遵循即可。
把这个单独拎出来说,是因为对于程序员来说很重要。很多快速成长的公司没有这个步骤,建议大家能够坚持下来。让别人审查自己的代码,可以得到更多的反馈,也是和同事交流的好机会;审查别人的代码,可以借鉴别人的经验和思路。通常情况下,代码审查比自己写代码的收获更大,对于新手来说更有价值。只要你想做,不论形式是不是正规,都可以执行下去,最好形成团队的习惯。
作为100分的程序员,除了精通开发知识,还应该了解业务知识。很多情况下,来自于业务部门的需求是不清楚的,了解业务知识的程序员可以更好地和业务部门交流,而且从业务和技术角度两方面来考虑问题,可以对产品有更好的设计和架构,并可以树立自己在团队中的地位。学习业务知识,可以从基本的内容开始,先了解与自己工作相关的内容,然后逐渐拓展到其他部门,应该对整个业务领域有一个了解。这就是为什么有些领域的公司研发部门在招聘程序员要求具备对应专业的资格证书。
任何习惯的养成都需要坚持,理论说的再花哨没有实践也是白搭,三分钟热血的事情太常见,好的建议很多,坚持个几项下去就可以受益良多,所以100分的程序员不是最聪明的那批人,而是具有好习惯最多的人。
最后的最后说一句,学无止境,100分的程序员和90分的程序员区别大吗?100分的程序员之所以得100分是因为满分只有100分,而90分的程序员是真实的水平反映。
作者的微信公众号“老崔瞎编”,关注IT趋势,承载前沿、深入、有温度的内容。感兴趣的读者可以搜索ID:laocuixiabian,或者扫描下方二维码加关注。