今天看完了《程序员修炼之道--从小工到专家》,挑些我觉得有意义的能指导我工作的小点,总结下。
首先要承认几个注重实效的哲学,类似于我们所说的公理。如果不承认这个哲学的话,后面所罗列的方法都没有意义。
注重实效哲学:
1) 我的源码让猫给吃了。敢于承担责任,不要找各种蹩脚的借口。不要说事情做不到,说明能够做什么。
2) 软件的熵。破窗理论。不要留着“破窗户”(低劣的设计,糟糕的代码,错误的决策)不修,发现一个修复一个,如果没有足够的时
间,就用注释把有问题的代码注释起来,或者加上to_do的消息,总之要采取行动防止进一步破坏。
3) 石头汤与煮青蛙。做变化的催化剂。你不能强迫人们改变。但是,你可以向他们展示未来可能会怎么样,并且帮助他们创造未来,一个
双赢的未来。
4) 足够好的软件。让你的用户来权衡,不要总想着把最完美的软件交付给客户,不存在完美的软件。
5) 知识资产。知识资产和金融资产非常相似。
a:严肃的定期投资计划-->定期投资,养成学习的习惯,不断的学习。
b:多元化是成功的关键-->了解目前所用技术的特性,向更宽广的范围涉猎。
c:投资权衡风险--> 我们要管理好风险,不要把所有的技术鸡蛋放在同一篮子里。
d:投资者低买高卖。-->养成快速学习的能力,抵抗技术学习带来的风险。
e:周期性的评估和平衡资产-->平时自己多做总结,自己哪些方面特长,如何巩固;哪些方面短板,如何补齐。
定期为自己的知识投资的方式方法:
a:每年至少学习一门新的语言,不同的语言,不同的解决问题的方式,可以拓宽自己的思维,不墨守成规。
b:每个季度阅读一本技术书籍。养成读书的习惯,一个月读一本技术相关的书籍。
c:也要读非技术的书籍,管理学,营销,心理学,经济学,掌握用户的习惯,同时也提高自己的素养能力水平。
d:上课,参加不同的学术交流组织。寻找自己感兴趣的议题,上网关注新技术的发展。
e:更上潮流,多试验不同的平台和IDE等。
f:多看报纸和杂志等,比如《程序员》,比如《IT经理世界》,要学好英语。
6) 交流。多交流,交流的越有效,你就越有影响力。
注重实效的途径
1)DRY原则。把重复抽取出来,最好能达成复用。
2)正交性原则。不相关的代码尽量减少依赖。设计自足,独立,并具有单一,良好定义的目的的组件。
3)可撤销性。没有决策时浇铸在石头上的。相反,要把每项决策都视为写在沙滩上的,并为变化做好计划。
4)曳光弹。试探性开发,如果你不知道目标的话。找到方法后,先搭个架子,一点点完善后面的事情。
5)原型与便签。原型和曳光弹不同,原型是为了学习做实验,用过了就可以扔掉。
6)领域语言。用你的用户的领域的语言进行设计和编码。
7)估算。高手应该是将估算的技能发展到对事物的数量级有直觉的程度,确定他们的可行性。
如何估算:
a:理解提问的内容,把握问题域的范围。
b:建立系统的模型。
c:把模型分解为组件,更细粒度的分解。
d:确定先后依赖关系,输入输出参数。
e:计算出估算的结果,并跟踪估算的结果,对结果负责,如果有错的话,自己多总结。