这篇文章其实来自于学生的一个问题:“在程序员的职业生涯初期,哪些习惯是应该从一开始就养成并保持住的?”
我不是最适合回答这个问题的人,但是作为一个技术出身的媒体人,有义务提供自己的答案。经历了7年的技术生涯,后来作为媒体人又有机会接触到各种顶尖的技术大牛,我觉得这些习惯是值得养成的:
慎于说Yes
在没有搞清楚开发需求、任务工作量、团队期望值之前,100分的程序员不会轻易答应。特别是对于新人来说,比较急于表现自己,对于同事或者老板的工作安排来者不拒,精神可嘉,方法不可取。承诺太多,会出现自己无法按时完成的情况,即使按时完成,也可能没有达到别人的期望值,长期以往别人对你的失望会越来越多。所以推荐的做法是在接受任务时,多问几个为什么,哪怕招人烦也问题不大,把要做的事情弄清楚,和同事和领导多交流明白,之后再说Yes也不迟。
敢于说No
看起来和第一条雷同,其实细究起来不一样。第二条执行起来比第一条难得多。当遇到明显不合理的要求时,可以考虑拒绝,前提是准备好了全面充分的理由。不要经常说No,但是一旦说了,就要切中要害。100分的程序员不会闷头干活,知道自己的定位和团队期望,分清楚哪些是不合理的要求,哪些是合理的要求,然后把明显不合理的要求和领导沟通下,取得支持。
构建自己的知识体系
在信息爆炸的年代,碎片化的知识很多,系统学习的时间越来越少,如果没有自己的知识体系,很容易被淹没在知识的海洋中,而且难以记忆。100分程序员推荐的做法,通过Wiki或者其他知识管理工具构建一个知识框架,大的分类可以包括软技能、架构、语言、前端、后端等,小的分类可以更细化。每周定期把脑海中的东西梳理到管理工具中,让大脑卸下负担,只记住框架、大的分类和关键点,这样可以继续吸收新的知识。工作中的收获不断填充上去,慢慢就形成知识体系了。
培养大局观
程序员比较容易陷入的困境是专注于自己的一亩三分地,不关心团队的进度和业绩,也不关心软件的整体架构和其他模块。这种状态长期下去没有好处,特别是在大公司中,逐渐成长为一颗螺丝钉。100分程序员会在工作之余,多看看其他在做什么,看看团队的整体规划,看看软件系统的架构和说明文档。对自己的工作更理解,而且知道为什么这个产品应该这样设计,为什么领导应该这样做规划,这种大局观非常有利于自己的职业生涯。
代码规范
程序员在新手时期需要培养良好的代码规范。最直接的办法,遵循公司已有的代码规范(如果没有类似的规定,也是醉了),从简单的变量命名到模块划分,有些规则可以导入到编码工具中,更多的部分需要自己体会和遵守。关于此方面的知识,最权威的书籍是《代码大全》,别误会,书名是个美丽的错误,里面不是代码集锦。对于新手来说,养成一个统一的编码风格非常重要,是基础一步。不要把重点放在哪个代码规范更好的争论上,肯定是各有利弊,选定一个遵循即可。
代码审查
把这个单独拎出来说,是因为对于程序员来说很重要。很多快速成长的公司没有这个步骤,建议大家能够坚持下来。让别人审查自己的代码,可以得到更多的反馈,也是和同事交流的好机会;审查别人的代码,可以借鉴别人的经验和思路。通常情况下,代码审查比自己写代码的收获更大,对于新手来说更有价值。只要你想做,不论形式是不是正规,都可以执行下去,最好形成团队的习惯。
学习业务知识
作为100分的程序员,除了精通开发知识,还应该了解业务知识。很多情况下,来自于业务部门的需求是不清楚的,了解业务知识的程序员可以更好地和业务部门交流,而且从业务和技术角度两方面来考虑问题,可以对产品有更好的设计和架构,并可以树立自己在团队中的地位。学习业务知识,可以从基本的内容开始,先了解与自己工作相关的内容,然后逐渐拓展到其他部门,应该对整个业务领域有一个了解。这就是为什么有些领域的公司研发部门在招聘程序员要求具备对应专业的资格证书。
坚持
任何习惯的养成都需要坚持,理论说的再花哨没有实践也是白搭,三分钟热血的事情太常见,好的建议很多,坚持个几项下去就可以受益良多,所以100分的程序员不是最聪明的那批人,而是具有好习惯最多的人。
最后的最后说一句,学无止境,100分的程序员和90分的程序员区别大吗?100分的程序员之所以得100分是因为满分只有100分,而90分的程序员是真实的水平反映。
分享到:
相关推荐
本书名为《高效程序员的45个习惯 敏捷开发修炼之道》,由Venkat Subramaniam和Andy Hunt两位作者...书中的每一个习惯都值得程序员细细品味,并将其融入到日常的工作与学习之中,真正地实践成为一名真正的高效程序员。
【优秀程序员45个习惯】是一本旨在提升程序员专业素养的书籍,由敏捷开发领域的权威Venkat Subramaniam和Andy Hunt共同撰写。这45个习惯覆盖了态度、学习、开发流程、用户、编程以及团队协作等多个方面,旨在帮助...
【优秀程序员的十个习惯】 1. 持续学习与跟进新技术:作为优秀程序员,保持对新知识的渴望至关重要。不断学习新的编程语言、框架和工具,关注行业动态,参与专业社区讨论,如CSDN、ITPUB、CHINAUNIX、digg.com等,...
以下是对标题和描述中提到的十个程序员习惯的详细解释: 1. **学无止境**:持续学习是优秀程序员的基石。随着技术的快速发展,必须不断关注新出现的语言、框架和编程实践,通过阅读专业文章、参加在线讨论和社区...
高效程序员45个习惯,为你的个人拓展提供发展方向
### 高效程序员的10个习惯 #### 一、对事不对人 在软件开发过程中,团队成员之间经常会因为设计方案、技术选择等方面的意见不合而产生冲突。这种情况下,很容易将注意力从问题本身转移到个人身上,导致原本的技术...
高效程序员的45个习惯 英文完整版 V.Subramaniam, A.Hunt - Practices of an Agile Developer - Working in the Real World. 2006.pdf
### 一个程序员的开发习惯 #### 一、项目目录结构的重要性及建议 1. **创建清晰的项目目录:** - 开发过程中,一个清晰合理的项目目录结构对于提高开发效率和后期维护至关重要。 - 建议为每个项目设置一个主目录...
标题中的“程序员的45个良好习惯”是一个旨在提升编程技能和团队协作效率的指南,描述强调了通过培养良好的习惯来提高自身编程水平,成为优秀的程序员。这些习惯涵盖了态度、学习、开发流程、用户、编程、调试和团队...
优秀程序员的45个习惯.rar ok good
程序员编程好习惯总结 程序员在编程过程中需要遵循一些良好的习惯,以提高代码质量、提高工作效率和降低错误率。本文总结了15条程序员编程的好习惯,涵盖了编程设计、代码编写、版本控制、代码优化、代码维护等方面...
优秀程序员的45个好习惯,看看总有好处的
"ACWORDS打字软件"正是针对这一需求,专为程序员设计的一款高效打字练习工具。这款软件充分考虑了程序员的使用习惯,将常见的编程符号如"<>"等置于输入前列,旨在帮助程序员在日常编码过程中提升打字速度,减少错误...
优秀程序员的好习惯共2页.pdf.zip
在探讨《PHP程序员编程习惯》这一主题时,我们聚焦于如何通过面向对象(OO)的编程方式来优化和提升PHP应用程序的质量。文章标题和描述强调了面向对象编程的重要性及其对PHP程序员的帮助,尤其是在培养良好的编程习惯...