引言
辞职是突然的,而且是有预谋的。
辞职前一定要找好下家,要非常冷静,非常趁着,不要拉上其他人。
第1章 专业主义
专业主义的精髓就在于将公司的利益视同个人利益。专业主义就意味着担当责任。
未进行测试就交付软件就是不负责任的。
软件开发太复杂了,不可能没什么Bug。单很不幸,这并不能为你开脱。
代码中难免会出现bug,单着并不意味着你不用对他们负责;没人能写出完美的软件,但这并不表示你不用对不完美负责。
所谓专业人士,就是能对自己犯下的错误负责的人,哪怕那些错误实际上在所难免。
失误率永远不可能等于零,但你有责任让它无限接近零。
让QA找不出任何问题,要确信代码正常运行,自动化QA。
如果你有一套覆盖了全部代码的自动化测试,如果那套测试可以随时快速执行,那么你根本不会害怕修改代码。
职业发展是你自己的事。雇主没有义务确保你在职场能够立于不败之地,也没有义务培训你,送你参加各种会议或给你买各种书籍充电。
将自己的职业发展寄希望与雇主的软件开发人员将会很惨。
不能铭记过去的人,注定重蹈先人的覆辙。
每个专业开发人员必须精通的事项:设计模式、设计原则、方法、实践和工件。
不写代码的架构师必然遭殃,他们很快会发现自己跟不上时代了;不学习新语言的程序员同样会遭遇,他们只能眼睁睁看着软件行业径直向前,把自己抛在后面。
联系、合作、辅导、了解业务领域、与雇主/客户保持一致、谦逊、
第2章 说“不”
“能就是能,不能就是不能。不要说‘试试看’。”
如果他们是专业程序员的话,他们也会竭尽所能地去追求和捍卫自身的目标。
要有团队精神。
许诺“尝试”,就意味着你承认自己之前未尽全力,承认自己还有余力可施。
尽管客户一再声明交付日期很重要,尽管他们对此表现得似乎非常迫切,但他们永远不会像你那样在乎应用程序的按时交付。
专业人士常常会成为英雄人物,但这样的荣誉并非是他们所可以追求的。
成为英雄及“解决问题”的诱惑诚然巨大,只是我们要明白,委屈专业原则以求全,并非问题的解决之道。舍弃这些原则,只会制造出更多的麻烦。
第3章 说“是”
作出承诺,包含三个步骤:
1. 口头上说自己将会去做。
2. 心里认真对待做出的承诺。
3. 真正付诸行动。
你只能承诺自己能完全掌控的事。
如果你无法兑现承诺,那么最重要的就是尽早向你的承诺对象发出预警,越快越好,越早越好。
做出承诺或许听起来令人有点害怕,但它能够帮助程序员解决在沟通中可能发生的不少问题。如果你能够一直信守承诺,大家会以为你“是一名严谨负责的开发人员”。
专业人士不需要对所有请求都回答“是”。不过,他们应该努力寻找创新的方法,尽可能做到有求必应。
第4张 编码
首先,代码必须能够正常工作。代码必须能够帮你解决客户提出的问题。代码必须要能和现有系统结合的天衣无缝。其他程序员必须能读懂你的代码。
如果感到疲劳或者心烦意乱,千万不要编码。
在听音乐时无法写好代码。音乐并没有帮助我专注与编码。事实上,听音乐似乎消耗了至为重要的一部分脑力资源,而这些资源本该用于编写设计良好的整洁代码。
中断无法避免,总有干扰会打断你、消耗你的时间。发生这种情况时,要记住一点,也许下次会轮到你去打断别人请求帮助。因此,礼貌地表现出乐于助人的态度才是专业的态度。
对于公司来讲,调试时间和编码时间一样昂贵。
绝对的零调试时间是一个理想化的目标,无法达到,但要将之作为努力方向。
可以通过创建一个确切定义的“完成”标准来避免交付失误。最好的方法是让业务分析师和测试人员创建一个自动化的验收测试,只用通过这些验收测试,开发任务才能算已经完成。
编程很难,事实上,仅凭一己之力无法编写出优秀的代码。即使你的技能格外高超,也肯定能从另一个名称需要的思考与想法中获益。
第5章 测试驱动开发
第6章 练习
现在我们有了更好的工具,更好的语言。可是,语句的本质并没有随着时间而改变。20世纪60年代的程序员完全可以看懂2012年的代码。我们真正打交道的东西,40年来没有多少改变。
任何事情,要想做得快,都离不开联系。
无论如何,专业人士都需要练习。练习的时候你是赚不到钱的,但是联系之后,你会获得回报,而且丰厚的回报。
第7章 验收测试
做业务的人和写程序的人都容易陷入一个陷阱,即过早进行精细化。
完成意味着所有的代码都写完了,所有的测试都通过了,QA和需求方已经认可。这,才是完成。
第8章 测试策略
第9章 时间管理
关于会议,有两条真理:会议是必备的,会议浪费了大量的时间。
邀请你参加会议的人并不负责管理你的时间,为时间负责的只有你。所以,如果你收到会议邀请,务必确保出席会议可以给自己目前的工作带来切实且显著的成效,否则不必参加。
如果会议让人厌烦,就离席。
凡是不能再5分钟内解决的争论,都不能靠辩说解决。
编程是需要持续投入精力和注意力的智力活动,注意力是稀缺的资源。
睡眠的重要性怎么强调都不为过。
太多的咖啡因会把你的注意力偏转到奇怪的方向。
所有软件开发者都要遇到死胡同。慎重的态度和积累的经验可以帮你避免某些死胡同,但是没法完全避免所有的。所以你真正需要的是,在走入死胡同同时可以迅速意识到,并有足够的勇气走回头路。这就是所谓的坑法则:如果你掉进了坑里,别挖。
最糟糕的事情,莫过于看到一群开发人员在徒劳地拼力工作,结果却陷入越来越深的泥潭。
第10章 预估
预估是业务人员和开发人员之间最主要的障碍,横亘在双方之间的种种不信任,几乎都由它引发。
承诺是关于确定性的。其他人会把你的承诺当真,据此拟定计划。
预估是一种猜测。它不包含任何承诺的色彩。它不需要做任何约定。预估错误无关声誉。我们之所以要预估,是因为不知道到底要花费多少时间。
专业开发人员能够清楚区分预估和承诺。只有在确切知道可以完成的前提下,他们才会给出承诺。此外,他们也会小心避免给出暗示性的承诺。他们会尽可能清楚地说明预估的概率分布,这样主管就可以做出合适的计划。
第11章 压力
应对压力的诀窍在于,能回避压力时尽可能地回避,当无法回避时则勇敢直面压力。可以通过慎重承诺、遵循自己的纪律原则、保持整洁等来回避压力。直面压力时,则要保持冷静,与别人多多沟通,坚守自己的原则记录,并寻求他人的帮助。
第12章 协作
对做的事情充满激情是好的,但是,最好把注意力集中在付我们薪水的老板所追求的目标上。
专业程序员的首要职责是满足雇主的需求。
你需要理解手上正在编写的代码的业务价值是什么,了解你的企业将如何从你的工作中获得回报。
如果我们真想终生能以编程度日,那么,一定要学会交流——和人们交流。
第13章 团队与项目
专业的开发组织会把项目分配给已形成凝聚力的团队,而不会围绕着项目来组建团队。
第14章 辅导、学徒期与技艺
学校能够传授的是计算机编程的理论。但是学校并不会也无法传授作为一名编程匠者所掌握的原则、实践和技能。
分享该书的共享下载地址 http://pan.baidu.com/share/link?shareid=1591147589&uk=2167302790