(序一) 书是人类思考的结晶,是经验的宝藏。因此书的真正价值在于内容,在于作者的思考,在于读者能否从书中得到收获;
(前言) 愚公移山知识一种精神追求,而做工程却不是追求精神目标,我们的目标是完成工程;
(P4)
一接到任务就开始 Coding 的程序员,通常就是加班最多的程序员;
记住:积极工作和勤于思考都要占时间;
(P5)
所有的算法描述中,有且仅有顺序、分支和循环这三种执行逻辑;
算法是对一个程序的逻辑实现的描述,而结构是逻辑实现所依附的数据实体。只要开发人员将这个程序的算法设计出来,并把数据结构描述出来,那么程序就定型了。剩下的事,简而言之,就是劳力活;
(P6)
成天讨论这么语言好,或者那门语言坏的人,甚至是可悲的。不但是悲其一叶障目,更要悲叹于那种大愚若智的自得心态;
(P14) 如果一个人学了一年的编程,它的脑袋里还是晕乎乎的,不知道从哪里开始,也不知道如何做程序。那想来只有一个原因:他学了,也把知识学进去了,就是不知道这些知识是干什么的,或者说,他不知道各种知识都可以用来做什么;
(P15) 大量的知识和资讯搅乱了上面向我提问的那位学员的思想。他应该尝试一下分类,把既有的知识像桌子上的书一样整理一下,最常用的放在左手边,而最不常用的放在书柜里。如果这样的话,我想他已经在九个月前就开始写第一个软件产品了;
(P34)
能力可以通过学习来增强;
即使是做开发,也是需要了解市场的,你必须知道用户想要什么,你必须理解你的客户;
(P47) 吃饭并不是有效的沟通。大多数时候,那将以醉酒收场;
(P60) 本质的东西若能理解透彻,架子还不是随手搬来就可以用的吗?
(P67) 经验,是源于对过去的思考,而不是对过去的复制;
(P87) 模式需要一定的编程经验才能理解;
(P88) 经验来源于回顾、理解与分析,而不是你将要写的下一行代码;
(P88) 有人在寺院里扫了一辈子的落叶而得道,也有人因为一句话而得道;
(P93) 给与你奖励的决定通常是你的上司,而不是绩效经理作出的;
(P94) 实现,是软件开发的本质需求;
(P100)
高明的剑士是不会用剑去砍的,剑刃大多数拿来削苹果,真正有效的是剑尖;
使用工具的方法,比工具本身更关键;
(P105) 有能力的人,未必真有识见,真有才略;
(P110) 技术容不得取巧,只能点滴积累;
(P112) 如果不了解 OOP,那么 Java 与 C# 每一座都是高山大壑;反之,则可举一反三,触类旁通了;
(P112) 语言只是工具;
(P113) “融通”与“融同”的区别在于:前者是以一通十,有运用变化的能力;后者则知工具之大同,信手而得,随心所用;
(P113) 于某时某事,适用的就是最好的;
(P129) “极限”(Extreme)是达到“敏捷”(Agile)的一种途径;
(P130)
找别人解决问题比自己解决问题来得迅速;
敏捷的根源是学会思维而不是立即着手解决问题;
“知道更多”则更容易找到解决问题的方法,因而比“精通”重要;
(P130) 敏捷方法的核心之一,就是“寻找更有经验的成员来解决问题”或“使自己变得更有经验”。
(P149) 如果不想沦为代码工人,甚至代码机器,那门就需要思考并领会这些背后的道理;
(P149) 围棋的学习有四个阶段:记住定式、应用定式、忘掉定式、创造定式;
(P164) Roger S. Pressman —— 《软件工程》 梅宏 译
(P167) 软件工程首先关系的是以客户为对象的。整个工程的成败和质量,根本上说,技术性、重用性等等,只是保障工程成败与之量的手段而已;