编程高手是怎样炼成的(转我老大 刘总的文章)

首先声明:
1.我不是程序高手,甚至连一个合格的程序员都不算。
2.喜欢大谈架构和软件工程的看官,请您绕过,此处只会让您不愉快。
3.这里的编程包括编码和程序设计,也可能涉及其它技术领域,请勿吹毛求疵。
 
我们这些写程序的,张口闭口也喜欢赞别人高手,虽然心中只有一位高手,那就是自己,如果自己不是高手,那世上也没有高手。当然世界上自然是有高手的,每个程序员也都希望成为真正的高手。怎样才算编程高手呢?我没资格定标准,也不配评断他人,但是我心目中的高手是那些计算基础理论扎实,数据结构和算法精熟(完整读过《计算机程序设计艺术》),至少明了两种操作系统的内核机制(体系结构,进程调度,内存管理等),灵活运用并能够清楚了解C/C++的各种语法和技术,同时还熟悉至少一种动态语言,并在某个领域具有丰富的实践经验,有设计均衡的概念,不断学习新技术的人。我想他如果能够让我更佩服的话,我希望他能够懂一些数据库,信息系统和面向对象。
这个高手是不是太高了?开个玩笑,只要能够互相学习,有所助益,每个人对我来说都是高手。高手的定义见仁见智,这里只想给软件编程人员的个人技术成长提个建议。


进入正题之前,我想讨论一下另外一个很多金庸迷讨论过的话题,金庸小说中出场人物谁武功最高?
金庸小说中武功最高的大概要在三个人中选,就是独孤求败,王重阳和黄裳。但是这三位武功虽高,但却是未出场人物。我们的问题是出场人物谁最高呢?
令狐冲?杨过?张三丰?张无忌?NO,此等主人公武功虽高,但绝非最高。
事实上,经过网友多年论证,通常认为最高的是少林神僧(或者称作扫地老僧)或者东方不败。
 
练成东方不败需要自宫,相信大多数男性(程序员又多为男性)都舍不得。还是看看能不能练成少林神僧吧,虽说和尚也不咋地,总也比太监好,和尚还可以偷腥。怎样练成神僧呢?少林神僧是天龙八部里面的藏经阁打扫卫生的低级和尚。虽然只是个干杂役的低级和尚,但是因为在藏经阁里每天看书,书看多了,不自觉的就成了绝世高手,成了金庸武侠世界的第一(至少第二)高手了。


所以,我想给我们刚刚从事软件行业的技术人员一个衷心的建议,要想成为高手,最必要,很可能是最有效的途径就是:读书。
看什么书?书太多了,全读完是不可能的,尽量要读精品。本人在十多年从事软件开发的过程中,读了不少书,回头看去,有一些是很有帮助的书,甚至某种程度上其作用可以用醍醐灌顶来形容。按照记忆罗列下来大致的书名,列在这里,仅供参考(时间久远,很多信息记不清楚,作者、书名诸多错漏,敬请谅解)。


书目如下:
--计算机基础理论部分
《计算机程序设计艺术》   Donald Knuth
《计算理论基础》 作者忘记
《编译原理与实践》 作者忘记
《算法》   Segewick
《编程珠玑》   Jon Bentley
--编程实践部分
《Code Complete》McConnell
《Beautiful Code》
《程序设计实践》Brian W. Kernighan,Rob Pike
《程序员修炼之道》Andy Hunt,Dave Tomas
《Test Driven Development》Kent Beck
--软件工程及一般技术部分
《人月神话》   Fredrick Brooks
《人件》Tom Demarco
《软件工程-实践者之路》  Pressman
《软件过程管理》  Watts Humferry
《Extreme Programming Explained -Embrace Change》  Kent Beck,etc.
《Software Craftsmanship: The New Imperative》  Pete McBreen
《AntiPatterns》
《Death March》
《Deadline》
《JOEL on Software》 Joel
--面向对象部分
《Object-Oriented Design with Applications》  Grady Booch 
《UML distilled》   Martin Fowler
《重构》   Martin Fowler
《分析模式》   Martin Fowler
《设计模式》    Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides
《敏捷软件开发》 Robert Martin

《clean code 代码整洁之道》Robert C. Martin   


--企业应用部分
《Patterns of Enterprise Application Architecture》   Martin Fowler
--UNIX编程部分 
《UNIX系统编程》
《Unix高级编程》   【Richard Stenvens】
--网络编程部分
《TCP/I详解I-III》【Richard Stenvens】
--特定语言部分
《C程序设计语言》 Brian W. Kernighan
《Thinking in C++》 Bruce Eckel
《C++ Primer》   Stanley B.Lippman,Josee Lajoie
《C Expert Programming》 Peter Van der Linden
《Thinking in Jave》
《Effective Jave》
 
后记:
      《Refactoring to Patterns》的译者把bad smell翻译为坏味,还说是借用了围棋的术语,想来译者是不大会下围棋的,围棋的术语大致应该是薄味,坏味这种说法,在有关围棋的文章中,很少见。
      生也有涯,而知也无涯。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值