程序员的职业素养
专业程序员需要的态度、原则和行动。
GNG
哥尼斯堡,我的故乡。
展开
-
《程序员的职业素养》结束篇——协作、团队和成长
文章目录一、协作二、团队三、艰难的锤炼和成长 一、协作 程序员与雇主: 专业程序员的首要职责是满足雇主的需求,深刻理解业务目标,理解代码的业务价值,了解雇你的企业将如何从你的工作中获得回报。两耳不闻窗外事,只顾一头埋在技术堆里是很糟糕的表现,需要学会与业务同舟共济。 程序员与程序员: 每个程序员都不应该把自己的代码周边筑起高墙,拒绝其他程序员接触到这些代码。相反,应该将代码所有权的各种隔...原创 2020-03-25 22:57:26 · 763 阅读 · 0 评论 -
《程序员的职业素养》十一 ——压力
文章目录一、压力二、避免压力三、应对压力 一、压力 想象一下这样一种场景:你看见自己躺在一张手术台上,一位外科医生给你做开胸手术,他的一举一动都与你生死攸关,你期望他冷静、井井有条,还是汗流浃背、满腹怨气地指责手术时间不够用呢?想必你会选择前者。 实际上,很多行业的从业人员都必须在面对压力时保持冷静果断。毫无疑问,作为软件开发人员的我们也置身于巨大的压力之下。时间总是不够用,为了避免bu...原创 2020-03-25 22:53:08 · 261 阅读 · 0 评论 -
《程序员的职业素养》十——预估
1、承诺 如果你承诺在某天做成某事,就必须按时完成,即使它意味着你必须每天工作12个小时,放弃周末的休假。承诺是关于确定性,其他人会把你的承诺当真,据此拟定计划。如果不能兑现承诺,他们的损失以及你的声誉都会受到很大的影响。 2、预估 预估是一种猜测,不包含任何承诺的色彩。大多数软件开发人员都很不擅长预估,这不是因为他们没有掌握关于预估的诀窍,而是根本没有这样的诀窍。 预估不是个定数,预估...原创 2020-03-22 15:53:11 · 545 阅读 · 0 评论 -
《程序员的职业素养》九——时间管理
1、会议 为了完成项目,有很多时候确实需要所有参与者坐在一起共同商讨,即会议是必要的。但同时会议会浪费大量的工作时间,所以为了高效、合理使用与会者的时间,会议应该有清晰的议程以及明确的目标。 邀请你参加会议的人一般并不负责管理你的时间。有些会议可能让你感兴趣,但当下并没有参加的必要,这种情况就要考虑自己能否花得起时间。 有些会议是关于你已经完成的工作,对当前的工作没有现实意义,仔细评估...原创 2020-03-22 15:45:24 · 304 阅读 · 0 评论 -
《程序员的职业素养》八——测试体系
QA也是开发团队的一部分,并非彼此对立、敌对的关系。专业开发团队应遵循TDD为需求创建单元测试,使用验收测试定义系统需求,使用持续集成保证质量稳步提升,此外还需要创建一个更高层次的测试体系。这个体系中包括单元测试、组件测试、集成测试、系统测试和探索式测试。 1、单元测试 位于金字塔底部,由程序员使用和系统相同的语言编写,其目的是在最低层次上来定义系统。这些单元测试会作为持续集成的一部分来运...原创 2020-03-22 16:01:23 · 788 阅读 · 1 评论 -
《程序员的职业素养》七——验收测试
1、需求沟通——避免过早精细化 做业务的人和写程序的人都容易过早进行精细化。 首先,业务方还没有启动项目,就要精确知道最后能做到什么;开发人员还没评估整个项目,就希望精确知道要交付什么。很多时候,落实在纸上的需求和最终真正做出来的也是不一样的。每次向业务方展示系统运行情况时,他们就获得了比之前更多的信息,这些信息反过来又会影响他们对整个系统的看法。业务需求在任何阶段都可能发生变化,这就是“...原创 2020-03-22 16:06:31 · 306 阅读 · 0 评论 -
《程序员的职业素养》六——练习
专业人士都需要通过专门训练提升自己的技能,如钢琴家练习演奏,律师练习辩论,医生练习开刀和缝针。只有通过反复练习,才能将一系列问题及其解决方案烂熟于心,才能将头脑中的思路和意图转变为指尖上本能的动作。通常练习都是占用自己的时间,而非工作时间。也许工作已经足够忙,没有时间去考虑练习技能,但坚持完成练习后,回报亦非常丰厚。 就像习武之人一样,程序员也可以通过反复练习,才能掌握编码的“组合拳”。把...原创 2020-03-22 15:36:12 · 272 阅读 · 0 评论 -
《程序员的职业素养》五——测试驱动开发
文章目录1、概述2、TDD所遵循的三个基本原则如下:3、测试驱动开发的基本流程:4、TDD的优势 1、概述 测试驱动开发(Test Driven Development,简称TDD),距今已有20多年的历史。简单来说TDD就是:测试代码优先于产品代码编写,通过测试不断驱动编写完善的产品代码,实现所需的功能。TDD与通常开发模式在角度和思考方式上相反,会让刚接触TDD的人难以接受。 2、TDD...原创 2020-03-22 15:33:51 · 385 阅读 · 0 评论 -
《程序员的职业素养》四——编码
文章目录1、编码2、代码质量:3、流态区4、结对编程5、调试6、加班 1、编码 编码是一项颇具挑战也十分累人的智力活动,必须聚精会神、保持信心,同时要具备“出错感知”能力才能做好这项工作。 疲劳和焦虑时千万不要写代码,这种状态下写的代码会回过头来一遍又一遍肆虐我们。 2、代码质量: 代码必须能够正常工作。(多了解当前系统的生态,如:语言、平台、架构等) 代码必须能够帮你解决客户的问题。...原创 2020-03-22 15:25:08 · 562 阅读 · 0 评论 -
《程序员的职业素养》三——说“是”
1、人性 很少有人会认真对待自己说的话,并且说到做到; 人都有逃避承担责任的倾向。 2、承诺 虚假承诺:后续不会有任何进展 想法型:“我需要减肥”、“我们真的得再弄些新路由器了”,这些都仅仅表达了一个想法、建议,并不是承诺。 愿景型:“希望我们明天能完成这个任务”、“但愿我有时间做这件事情”、“我尽量试试吧”等。 事不关己型:“让我们把这件事做完”、“有人应当负责去推动这个事情”等,显...原创 2020-03-22 15:18:19 · 251 阅读 · 0 评论 -
《程序员的职业素养》二——说“不”
1、心态 被施压时说“不” 面对软硬兼施连哄带骗时说“不” 对自欺欺人不作为的人说“不” 有时候获取正确决策的唯一途径,必须通过勇敢无畏地说“不” 2、行动 专业人士敢于说明真相而不屈从于权势。(在被施压时说“不”) 如:老板耳提面命、不容置喙地要求必须按期上线,若问题较多无法按时完成,专业人士应懂得说“不”,坚持己见。加班可以提高一时的进度,但并不是长久之计,如果硬来,加班也可能使结果变...原创 2020-03-22 15:08:46 · 246 阅读 · 0 评论 -
《程序员的职业素养》一——专业主义
1、心态 “专业主义”不但象征着荣誉和骄傲,同时也意味着责任和义务。在项目中写了一个bug,以致给公司造成了损失,专业人士会主动承担责任,专业主义的精髓就在于将公司的利益视同个人利益。 2、行动 要做到专业,就不能留下bug。代码中难免有bug,但这并不能为你开脱,依然要对自己的不完美负责。(如:忽略了测试环节) 什么样的代码是有缺陷的?那些你没有把握的代码都是!把没有把握的代码,交给QA测...原创 2020-03-22 14:44:47 · 282 阅读 · 0 评论