程序员修炼之道(读书笔记):1.注重实效的哲学

关于DRY:不但dont repeat yourself,也dont repeat others,作为一个pragmatic程序员,合理地使用工具、库、以及自己积累的轮子,会让自己的productivity不断提升。

认知科学认为,1.频繁的高强度的外部刺激2.自主的有意识的反复提醒是加速内化的两个重要方法。

想要内化书中的这些小声音,要靠实践!

理想的阅读状态是先大致理解和记住里面的Tip,然后每周争取实践2到3个Tip。这样下来一圈也就是半年,在这一圈之后就会记住所有的Tip。


在所有的弱点中,最大的弱点就是害怕暴露弱点。

要提供各种选择,而不是找借口。不要说事情做不到,要说明能够做什么来挽回局面。

不要留着“破窗户”(低劣的设计,错误决策,或是糟糕的代码)不修。发现一个就修一个。如果没有足够的时间来进行适当的修理。就用木板把它钉起来。或许你可以把出问题的代码放入注释,或是显示“未实现”消息,或是用虚设的数据加以代替。采用某种行动防止进一步的损坏,并说明情势处在你的控制之下。

石头汤与煮青蛙的故事告诉我们:
1.士兵戏弄了村民,利用了村民的好奇,从他们那里弄到了食物。
2.更重要的,士兵充当了催化剂,把村民团结起来了,和他们一起做到了他们原来本来做不到的事情–一项协作的成果!

在某些情况下,你知道确切地知道需要做什么,以及怎样去做。整个系统就在你的眼前–你知道它是对的。当请求许可去处理整个事情,你会遇到拖延和漠然。大家要设立委员会,预算需要批准,事情变得复杂化。每个人都在捍卫自己的资源。

这种情况下,正是拿出石头的时候了。设计出你可以合理要求的东西,好好开发它。一旦完成,就拿给大家分享,让他们大吃一惊。然后说:“要是我们增加…….可能就会更好”。

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

让你的用户参与权衡

无视用户的需求,一味地给程序添加新特性,或是一次又一次润饰代码,这不是有职业素养的做法。我们不是在提倡慌张:许诺不可能兑现的时间标度,为赶上最后期限而消减基本的工程内容,这些同样不是有职业素养的做法。

你的知识资产

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

你的知识和经验是你最重要的职业财富。

遗憾地是,他们是有时效的资产(expiring asset)。随着新技术,语言及环境的出现,你的知识会变得过时。

经营你的资产

1.定期投资。就像金融投资一样,你必须定期为你的知识资产投资。即使投资量很小,习惯自身也和总量一样重要。

2.多元化。你知道的不同的事情越多,你就越有价值。你掌握的技术越多,你就越能更好地进行调整,赶上变化。

3.管理风险。不要把你所有的技术鸡蛋放在一个篮子里。

4.低买高卖。在新兴的技术流行之前学习它可能就和找到被低估的股票一样困难,但所得到的就和那样的股票带来的收益一样。在java刚出现时学习它可能有风险,但对于早期采用者,这样做得到了非常大的回报。

5.重新评估和平衡

目标

1.每年至少学习一种新语言。
2.每季度阅读一本技术书籍。
3.也要阅读非技术书籍。
4.参加本地用户组织。不要只是去听讲,而是主动参与。与世隔绝对你的职业生涯来说可能是致命的。打听一下公司之外的人都在做什么。

是否在某个项目中使用这些技术,或者是否把它们加入你的简历,这并不重要。学习的过程将扩展你的思维,使你向着新的可能性和新的故事方式扩展。思想的“异花授粉”(cross-pollination)十分重要。例如,你熟悉了面向对象,你就不会用不同的方式编写纯C语言。

交流

知道你想要说什么。在工作中使用的更为正式的交流方式中,最困难的部分也许是确切地弄清楚你想要说什么。规划你要说的东西,写出大纲。这个方法不止适用于撰写文档。当你面临重要会议,或是要与重要客户通电话时,简略记下你想要交流的想法,并准备好几种把它们讲清楚的策略。

让文档美观

你的主意很重要,它们应该以美观的方式传给你的观众。太多程序员和他们的经理在制作书面文档时只关心内容。我们认为是一个错误。任何一个厨师都会告诉你,可以在厨房里忙碌几个小时,最好却会因为糟糕的外观而毁掉你的努力。例如,LaTeX。

你可能感兴趣的:(程序员修炼之道)