posts - 176, comments - 240, trackbacks - 0, articles - 7

怎样才能成为技术高手

Posted on 2007-12-08 03:14 canonical 阅读(4098) 评论(20)  编辑  收藏 所属分类: 杂感
有一位网友,今年大二,询问我怎样才能成为技术高手. 我并不确定如何定义所谓的技术高手, 但是既然问到我, 便列举一下可能相关的事实.

首先请明确以下事实:
A. 挣钱能力和技术能力相关,但不成正比。
B. 他人的信任与信赖和技术能力无关。
C. 泡妞能力和技术能力可能负相关,请谨慎面对。

   没有人知道未来是什么样子. 也没有人能够保证自己永远都是技术大潮中的弄潮儿. 如果你只是担心知识的老化, 担心能否长期的保有一份工作. 那么只需要不失去别人的信任,越来越熟练的做好本职工作就可以了。任何工作中当时用到的知识永远都只是很少的部分,只要别人给你机会重新学习,你的人生经验就会是你最宝贵的财富。

   大二的小孩不要每天尽整些没用的东西。认真学好自己的专业课。做软件开发并不需要什么高深的知识,但是接受知识传承,得到全面教育的时机却是一去不回的。

   不要怕学得多,更不要自以为学得多。我在学校的时候,横扫图书馆的哥们并不少。

    读了书并不意味着懂得了道理。用自己的语言能否讲述学过的内容?能否用个简图勾勒Unix内核的结构?学过一门语言到底它有什么不同,能否勾勒发展的脉络?你学过的东西并不是你的东西. 你既无法消费它,也无法贩卖它. 在书本以外你是否真的意识到这些知识的存在性? 最重要的问题是, 你创造的东西在哪里?

    读书开始的时候半知半解是正常的。这就如同张无忌背七伤拳经,总有一天你会懂得,只是需要不时的去回味。数学典籍中经常有这样的说法,本书内容是封闭的,只需要某某领域知识,但是掌握它需要数学成熟性。成熟是需要时间的。

    读书不是以数量取胜。一个领域中类似的书只要细读一本,完整的读下来,读的时候多方参照,做简短的笔记。读一些原始的文献,读大师的原著。尽量选用英文的经典教材。懂一点学科的历史,知道什么是文化。了解一些学术界的八卦,吹牛的时候多一些谈资。
     
    学习任何一个领域都需要深入, 需要掌握大量的相关细节, 因为只有这样才能够不再被细节问题所干扰, 而集中精力于真正的思想核心.  

    拳不离手,曲不离口。连Knuth老兄都在勤奋的敲程序,所以请不要找借口, 先编上十几二十万行代码再说话。编写而不是抄写。

   天下没有免费的午餐。不付出相应的成本,无法得到相应的回报。学习没有捷径,只有方法。只是方法正确并不能保证你走到终点,毅力,机缘都是不可或缺的。你是否能够1天10小时以上持续地考虑同一个问题,是否能够保持同样的注意力坚持到每本书的最后一页, 是否一年365天对新鲜事物总是保有一份天真的好奇。

   在工作中除了抽象的思想和具体的技术知识之外,还有大量小的trick. 例如调用equals的时候把常量放在前方if(MY_CONST.equals(myVar)).
 一般不可能通过书本学习掌握所有这些技巧,只能在编程的实践中观察总结,更多的时候是要你主动思考,重新去发现这些方法。一个人的工作效率很大程度上是受其工作习惯所制约的,你是否在随时随地的改进自己的工作?

    怎样才能做技术高手?这个问题我并不知道答案。公司里所需要的也不是技术高手,而是能够解决问题的人。不过如何培养合格的程序员,在公司内部也有两种看法。adun说要给他们指明职业发展的方向,关心他们遇到的困惑。这是P大的浪漫主义情怀。X罗说要给他们可以完成但是不易完成的任务,等待大浪淘沙后的结果。这是T大的现实主义精神。

    开源是不可阻挡的历史洪流,我们只能改变自己的思维方式,调整自己的行为目标来适应它。

    面对未来的挑战,Alan Kay有一句名言:The best way to predict the future is to invent it。如果你不知道该怎么创造,那就先从捏造开始练习吧----事物之间总是可以建立关联的。

Feedback

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-08 08:33 by sitinspring
高手只是相对的.

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-08 08:41 by Matthew Chen
受教了。

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-08 09:41 by nicky
nnd,只看了一半就来顶了,很不错。句句都有味

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-08 09:45 by nicky
读完了,再顶一次,只是这些东西没有体会过的你讲出来他也体会不到,当然一种人除外,那就是天才,只有天才 才能从书本和别人的经验中学习,一般人能从自己的经验中学习就不错了。

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-08 11:28 by ci
不错

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-08 12:42 by shaomin
收下认真体会

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-08 13:18 by 时伟
有理

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-08 13:59 by 千里冰封
写得很有道理

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-08 23:19 by 进行
我就是那个sophomore,很遗憾看到这样的答复,我觉得自己被嘲弄了,问了一个自以为是的家伙。
很明显你不是一个高手(如果你觉得自己是那我没办法),同样的问题我问过好几个我认为可能是高手的人,他们都很耐心地讲了很多感想和例子,没有一封回信是这样的——公开在自己的blog里嘲弄然后显得自己是一个牛人。他们说一个高手最基本的素质是谦虚,你了解的越多就越发现自己的无知。你一点也不无知!
什么叫“大二的小孩不要每天尽整些没用的东西。认真学好自己的专业课。”弱智还是怎么的,我将来要搞软件我“电路分析”考满分有P用,再说我成绩很好。你没念过大学啊。我写的代码可能没有你多,但2万行总有了,别以为人人都像你大二时候那样。
不知道你的背景,本以为是一个40左右的老男人,现在模糊了——“泡妞”这样的词也弄得出来。
希望你早日成为高手。

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-08 23:40 by j
如果可能的话,混javaeye吧,那里高手比较多,不觉得他们的回复都比自己的东西有内容吗?

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-09 00:31 by canonical
sign, 很遗憾你这么想问题。 我在很认真的回答你的问题。因为这个问题有多个人问过我,所以写一篇文章。

