《程序员的修炼之道:从小工到专家》读书笔记一

来源:互联网 发布:淘宝 定金 尾款 编辑:程序博客网 时间:2024/05/17 01:23

《程序员的修炼之道:从小工到专家》Andrew Hunt ,David Thomas 著,

Ward Cunningham 作序,同样为《软件开发者路线图:从学徒到高手》作序

 

源码下载地址:http://www.pragmaticprogrammer.com/

邮箱:ppbook@pragmaticprogrammer.com

 

一、注重实效的哲学

注重实效的程序员的特征:处理问题、寻求解决方案的态度、风格、哲学。他们能够越出直接的问题去思考,总是设法把问题放在更大的预警中,总是设法主意更大的图景。他们成功的另一关键是他们对他们所做的每件事情负责。

1.       我的源码让猫给吃了

“所有的弱点中,最大的弱点就是害怕暴露弱点”

依据你的职业发展、你的项目和你每天的工作,为你自己和你的行为负责这样一种观念,是注重实效的哲学的一块基石。

       对我们的缺点、无知和错误,我们必须诚实。当你犯错误时、或是判断失误时,诚实的承认它,病设法给出各种选择。提供解决方案,而非寻找借口。(应急计划、备份等)

       提示:提供各种选择,不要找蹩脚的借口。

       不要说事情办不到,要说明能够做什么来挽回局面。

2.       软件的熵

提示:不要容忍破窗户。“破窗户”:低劣的设计,错误的决策,或是糟糕的代码。

发现一个就修一个,或采取行动防止进一步的损坏,并说明情势处在你的控制之下。

挑战:

l         通过调查你周边的计算“环境”,帮助增强你的团队的能力。选择两或三扇“破窗户”,并与你的同事讨论问题何在,以及怎样修理它们。

l         你能否说出某扇窗户是何时破的?你的反应时什么?如果它是他人的决策所致,或者是管理部门的指示,你能做些什么?

3.       石头汤与煮青蛙

人们发现,参与正在发生的成功要更容易。让他们瞥见未来,你就能让它们聚集在你周围。

提示:做变化的催化剂。

提示:记住大图景

不要像青蛙一样,留心大图景,要持续不断地观察周围发生的事情,而不只是你自己在做的事情。

4.       足够好的软件

让你的用户参与权衡何时已足够好。

提示:使质量成为需求问题。

许多用户宁愿在今天用上有一些“毛边”的软件,也不愿等待一年后的多媒体版本。让他们及早使用,他们的反馈常常会把你引向更好的额最终解决方案。

       知道何时止步,编程就像绘画,需要不时后退一步,用批判的眼光观察你的作品。常常,你会扔掉画布,重新再来。

 

5.       你的知识资产

知识上的投资总能得到最好的回报。

知识和经验是有时效的资产(expiring asset)。

管理知识资产:与管理金融资产非常相似

l         严肃的投资者定期投资-作为习惯

定期为你的知识资产投资,即使投资量很小,形成习惯。

l         多元化是长期成功的关键

你知道的不同的事情越多,你就越有价值。作为底线,你需要知道你目前作用的特定技术的各种特性。你掌握的技术越多,你就越能更好地进行调整,赶上变化。

l         聪明的投资者在保守的投资和高风险、高回报的投资之间平衡他们的资产

不要把你所有的技术鸡蛋放在一个篮子里。

l         投资者设法低买高卖,以获取最大的回报

在新兴的技术流行之前学习它。

l         应周期性地重新评估和平衡资产

要在职业生涯中获得成功,你必须运用同样的知道方针管理你的知识资产。

提示:定期为你的知识资产投资。

目标:

l         每年至少学习一种新语言。

不同语言以不同的方式解决相同的问题,通过学习若干不同的方法,可以帮助你拓宽你的思维,并避免墨守成规。

l         每季度阅读一本技术书籍

在你掌握了正在使用的技术之后,扩宽范围,阅读一些与你的项目无关的书籍。

l         也要阅读非技术书籍

l         上课

在本地的学院或大学,或是将要来临的下一次会展上寻找有趣的课程。

l         参加本地用户组织

主动参与,打听一下公司以外的人都在做什么。

l         试验不同的环境

Windows unix makefile IDE

l         跟上潮流

订阅商务杂志和其他期刊,选择所涵盖的技术与你当前的项目不同的刊物。

l         上网

了解新语言或其他新技术的各种特性,了解其他人的相关经验,了解他们使用的特定行话等,新闻组。

 

批判的思考

批判的思考你读到的和听到的。

挑战:

这周就开始学习一种新语言,总在用C++? 试试SmalltalkSqueak,在用Java 试试Eiffel

l         开始阅读一本新书,如果你在进行非常详细的实现和编码,就阅读关于设计和架构的书,如果你在进行高级设计,就阅读关于编码技术的书。

l         出去和你当前项目无关的人、或是其他公司的人谈谈技术,在你们公司的自助餐厅里结识其他人,或是在本地用户组织聚会时寻找兴趣相投的人。

6.       交流

知道你想要说什么。交流前,简略记下你想要交流的想法,并准本好几种把他们讲清楚的策略。

了解你的听众。

选择时机。为了了解你的听众需要听到什么,你需要弄清楚他们的“轻重缓急”是什么。

选择风格。调整你的交流风格,让其适应你的听众。

让文档美观。

让听众参与。让你的读者参与文档的早期草稿的制作,获取他们的反馈,并汲取他们的智慧,讲建立良好的工作关系,制作出更好的文档。

做倾听者。

回复他人。你说什么和你怎么说同样重要。
0 0