《程序员的职业素养》-摘录

原创 知行合一 随笔 读书笔记 235阅读 2018-05-19 22:02:19 举报

程序员的职业素养

豆瓣链接:
https://book.douban.com/subject/11614538/

——————————————————————————————————————————————
面试问题:

在你过去的工作中,遭遇过哪些印象深刻的困难,最后是怎么解决的?

// 解决问题的方式、步骤、反思的深度

ps:意外发现还看过译者翻译过的另外一本书

一、专业主义

责任与义务

不行损害之事

  • 不破坏软件功能(没人能写出完美的软件,但并不表示你不用对不完美负责)
  • 让QA找不出问题
  • 要确信代码正常运行(每一行代码都要测试)
  • 自动化QA
  • 不要破坏结构(软件要易于修改)

职业道德

职业发展是自己的事情,不要将希望寄托于公司。ps 想起来高中关于企业的定义:企业是以盈利为目的的经济组织。

了解你的领域

N-S图表

米利型、摩尔型、耦合性、快速排序

不铭记过去的人,注定重蹈先人覆辙 ps:高中的时候听到的另外一句话:历史给人的唯一教训,就是人们从未在历史中吸取过任何教训。

每个软件开发人员必须精通的事项

  • 设计模式
  • 设计原则
  • 方法:精益、看板、瀑布、结构化分析
  • 实践:测试驱动开发、面向对象设计、结构化编程、持续集成
  • 工件:UML图、结构图、流程图、决策表。

坚持学习

练习 (一万小时)

ps:可以每天做一道题目

合作

辅导(教学相长)

了解业务领域

与雇主、客户保持一致(换位思考)

谦逊

二、说“不”

专业人士敢于说明真相而不趋于权势
ps:敢说真话的有多少,有没有说真话的环境?

团队精神

(学会决绝)

三、说“是”

承诺用语

口头上说,心里认真、付诸行动

缺乏承诺的征兆(需要、应当、希望、但愿、让他们)

如果你不尽早告诉他人可能的问题,就错失了让他们帮你达成目标、兑现承诺的机会。

专业人士对自己的能力了如指掌,他们十分清楚自己还能保持效率加班多长时间,也非常明白要付出的代价。

四、编码

心烦意乱的时候千万别写代码

时间分块

个人时间去解决个人问题

五、测试驱动开发

三项法则

  • 在编号好失败单元测试之前,不要编写任何产品代码
  • 只要有一个单元测试失败了,就不要再写测试代码,无法通过编译也是一种失败情况;
  • 产品代码恰好能够让当前失败的单元测试成功通过即可。
    (有时候,不切实际)

文档、设计

六、练习

开源

七、验收测试

需求的沟通

过早精细化,客户不一定知道自己想要什么。

观察者效应(不确定原则):每次你向业务方展示一项功能,他们就获得了比之前更多的信息,
这些新的信息反过来又会影响他们对整个系统的看法。

ps:初期应该小幅迭代,资本总是迫不及待的。

验收测试

开发人员口中的完成是什么意思。

沟通、自动化

测试策略

单元测试、组件测试、集成测试、系统测试

时间管理

会议(会议是必须的,但是大部分会议浪费时间)

番茄工作法

避免死胡同

预估

分清预估和承诺

大数定律

把大任务分成许多小任务,分开预估再加总,结果会比单独评估大任务要准确很多。

压力

避免压力

  • 承诺
  • 保持整洁

能回避则回避,不行则直面

协作

对做的事情充满激情是好的,但是最好把注意力集中在付给我们薪水的老板所追求的目标上。

多了解业务

团队与项目

团队比项目更难构建

辅导、学徒期、技艺

附录 工具

IDE、问题追踪

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复