【职业素养】程序员的职业素养

来源:互联网 发布:斐迪南数据 编辑:程序博客网 时间:2024/06/02 11:24

在成为一个出色的开发人员前,必须先成为一个合格的程序员。所以,职业素养和专业性十分重要。下面是关于《程序员的职业素养》–Robert.C Martin 的读书笔记

个人素养

  1. 不要破环任何代码
    在对一个既有项目写代码前,首先要保证,新加入的代码不能造成此前代码的功能异常。并且,不要随意破坏此前代码的结构(注意解耦)。
  2. TDD(测试驱动开发)
    当然不同的程序员对这一点持有不同的看法,但是个人认为,任何时候对自己代码的测试是必须的。对于复杂功能的代码,一定要在设计初期就考虑好编码完成后如何测试。
  3. 持续学习
    程序员要坚持不断学习,除了自己本身最擅长的语言,要再掌握另一门语言。不学习新语言的程序员会遭殃。
  4. 练习
    演奏家要不断练习基础的乐器手法,歌唱演员要练习发声。程序员也要不断练习,提升自己的对代码和语法的熟练。常用API的认识。
    练习最好的一种方式,就是拥抱开源项目。
  5. 合作分享
    自己学习的效率必然不如社群一起分享学习

工程素养

  1. 学会说“不”
    不要对自己难以完成的工作说是,时间,难度都要考虑好。盲目的答应只会造成急于求成,但是留下众多bug,严重的话会导致整个项目崩溃。
    (前些天部门里的应届的同事,负担了整个新版本的功能升级,天天加班。最后项目上线前还是出了很多bug,整组都来改bug。即便如此,没有进行压力测试的情况下,项目上线后出现了严重问题,险些高挂了整台服务器)
  2. 理解“是”
    确认和你合作的人的项目进度。是否已经开始和你工作有关的工作。持续跟进别人的进度。
  3. 编码规范
    不说了,各种规范。同时不要总想着炫技,最好的代码应该是逻辑简洁明了,符合功能要求,易于维护扩展。个人认为,一个方法(特别要求的复杂算法除外)代码应该尽量控制在50行之内,最多扩60行。超过50行的代码,真的让人不想阅读。
  4. 控制编码的节奏
    程序员难以避免的被人打断。可以要求对方如果不是特别急得事情,尽量在特定的时间段处理。比如午饭前,下班前这种编码效率较低的时段。
    遇到解决不了的问题,多和搭档沟通,避免个人陷入死循环的思考。
  5. 预估时间
    对于老板的要求,永远要考虑三个完成时间:乐观时间,标称时间,悲观时间。三者要随实际进度进行调整。
  6. 关于加班
    (个人感觉,这部分可能只有外企能用吧)加班20%的时间不一定能多完成20%的任务;除非具有以下三个条件,才是比较合适的加班:a.个人有时间;b.短期加班,最多两周;c.老板是否有后备预案,还是单纯的为了加班而加班。

团队素养

  1. 理解公司的团队的业务需求
    专业的程序员会花时间去理解和分析业务。主动和策划人员沟通所遭遇的问题。明确团队的目标。业务上的同舟共济是必须的。