7、不断升级
伟大的程序员会积极主动地把自己的技术升级。他们对知识的态度就像饿猫见着了牛奶,他们从不用上级催促给自己设定目标、不用经理要求他们完成任务,因为他们自己就已经安排OK了。
他们发现自己想要参加的大会就会给公司写Email“本人非常想参加今年的Tech-Ed大会。我将用心研习,并对作出贡献。我预计这可节省<金钱/其他原因>。如果可行,不知公司是否帮我支付此行?”如果我收到这样的邮件,我不仅会帮他支付参会费用,他的路费我也会全程买单。
伟大的程序员们永远会关注例如.net用户组或Java用户组的所有用户群体。他们参加本地的技术会议,并从中汲取知识。你会看所有最新博客和最新的杂志吗?现在列出你最喜欢的前5个开发博客。你能做到吗?你应该像参加基督教青年会那样轻松做到。做到这些,可以很好的帮助你延伸你的思路!你将会不断获得更好的点子!你会得到更好的回报!
8、团队奉献
你可以是团队中最棒的那个人,可是如果你不是最好的程序员、不是建筑师、不是团队里最有活力的人,那么对我来说,如果你不能分享或对你的团队有帮助,你的价值就会大打折扣。一个好的程序员会使自己周围的人同样强大起来。试想一下,好程序员会不断完善自己的知识和能力,如果他们不和周围的人分享他们的知识,他们从哪儿能获得更多呢?
他们不断学习新东西,发掘新技术,但是不会让其他人知道他们这么做了。一个好的程序员会准时完成方案,但是那是在催促和团队得不到休息的前提下。然而一个伟大的程序员则会与团队中所有的项目保持联系,在需要的时候还可以出手帮忙。他们会如是说:“我注意到A团队的项目进行到xx进度了,如果不介意的话,我想我可以帮忙?”
9、做好会议记录
做好会议记录绝对至关重要!开会期间,大家花大量时间来说明了新观点、新主张、集体讨论还有提出了新设计方案,可是会议结束后却没有人可以拿得出会议记录,简直没什么比这更糟糕的事情了。即使你有会议大纲,我还是期望见到参会的每一个人员都可以带着纸和笔(当然对于程序员来说笔记本则堪称完美)。一个伟大的程序员会注意到这点。他们会记下所有的会议记录,并且在会议结束的的时候说:“就刚才的会议,我着重记录了几点:XX…… 我是否记录全了呢?”
接下来,伟大的程序员就会把他做好的会议记录分发给项目管理者,列出会议时间、会议主题和参会者。接下来,是会议项目的标题和重要条目。在这之后,就是这些议题的详细记录。一个好的程序员没有做会议记录,并在会议上对提出的每项事宜都点头称是,那只能寄希望于他的记忆力足够好了。随后,他会给你发邮件让你看看他的改动,你得回头提醒他忘记的不多,百分之九十的都没错。——这不是浪费时间嘛!根本不是这么回事!所以,做好你的会议记录。
10、孺子可教和接受批评
如果你读到这儿了,就表明你有希望接受这些建议,并在以后的开发行动中尝试执行。对,程序员的另一项重要能力就是向他人学习并且能够接受批评。通过把自己变为一个虚心受教的人,像海绵一样快速吸收大量知识,毕竟在编程的路上你还有很多前辈。当然,也许他们在写代码的岁月里慢慢生了锈,甚至伤痕累累,但是他们毕竟曾披荆斩棘跨过无数的坎儿。对于做出正确决定,他们又着瞬间的本能,让你不得不服。处于他们这个位置,很乐于见到你的成长和成功。
所以,只要你是个伟大的程序员,就会理所当然的拥有理想的工作环境。如果你不断改善技能、虚心好学、在别人给出的意见和批评中总结错误并得以改善,我向你保证你将会成为一个伟大的程序员而不只是想象自己变得伟大而已。如果你总把自己想象成为“精英”而不进步,那你只是自欺欺人。如果你不成长,你甚至不能停留到原地,等待你的只有灭亡!
11、公司需要的时候总能出现
这如同等价交易。如果你为一家伟大的公司工作,他们会给你足够的弹性。公司不会限制你如何工作,不限制你开始或结束的时间,也不会限制你什么时候停下来歇歇。公司会鼓励你在休息时间做做操,甚至会在你和团队成员出去吃饭的时候为你们买单……在繁复大量而紧张的工作后,公司会放你几天小假。诸如此类。
然而,毫无疑问,与前面的这些美事儿随之而来的是责任。如果赶上时间紧还得出活儿,伟大的程序员则建议你即使在周末也要加班。即使干得再晚也得把活儿干完。你看,伟大的程序员是要为自己的创作负责的。这虽不是必需的,但这是伟大程序员的标志之一。有些人只想朝九晚五的上班,他们可能不错,但是成不了伟大的程序员。伟大的程序员是团队中干到最后的那个,把作品视为完美的艺术,与团队成员亲如一家。
12、衣着职业化
你永远也不知道一个客户会什么时候突然拜访。你也永远不会预知什么时候突然要参加一个会议,不是每一件事都在计划中的。你得随时准备好展现自己。一个好的程序员周一到周五穿着普普通通,甚至有可能穿牛仔装和运动鞋来上班。在某些周五,他们穿着T恤,短裤和运动鞋出现。当一个客户突然在周五出现,要谈一个大项目,你没法把衣衫不整的他一块儿叫上。
一个伟大的程序员周一到周五都穿着职业化,衣服也能带来成绩。如果你不在意穿着,你也会因为穿的太奇怪而得不到晋升。毫无疑问,套装和领带还是很能提升你自己的。我向你保证,一套得体大方的西服套装会让你在今年就觉的物超所值。
13、沟通能力
这是另外的判定条件。这世上有太多优秀程序员,却没几个伟大的程序员。为什么呢?因为大多数程序员不善交流。交流的层次很多:从发电子邮件、参加小型SCRUM开发小组会议到大一些的主管会议,水平逐渐提升。这样你就能在数百人参加的会议上自如地展示你的软件。在会议上你不需要有好演技,但是至少要清晰明了地表达你的观点。你的沟通能力越强,你的职业道路就会走得越远!
概要:想要成为管理人员,你的沟通能力得分至少要打到9到10分。甚至你在会议上只讲了几分钟,或只一个小汇报,你都需要非常好的表达能力。别只是在你的每天的工作日志寥寥写上“修补1371个bug”,你要做的是尽可能描述清楚如何在这么艰难的情况下解决了问题。阐明你的方法,说明你如何保证这个bug不再出现。你就不再为你的日志发愁了。这会是你向经理展示自己的精彩演出。
14、目标设定的技巧
好的程序员日复一日的做你安排给他们做的事情,贯穿始终。他们并不往远看,不对明年、5年甚至10年后作打算。一些好程序员虽然知道自己想要什么,却没有具体计划去实现。伟大的程序员则给自己订立年度、未来5年的目标,而且大概预期到自己10年后的发展。
伟大的程序员有了目标不会只是想象,他们会具体实施。他们会根据具体情况,在预期的时间做具体的事情。他们会详细地制订明年的计划,包括要上的课程、要完成的项目甚至包括他们需要建立的人际关系。
15、组织技巧
把所有事情整合在一起的最关键要素是组织。你可能是世界上最好的程序员,但如果你不善于组织你所做的事儿,你的工作将陷入瘫痪,最终丧失优势。伟大的程序员保持自己工作平台的整洁有序,保留所有的笔记并调理清晰。他们标出自己的会议日程表。他们有专门的收件箱给日程邮件、会议和新任务分类。他们保留文档并能在需要时迅速找到所需。
额外要提到的:激情
伟大的程序员如果没有热情,那么他的工作也并不伟大。好的程序员有了热情来对待他的工作、方案和团队,那么他比伟大的程序员还要伟大。
在回顾的时候,我用这些标准来评判我的开发团队。我给我的团队尽可能最好的环境,作为回报,我想要他们都成为最伟大的程序员。你可以用这些标准来评判你的团队,或者你本身就是一名程序员,请用这张列表来尽可能地改造自己来超越同侪。
备注:Generics是程序设计语言的一种技术,指将程序中数据类型进行参数化,它本质上是对程序的数据类型进行一次抽象,扩展语言的表达能力,同时支持更大粒度的代码复用。对于一些数据类型参数化的类和方法来说,它们往往具有更好的可读性、可复用性和可靠性。在设计集合类和它们的抽象操作时,往往需要将它们定义为与具体数据类型无关,在这种情况下,使用Generics就是非常适合的。