我的专业是物理。在我本科的时候,我主要在读更多的物理和数学,而不是掌握具体的语言技术。 大四的时候我读了图书馆可以找到的大部分C++书籍。当然我更多的时间仍然是花费在数学和物理上,因为原本我就是打算去做理论物理研究的。

我的意思是基础很重要。大三之前都是学习最基础知识的时候,专业的限定并不是很大。在我们学校,大二各个系开的课都是类似的,只是难易,重点不同。 你年龄太小,还区分不出什么是真正重要的东西。 其实即使是电路分析,你搞清楚里面的物理和数学也是很有意思的。绝对不是让你按照考试的要求学习书本上的知识。

学习并不是为了有用,它只是让你接受教育,了解历史上人们所做过的一些工作。

温和的感想和例子未必是对你有用的。你还没有受过挫折,只是一味要求别人顺着你的心情。我写的东西如果你放弃成见体会一下,也许会发现并不是那么差。

高手不高手并不重要,关键是成为别人可以信赖的人,成为一个可以解决问题的人。

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-09 05:35 by gr8vyguy
sophomore的回复显露出不少难得智慧。

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-09 12:04 by 杨一
@进行
每个人处理事情的方式是不一样.有的人高调,有的人低调.不过有一点,那些院士,专家,学者们大多都是交际能力很强,并善于与人沟通的人.所以不能一概而论.
不过说实话你大二就有自己的独立思想,还懂得像专家求教,这是我现在所不及的,更别说大二的时候了.

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-09 13:28 by ZelluX
写得真和谐,sophomore飘过

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-09 23:19 by 黑蝙蝠
一山还有一山高

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-10 09:30 by nicky
我晕死
1 sophomore的回答哪里体现出智慧了?算我愚笨,我只看出这句“你了解的越多就越发现自己的无知”有点智慧,但是我想很多人都知道这句话了吧,而且这句话从他的表达上来看,他只是知道而不是深有体会
2 可能我的感觉有问题,我通篇并没有看出任何嘲弄的味道,至少这点嘲弄比起你出生社会后遇到的挫折那更不能算嘲弄了
3 就如我在前面的回复所讲的,在你的年纪和经历来看你还体会不到这些。在我看来觉得canonical讲的很对,你认为不对是非常正常的,如果你认为对,那么就不需要他来教你了,你自己都懂了嘛!这也就是我前面说的,只有天才才能从书本和别人的经验学习,看来你不是天才。但是你即使不是天才,很多时候还是要谦虚点嘛,别人的话,不要那么快就否定了。

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-11 04:10 by gr8vyguy
智者见智嘛!

嘲弄的味道很明显!

canonical讲的并不是说都不对,如果是针对时下的一种现象广泛而言,他的一番感慨也没什么问题,不失为一篇不错的杂文。可这篇文章毕竟带有回答sophomore的意思,你针对的是一个虚心向你请教的学生,这样的方式合适吗?sophomore的反应很正常,也很聪明!

>> 只有天才才能从书本和别人的经验学习,看来你不是天才。但是你即使不是天
>> 才,很多时候还是要谦虚点嘛,别人的话,不要那么快就否定了。

不要拿天才说事,最反感这种论调!

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-11 09:27 by 弹弓
sophomore,你现在的时期最好要培养对code的兴趣 ,假如你决心从事it.
学好算法和精通一门语言c/c++,
Junior,深入研究一个方向,比如 linux 下的 c /c++开发 ;
Senior,sell yourself in a high price.Good lucky,for the best company know how to cultivate you a perfect programmer.

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-11 10:55 by nicky
ok,i will shut up and stop here.
小二,结帐,楼主,结贴送分。

# re: 怎样才能成为技术高手  回复  更多评论   

2007-12-19 08:46 by to sophomore
恕我偏激:
'泡妞'不知道触动了sophomore的哪根弦,sophomore的反应在我看来大有装嫩之嫌,我就不相信你和你的同学背后没有类似的玩笑或者什么的.况且canonical说的也确实是事实
并且sophomore的逻辑推理在我看来也确实可笑
首先,如果sophomore例举种种想证明自己目前在软件方面很牛的话 :"再说我成绩很好。你没念过大学啊。我写的代码可能没有你多,但2万行总有了,别以为人人都像你大二时候那样",如此这些大有俯视人的意图,并且有人为你的问题做了大幅,你尚且不说感谢的话,反而在这里罗里八所的给人没有家教的感觉,这些也证明了你的很不谦虚.这且不是拿自己的手打自己的耳光吗??
再说回来,如果你很不谦虚的话,你就干脆有点偏执之举,别拿这种很不实在的问题四处"装谦虚"---我把我前面推到的结论拿在这里用--的问高手,至少表明你多少人云亦云,一个没有自己想法的人,多少是可哀的
我想我容忍不了一个虚伪做作的人.

只有注册用户登录后才能发表评论。


网站导航: