鉴证实录第二部粤语版:专业程序员的核心竞争力

来源:百度文库 编辑:中财网 时间:2024/05/11 02:26:01

作为一名专业程序员,我觉得他的核心竞争力主要表现在三个方面:

1)学习能力 :学如逆水行舟,不进则退,做软件尤甚。

2)思考能力 :思考是人的特有能力,对程序员的工作,我觉得2/3时间是思考,1/3是敲键盘或其它。

3)解决问题能力 :这是能力的体现方式,是综合能力的表现。

下面我结合自己的经验,从学习,思考,解决问题,工作等方面阐述一下专业程序员的实践。以后有时间,我对每一条用一致的方式来解释一下.


1)学习实践(Learning Practices)

LP1:系统化的知识应该从书上获取。
LP2:应用RSS订阅,了解最新信息。(iGoogle,Google Reader)
LP3:使用del书签(firefox的附加组件),索引网页。
LP4:写blog,养成总结的习惯。
LP5:交流,向别人解释你学到的东西。
LP6:学好英语,它是通向最新技术的窗户,最起码要熟练阅读。
LP7:使用脑图整理所学的东西。
LP8:使用英文关键字来搜索技术资料。
LP9:向有经验的人请教。
LP10:快速实践,快速反馈,Do it now!
LP11:使用mybase记录片段信息。
LP12:使用eMule搜索英文原版书。
LP13:进入陌生领域,首先梳理这个领域的知识结构。
LP14:看书先看目录,索引书的内容,等需要了再去看。
LP15:设立目标,学习要以完成一篇文章或一个小软件作为结尾。
LP16:Big picture,理解一个系统,要以big picture开始。
LP17:学习背后本质的东西,比如web编程,熟悉http协议。

2)思考实践(Thinking Practices)

TP1:反思,使用鱼骨图查找根本原因。
TP2:随时记录思考的成果,小便签本。
TP3:MECE( Mutually Exclusive Collectively Exhaustive ), 没有重复,没有遗漏.
TP4:思考无关事物之间的联系,锻炼抽象思维能力 (足球与软件开发)
TP5:换位思考,站在别人的角度思考问题。
TP6:使用拉而不是推的方法。(团队决策)
TP7:考虑间接的方法。(代理,调停者,ESB)
TP8:运用想象力。
TP9:多角度思考问题, 开辟新视角。
TP10:突破思维定势,没有什么限制。
TP11:逆向思维方法,认清本质。(吃饭)
TP12:假设思考方法。
TP13:零基准思考。
TP14:批判思考,强制思考问题的另一面。
TP15:用图表达思考的结果。(关于连续思考的结果)
3)解决问题实践(Solving Practices)

     解决问题的步骤:

1.问题定义
2.理解问题
3.查找资料,思考,生成备选的解决方案
4.选择最合适的解决方案
5.实施解决方案
6.验证正确性
7.得出结论,总结

     解决问题实践:

SPP1:信心,Impossible is Nothing。
SPP2:不断问自己问题,问题究竟是什么,本质是什么。
SPP3:问题不明确时,重要的是确定问题,而不是试图解决问题。
SPP4:使用类比法,考虑同构问题,考虑别人是如何解决问题的。
SPP5:使用分治法,大事化小,小事化了。
SPP6:试误法,不但尝试,缩小解空间。
SPP7:爬山法。
SPP8:循序渐进法,先解决问题域中的简单问题,获取经验以解决复杂问题。
SPP9:及时向别人求助。
SPP10:了解谁可以解决问题。
SPP11:了解学习什么东西可以解决问题。
SPP12:尽可能了解问题的背景。
SPP13:观察别人是如何解决问题的。
SPP14:先放松一下,再回到问题。
SPP15:使用脑图或看板可视化问题相关所有信息(看看PrisonBreak里Scofield和alex如何思考的)
SPP16:坚持相信存在多种解决方案,不要相信“不能”,“一定”
4)工作实践(Working Practices)

WP1:编写代码前先编写伪代码。
WP2:编写完代码自己仔细看两遍以上。
WP3:编写单元测试并一直维护它。
WP4:坚持DRY原则。
WP5:记录你的开发过程,以便反思改进和分享。
WP6:向主管和负责人陈述以确认你对工作任务的理解,以免走偏。
WP7:为他人着想,做到极致可理解,包括你的代码,文档和沟通。
WP8:为自己提供验收测试checklist,自己验收测试。
WP9:对团队中的问题,保持关注,及时沟通。
WP10:为自己的工作任务评估时间,了解自己的生产率。
WP11:学习面向对象原则和设计模式。
WP12:防卫性编程,保持警觉。
WP13:构想问题的解决过程,在脑子里跑通之后再开始编码。
WP14:调试代码时,隔离问题区域,以缩小问题解决范围。
WP15:为琐碎任务编写checklist,将任务从人脑中移到电脑或纸上。
WP16:每天早上花10分钟,思考和规划你今天做的工作。
5)其它(Other Practices)

OP1:使用google图片搜索,搜索素材。
OP2:使用影响分析表格进行分析。
OP3:学会表达和沟通, 成长之路所必需。
OP4:要有长远规划和目标。

     最后,我说一下心态,一个程序员应该有一个开放的心态,随时接受新的东西,不断尝试。使好的东西形成自己的习惯,不好的东西就摈弃掉。不过作为程序员,有时候都是很固执的,我也一样。脑图这个东西,很多同事推荐我一年之后我才开始使用,用了之后感觉相见恨晚。我目前写文章,整理思路,整理知识都是用它,已经离不开了。

     不积跬步,无以至千里;

     不积小流,无以成江河。

     你还在问“敢问路在何方?”吗,路其实就在你脚下!