你的技术之路

你的技术之路

刘未鹏(pongba)

C++的罗浮宫(http://blog.csdn.net/pongba)

 

上周末看了dreamhead的一篇文章(《起步的台阶》),有些感触,忍不住在TopLanguage上八卦了一把,抛的是砖,引的是玉,获益良多,故摘抄于此:

 

01年进大学的时候,想学计算机,但却身在数学系,那个时候就做好了打算,数学只要混个及格,其余时间钻心看计算机的书,曾经一个月买了四百多块钱的书,结果只能吃方便面度日,大学有两三年时间,学习计算机的热情是最高的,从坐车到上厕所都带着书:P

也正是在那个阶段,学了很多底层知识,也钻了无数的细节。那个时候的信仰是:技术隐藏在细节当中。那个时候看的书,代表性的是:《编码的奥秘》、《80x86汇编技术原理》、《Windows核心编程》、《C++设计新思维》、《Inside C#》、《Linux内核源代码情景分析》……(那段时间最喜欢的就是"内幕揭秘"、"原理"、"深入"之类的书)

现在看来,这段时间学习方式的优点:钻技术细节,锻炼思考能力。缺点:一叶障目不见泰山。过分钻研技术细节导致忽视了要紧的技能;如,编码习惯非常差,以前写的代码,过了两年之后拿出来看,不忍卒读,连基本的DRY原则都没能遵循。此外,对技术细节的关注导致了忽视了一些编码方面形而上的原则。

这样的学习几乎持续到了本科的结束;其结果就是脑袋里技术细节不少,但编程方法学上的东西却几乎一概不知(比如对如何编写优质的代码的忽视、对测试的忽视、对重构的忽视、乃至对OO也只是停留在一点皮毛认识上)。

直到读研的第一年,才开始拿起《The Pragmatic Programmer》、《Code Complete 2nd》、《Object Oriented Software Construction》这些书,关注起一些"更大"的问题来,也拿起来《Programming Ruby》读一读,也正是这个时候,才算是走出了语言细节、技术细节的无尽泥沼,开始思考一些软件开发方面一般性的东西,开始意识到"脱离语言思考,使用语言实现"。四年,从纯技术的小世界中走出来,还不算晚。回头看,以前的钻技术细节的历史也并非全无用处,尤其是培养了金出武雄所谓的"思维体力",而在底层知识方面的积累也让后来看一些更高层的东西的时候心里更有底。然而,现在看来还是觉得:一,在细节方面花的时间太多了(细节的世界是无穷的,尤其是IT领域,一个老概念新翻,就能变化出无数细节。一个框架的API文档就隐藏着无数的"技术细节")。二,没有区分"非本质的细节",和"本质的细节",像硬件架构知识,属于本质细节,像语言细节知识,就是非本质细节了。前者是不变的,后者易变。三,没有在关注技术的同时,分出一部分时间来关注更大一些的主题(如编程的方法学,乃至项目管理,一个例子是,在以前,会认为语言的好坏至关重要,因为语言的世界是最熟知的,然而实际上软件开发的成本包含了更多重要的内容,甚至在语言方面还要取决于库、工具等等因素。以前看到"精巧的"设计模式觉得兴奋不已,现在则意识到,这些其实都是"非本质"细节)。

如今呢,倒是又开始觉得这些都不太重要,这些年的学习最大的收获不是学到的东西,而是学习的能力。对于软件开发这个知识无比细分、繁杂的领域,想要躺在过去学到的东西上过日子几乎是不可能的,然而又不可能把所有知识都装在脑中,所以唯有利用"元"能力:学习能力——用到啥,就学啥。毕竟,正如当初入数学系时的新生大会上,我们的系主任说的:数学都学了,还有什么学不了的呢?

老莫

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值