程序员的职业素养

题图来自Pixabay

不想成为优秀程序员的码农,那和咸鱼有什么区别?李清照有句诗:生当作人杰,死亦为鬼雄。也许我们不必、也可能永远都不会是最优秀的程序员,但我们至少可以成为一名职业的程序员。我们也想成为一名专业人士

Chapter 1. 专业主义

作为一名“专业人士”,不仅仅是一种荣耀,它更多的意味着义务,正所谓欲戴王冠,必承其重。当项目中有某个“临时工”犯了错误,他大可不必承担责任,只需要摊摊手,说几句自我安慰的话;如果是“职业”人员,你必须为自己写的每一行代码负责,出了bug必须承担相应的责任。
“职业”的程序员也应当有自己的职业道德,Bob大叔把它概括为以下8点:

  • 了解你的领域
  • 坚持学习
  • 练习
  • 合作
  • 辅导
  • 了解业务领域
  • 与雇主/客户保持一致
  • 谦逊

Chapter 2. Say No

职业的程序员敢于与现实抗争,敢于说“不”。尤达说过:“能就是能,不能就是不能。不要说‘试试看’”。如果某项任务你无法胜任,拒绝接受总比临近交付日期才告诉产品经理你无法完成好;同样的,如果没办法在某个时间内完成,就不要说“试试看”。试试看意味着你会尝试着去完成,而大多数人都是乐观主义者,这样说无异于一种承诺。碍于情面的人也许觉得不妥,需要指出的是:“say no”并不意味着拒绝合作,而且为了团队更好的发展。

Chapter 3. Say Yes

如果你觉得“say no”让你很难为情,那么,“say yes”(做出承诺)也很有挑战性。做出承诺包含了三个步骤:

  • 口头上说自己将会去做
  • 心里认真对待做出的承诺
  • 真正付诸行动

“职业的”程序员对自己做出的承诺会做到言必行,行必果,甚至承担相应的责任,职场上可不允许随便说说而已。

Chapter 4. 编码

“职业的”程序员应该具备良好的编码能力。代码要整洁、符合规范,特别是在赶进度的情况下。Bob大叔在《Clean Code》(《代码的整洁之道》)中说到,一个外科医生不会因为时间紧急而答应病人的请求——不要洗手就做手术,因为这样并不是职业的做法(更别说犯罪)。同样地,职业的程序员不会因为时间紧急就写出混乱的代码或者上百行代码的函数,这样谈不上快,只会让进度更加慢。整洁的代码也需要从平时不断的训练养成,这方面的书有《The Art of Readable Code》、Bob大叔的《Clean Code》、《Code Complete》。

Chapter 5. 测试

Bob大叔的书有一个特点(虽然我只看过两本…),他会在不经意中特别地插入测试方面的内容。看他的书都会对TDD有一定的了解,此处略去n个字……
不管是否采用TDD的方式,“职业的”程序员都必须具有一定的测试能力。最为开发人员,写的最多就是单元测试,虽然单元测试不能保证程序一定不出错,但是写好的单测是对自己代码负责的一种体现。如果代码没有测试过就签入代码库,无异于放进去一个定时炸弹。《Code Complete》里面介绍了一些办法,可以在写更少量的单测的情况下覆盖到更多的代码,例如结构化的基础测试。

Chapter 6. 预估

软件开发过程中最常出现的问题就是延期交付,因为进度延迟往往导致开发人员需要连续的加班,甚至通宵达旦的赶进度,而这个日期很多时候都是由于项目组过于乐观的预估。

  • 时间预估——三元分析法
    三元分析法是1957年美国海军的潜艇极地航行计划中的一部分内容,是一种对预估的计算方法,这种技术简单而有效,把预估变成概率分布。你可以更具三个数字预估某项任务:

    • O:乐观预估。这是非常乐观的数字,也就是我们经常说的最快时间,快到程序没有异常,开发过程中不会出岔。实际上,为了保持乐观预估有意义,这个数字对应的概率应当小于1%(正常分布下具体数字是3个西格玛或者0.13%)。
    • N:标称预估。这个数字概率最大。如果画一张柱状图,标称预估就是最高的那个。
    • P:悲观预估。这是最糟糕的数字,因为它考虑到各种意外,比如飓风啊,战争啊。为了保证这个数字有意义,它的概率也应当小于1%。

    有了以上三个预估,我们可以这样描述概率分布:
    μ = (O+4N+P)/ 6
    μ 是任务的期望完成时间。
    σ = (P - O)/ 6
    σ 是任务的概率分布的标准差,用来衡量不确定性。数字大就表示非常不确定。
    所以一项任务的预估时间就是 μ/σ 。

Chapter 7. 压力

书中有一段描述:

你看见自己躺在一张手术台上,以为外科医生给你做开胸手术。医生竭力挽救你的性命,但是时间有限……
你期望医生的表现如何?你希望他冷静、井井有条吗?你希望他清楚准确地吩咐助手吗?你希望他严格遵循当初训练时的做法坚守手术规程吗?
还是想让他汗流浃背、咒骂之声不断?想让他乱扔手术器械、把东西摔的哐当响吗?想让他满腹怨气责怪管理人员设定的不现实的手术时间,一直嚷嚷时间不够用吗?你期望他表现得像一名专业人士,还是像我们常见的某些开发人员的那种做派?

关于压力,最好的做法就是避免压力:

  • 承诺:不要轻易做出承诺,承诺的时候也要正确地预估,避免过于乐观。
  • 保持整洁:快速前进确保最后期限的方法就是保持整洁。专业人士不会为了快点儿乱来。“快速但脏乱”是自相矛盾的说法。
  • 危机中的纪律:Bob大叔说过,观察自己在危机时刻中的反应就可以了解自己的信念。如果在危机中依然遵循你守持的纪律,就说明你确实相信那些纪律。选择那些你在危机中依然会遵循的纪律原则,并且在所有工作中都遵守这些纪律。遵守这些纪律原则是避免陷入危机的最好途径。

如果压力已经产生,不可避免的,“职业”的做法是不要惊慌,而是从容不迫、努力寻找解决方案,同时寻求帮助。

Chapter 8. 协作

大多数软件都是靠团队开发出来的,单打独斗与游离于团队之外都是不专业的表现。即使是Linus Torvalds这种单兵作战能力超强的,也需要一堆优秀程序员来帮忙维护Linux。想象一下deadline到来之前你拼了命赶进度,恨不得多找几个人来帮忙,这时候你是坚定不移的相信团队开发这个守则的。那为什么平时却不肯相信?
协作主要有两点:

  • 与开发人员的协作:这要求我们按照规范写好代码、注释和文档,便于其他程序员更快理解。这也要求程序员要有良好的表达能力和写作能力。Joel Spolsky在《软件随想录》中给计算机系学生的建议中,第一条就是:毕业前练好写作。
  • 与雇主的协作:代码应该是为了业务服务,有的开发人员只知道为了开发方便,随意的砍需求,或者想出一些不切实际的想法。所以Joel的建议(3)是:毕业前学好微观经济学。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,423评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,339评论 1 289
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,241评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,503评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,824评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,262评论 1 207
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,615评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,337评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,989评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,300评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,829评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,193评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,753评论 3 230
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,970评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,708评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,295评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,207评论 2 258

推荐阅读更多精彩内容