卓越程序员密码

来源:互联网 发布:淘宝卖家开通公益宝贝 编辑:程序博客网 时间:2024/05/16 05:29

The Developer’s Code - What Real Programmers Do
Ka Wai Cheung(张家为) 著
劳佳 译
无意中在图书馆看到的一本书。希望通过阅读类似的书籍,来树立一个大的方向。卓越程序员是怎样的,如何成为一个卓越的程序员。同时也可以回答我是否真的喜欢成为一个程序员。

第 1 章 引言

第 2 章 比喻

代码生成?
Code Generation in Action, Jack Herrington
无论你在开发团队中的职务级别如何,都要坚持写代码,这正是你最有价值的地方。
无论是上层界面,还是底层引擎,软件设计的目标是一致的。我们没有理由不能在多个领域都做得出色。
软件开发中的传统职责分工,即架构师、程序员和项目经理的划分,压抑了那些在多个领域都有才华的人。一个人可以同时是有远见的规划师、周到细致的程序员和优秀的沟通者。

第 3 章 动力

好公司的一个标志就是它对待项目的方式。好的项目有明确而具体的目标。好的项目要么万事俱备,要么有做到万事俱备的计划。好的项目既有宏伟的目标,又经过周密的思考。好的项目有确定的交付时间,而不是时间和预算都含糊不清。这种项目给工作设立了一个目标。所有好的项目都有这些给人动力的特质。
能够让我们长期保持干劲的东西——不是外部的福利,而是工作本身
当你从顾客、客户或是同事那里得到负面反馈的时候,要坚持自己的想法,解释你这样做的道理,让他们适应你的作品几天,而不要让最初的即时反馈打消你的积极性。如果问题仍然存在,那么你的软件可能确实有瑕疵,但你会惊讶地发现,很多最初的负面印象通常都消失了。

第 4 章 生产力

动力可能是起步时所需要的,但生产力(工作的质量)才是衡量成功的具体标准。
最后期限创造了一种紧迫感,敦促你冲过终点线。即时没有人在逼迫你,它也能给你所需的鞭策。
如果没有限制,无论是时间限制、成本限制,还是功能集限制,我们都会忽略现实,做出有问题的决定,因为没有东西敦促我们做出明智的选择。
环境
个人待办事项清单能帮助我们理清头绪并即时做出调整,还能让我们每天都看到真正的进展。
无论只是几小时的免打扰时间,还是一整天做自己事情的自由时间,或者是在物理上相互远离,实质上都是认真考虑一下,如何可以互不打扰,让自己更为高效。
程序员最好的工作环境是人员流动率很低的自治小团队
有时候提高生产力只需降低复杂度:和更少的人工作,将责任交给一个人,或是消除团队开发中的外部噪声。

第 5 章 复杂性

一个简单的解决方案不应该被认为是“缺了什么”,有时候,它恰到好处。
如果细节变得异常难编,这可能意味着系统的实际功能难以让人理解。
在开发周期中过早的过度架构,就会留下一个没填满的坑,而架构不足,就会让我们丧失继续改进软件的选择或动力。
重构?

第 6 章 教学

教学不同于编程
当心“知识魔咒”
用浅显的例子
为简化不妨说谎
鼓励自主思维

第 7 章 客户

要和客户好好合作,首先要站在他们的立场看问题,然后再告诉他们,我们这边是怎么运转的。
好的客户把软件置于他们自己之上。这个功能会让软件变得更好吗?

第 8 章 代码

第 9 章 自豪感

我们之所以开发和设计软件,是因为我们真的热爱做这个。我认识的最优秀的程序员会不断雕琢每一个开发决定,有时甚至是无关紧要的开发决定。只要是在解决一个有趣的问题,只要有机会能够优雅地创造一些东西,他们就感到满意。将一个问题条分缕析,然后解决得巧夺天工,这种精神鸦片让程序员不能自拔。

0 0
原创粉丝点击