何为职业程序员?
职业程序员最重要的一个特点就是个人责任感。职业程序员会为他们的事业、估算、承诺、错误、技能等负责到底。职业程序员不会将这些责任推诿给其他人。
- 如果你是职业的,你就会对自己的事业负责。你有责任阅读和学习。你有责任了解最新的行业技术。很多程序员觉得应该是他们的雇主来培养他们。抱歉,这是大错特错。你会认为医生是这样过来的吗?你会认为律师是这样过来的吗?非也,他们都是利用自己时间和精力来自我培养。他们会花大量的业余时间来阅读期刊和决策,让自己保持最前沿。所以我们也必须如此。你和你雇主的关系在劳动合同里有很好的阐述:雇主承诺付给你薪水,而你承诺做好一份工作。
- 专业人士为他们所写的代码负责。除非他们确认运行正常,否则就不会发布他们的代码。试想一下,如果你愿意发布一份自己都不确定的代码,你又怎么敢认为自己的职业的呢?职业程序员会希望QA团队找不出任何问题,因为在他们没有完成测试过代码之前是不会发布它们的。当然,QA总能找出些问题,毕竟人非圣贤。但作为一个职业者,我们的态度是必须消除QA找出的一切问题。
- 专业人士是团队的玩家。他们为整个团队的输出负责,而不仅限于自己的工作范围。他们帮助他人、教导他人、从他人身上学习,甚至在必要时替他人掩护。当某个队友栽跟头时,其他人就介入进来,因为他们知道自己有一天也会变成需要被掩护的那一个。
- 专业人士不会容忍大bug表。一个庞大的bug列表就是草率的。在问题跟踪库里包含了数千条问题的系统就是粗心大意的悲剧。确实,对多数项目而言,极度依赖问题跟踪系统就是一种粗心的态度。只有最庞大的系统才应该配备问题列表,以便于自动化管理它们。
- 专业人士不会去捣乱。他们以自己的技能为傲。他们保持代码的简洁、良好的结构、以及可读性。他们遵循公认的标准和最佳实践。他们从不焦躁。想象一下你元神出窍来观察一名心脏外科医生在给你做手术。这名医生有了一个deadline(就是字面意思)。他必须在心扉旁路仪损耗你过多血红细胞之前完成手术。那你希望他怎么做?你会希望他像一个典型的软件开发者一样,焦躁并乱搞一通?你会希望他说:“我过会儿再来修复”?还是说你会希望他恪守纪律,抓紧时间,确信自己的方案时他可以做到的最佳方案。那么,你是希望他捣蛋,还是职业化。
职业是一种责任感。他们为自己的事业负责。他们会为自己的代码正常工作负责。他们会为自己的技能质量负责。他们不会在截止时间逼近就亲言放弃。确实,当压力越来越大时,专业人士会纪律严明地坚持自己学识的正确性。