首先声明,本人不是高手,就是没有成为高手,所以总结自己失败的原因,写下这些。只是想让那些还没成为高手的人吸取一些教训,共同学习。说得不好,欢迎拍砖。
说说我理解的高手,不是指某一方面的技术好手,也不是多年经验的编程老手,我衡量的一个标准是对于编程技术上,你在同年人当中,公认是那么几个当中的其一佼佼者。所以,你出来工作几年了,你比我厉害,这没什么好说的;你专研了十几年了,你比我牛B,这是肯定的;你专门搞这个技术,我没有了解过,你比我菜是不可能的。但是大家花同样的时间学,你学得比我好,比我快,这说明起码对于我来说,你是高手。
第一步:主动学习
关键在于主动,而不是学习,我强调的是态度。首先花同样的时间去学习,你说被动去学与主动去学,谁的效率高,谁的效果好,答案很显然。其实我们经常有体会到,学校课程教一个学期的东西,可能还比不上你工作后认真搞它几天。当你处于一种积极获取信息的状态时,你吸收的知识往往会记得比较牢,印象也会更深。你也曾试过为了一个程序,心甘情愿花几天时间去埋头苦干吧,当调试成功时那种喜悦是无法形容的,你主动去学一样东西,还会让你带有更多的兴趣去了解另外一样东西。要主动学习,无非就是想做个什么东西,或实现什么功能,只要有想法,不是别人让你去搞的,这就行。
第二步:动手,别看书
对于这个,我强调的是效率。关于很多技术,都伴随着很多经典的书籍,很多人一搞某样技术,首先就扒几本经典书来看,看得云里来雾里去,总之就是不知所云,反复几遍后才豁然开朗,然后才开始试着小例子,一步步来,最终搞懂。来分析一下,且不说看书理解所花的时间,就是你从头慢慢学,要达到你那个本来目标,这中间的花费也相当的多。还不包括中途受影响,书又扔下几天不管,然后该章节又重头看起- -!
举个例子,你目标打算用MFC搞个计算器,你一开始就捧一本深入浅出MFC,去了解消息循环,搞两圈你就晕了,这东西还真吓跑不少人。其实刚开始拖一下按钮,搞搞编辑框,有趣多了,弄一个学一个,很快也就可以搞出来。对于具体的技术细节,以后随着慢慢深入才会容易搞懂。
其实这当中涉及到交互性,看书是一种被动的接受模式,只有输入没有输出,当你一直处于这种状态,很容易就烦厌起来。而动手做,是双向的,做一做,看看效果,有问题了,就看书或上网查查,解决问题,这样就会让我们有兴趣去继续去搞,积极性不一样。同时一步步来比起一开始就搞一大块,效果是不能比的,就好像我们做一个功能,调试一次,跟一下子做n个模块,再去测试,出问题要调试时,这当中的滋味相信大家都知道。
但我不是叫你不看书,什么时候需要看?当你一直做,觉得总是似懂非懂时,要深入学习时,那就该看看书了。
第三步:阅读资讯,了解技术前沿
这个是充分非必要条件,没有高手跟我说了解这些才行,但是我身边的高手都有这个特性。从性格去分析,高手不单是技术较一般人好,通常多多少少就喜欢搞点新玩意,做点新功能,所以他们往往也喜欢收集技术的新资讯。如果你没有了解资讯的渠道,可以弄个Google Reader,订阅rss就行,方便好用。
第四步:跟高手在一起
人外有人,天外有天。除非你本来就目光远大,思考问题入木三分,不然你想让自己一直有进步的余地,就给自己找一个更高的高手。只有身边有个更厉害的人,你才能看到自己的不足,才会寻求进步。试想想,你身边一直呆着一个乔布斯,一个比尔盖茨,一个李开复,你怎么也不会烂到哪里去吧。