在阅读完这本书后,我从书中收获到了很多,
永远以解决问题为导向,而不是仅仅完成任务。这一条的内容非常广泛,从最低级的写好一个功能,
到给具体的需求排优先级,甚至到明确真正的需求,到调整开发节奏,一切都由实际的需求和开发能力决定,
最终的目的只有一个,那就是解决真正的问题;
把程序员当人看,不仅仅是把其他同事当人看,也要把自己当人看。人是会出错的,团队是需要磨合的,
人永远不能跟机器比运行效率,但人比机器更有创造性。
写代码永远优先保证其他程序员能看懂,机器不在意代码有多难懂,对它而言,写的格式再差、写的效率再低,
机器都能运行——但是其他的程序员(包括过上半个月一个月的你自己)不能;
反复迭代和尝试,在实际情况下,人往往做不到一次就成功,即使一次就成功,那也未必是最优的,
一定要多进行迭代和尝试,才能获得最优的效果。
保持清晰的思路,只有在清晰的思路下,才能理解问题理解代码——如果你已经无法保持清晰的思路,
那么还不如先放松一下,让大脑冷静下来,然后完成更高的质量。
犯错不是罪过,从中学不到什么才是罪过。
在调试过程,设定时间,如果超过这个时间,就暂停或者放弃调错过程。知道何时放弃很难,但这是必须面对的问题。
与其它行业相比,软件开发行业的经验比书本知识的价值要小。
编程工作本质上是项无法监督的工作,因为没人清楚你正在干什么。
承认自己智力有限并通过学习来弥补,你会成为更好的程序员。
程序员都是大忙人,常常没有时间去考虑怎样改进自己的工作。
开发过程能够帮助客户更好地理解自己的需求,这是需求变更的主要来源。
如果你不能向一个六岁小孩解释某件事,那么你自己就没有真正理解它。
如果你熟悉数据库术语的话,类与对象的关系就如同“模式”与“实例”一样。
抽象可以让你用一种简化的观点来考虑复杂的概念。
伪代码编程过程,这种编程过程有助于减少设计和编写文档所需的工作量,同时提高这两项工作的质量。
不合理地初始化数据是产生编程错误的常见根源之一。
测试先行的编程是过去十年中所形成的最有用的软件开发实践之一。
如果一个错误无法重现,这通常是一个初始化的错误,或者是一个同时间有关的问题,或者是悬空指针的问题。
可以在程序执行开始的时候算出一张查询表,在之后每次需要的时候使用这一表格。
有效编程中最重要的工作是思考,而人思考时通常不会看上去很忙。
以新习惯来代替老习惯,要比干脆戒掉老习惯容易。