您所在的位置:开发 > Web > 热点推荐 > 如何成为一个专家级的开发者(1)

如何成为一个专家级的开发者(1)

2010-08-24 08:58 周雪峰 译 51CTO.com 我要评论(0) 字号:T | T
一键收藏,随时查看,分享好友!

作为一个开发者,你很可能正在使用一个特定的平台,为一个特定的行业开发软件。如果不是这样,如果你经常要选择工具和行业,那么你很可能从来都没有成为一个真正的专家,如何成为一个专家级的开发者呢?

AD:

【51CTO译文】如何成为一个专家级的开发者?怎样才能寻找到成为开发高手的密钥?这样的问题我们不止一次的提到过,当然,适合大家的专家之路并非只有一条。它取决于你为其开发软件的行业是什么,和你的公司使用的工具是什么等等。

这篇文章会提供一条一般性的,可以适合你自己情况的专家之路,其中包括文章作者的一些观点——关于如何成为一个专家级的开发者。

51CTO推荐阅读:充满荆棘的专家程序员之道

当你浏览这篇文章的时候请记住:成为一个真正的专家和被当成是一个专家之间是有区别的。许多人都被晋升为专家,但是他们真的不是。但是,如果有人相信他们是,他们就会一直赚很多钱,虽然他们很平庸。另外,有许多专家,没有人知道他们是专家。如果你真的是一个专家,你的下一步行动就是要被大家当成是一个专家。如何做到这一点已经超过了这篇文章的讨论范围。这是一个的不同主题——关于个人品牌等。

什么是“专家”,要花多长时间才能成为一个专家?

在开始讨论如何成为一个专家之前,我们先来花30秒的时间来说明专家是什么,和要花多长时间才能成为一个专家。

在你使用一项技能3个月以后,你不是一个专家,使用3年以后也不是一个专家。根据Malcom Gladwell的图书《局外人》所说,要成为一个真正的专家需要平均花费10000个小时。如果你喜欢自命不凡。10000个小时!如果一天花费10个小时,然后每天都努力,需要3年。或者,更加自命不凡一些,一天花费5个小时,一年只有200天在努力,需要10年。整整10年!

根据这个断言,我发现在我有3年经验的时候我曾认为我自己是一个专家或一个资深开发者。现在,在2010年的时候我已经有10年的经验了,我已经学习了很多需要了解的知识,但是我一直不知道还有多少知识需要学习,现在我不再感觉自己是一个专家了。

另外,在最近这10年里,行业(Java企业级开发)已经发生了很大的改变,所以我过去掌握的技能,都不那么“酷”了。即使你是一个专家,你也会发现你自己变得过时了,必须要重新开始学习。

还有一件事:你不可能是各个领域的专家,这意味着在某种技能上你也许比某人更优秀,但是在另外一种技能上比某人可能就比你更优秀了。你在每一种技能上都比别人优秀或比别人更差,这是不可能的。你总是能从其他人身上学到一些东西的。我过去曾经遇到过几个开发者,他们总是表现的好像他们在所有方面都很优秀似的,即使在事实并非如此的情况下,他们也还是这样做。

实际上,这通常是鉴别新手的一种方法:相信他们自己知道所有的事情,在线或离线的情况下一直不停的争论。他们的争论带有绝对倾向,比如“这个总是比那个更好”,或“这是做这件事的唯一方法”等等。专家从来不这样。他们知道,一切都取决于具体情况,你的开发者掌握的技能,你的公司选择的工具,公司策略,个人喜好等等。缺乏经验的开发者(和一般人)都倾向于相信世界是非黑即白的。而专家知道,世界充满了灰色地带,甚至还有许多额外的颜色和色调。

如何成为一个专家

对于你需要学习的大多数技能,有四个步骤可以帮助你成为一个专家。大多数情况下你可以按顺序进行这些步骤,也可以按从上到下的方式迭代这些步骤。这些步骤是:

1,学习它

2,实践它

3,讨论它

4,传授它

学习它

在你掌握一项技能以前,你必须首先学习它的理论。你可以通过图书,手册,培训来学习理论知识,或综合运用这些途径来学习理论知识,在51CTO之前报道过的《为什么5%的技术人员开发效率是其他95%的20倍?》的文章中,也曾提到过这一点。

实践它

一旦你已经学会了这项技能的理论知识,你需要实践这项技能,通过实践你的技能,你可以认识到你学到理论知识哪些是正确的,哪些是错误的。是的,往往大学教给你的理论在现实中并不起作用,或者并不能在你现在的情况下使用。

讨论它

一旦你已经使用这项技能很长时间了,并且你发现你能够解决很多需要这项技能的问题,那么该是和其他有经验的人讨论这项技能的时候了。可以讨论一下应用这项技能的最佳方式是什么,理论的限制在哪里,可以补充些什么等等。简而言之,就是讨论如何进一步推动这项技能(比如一个API,如何使它更好/与众不同等)。

传授它

把你的技能教给其他人,真的是一个弥补你的技术上的不足的好方法。可能许多事情只是做做而已,但是并没有思考为什么要这样做。如果必须要解释你的方式和方法,可以强迫你思考这样做的原因。

另外,可能有一些你技术上的空白点,你从来都不需要掌握它们(比如说,Web服务的规范)。如果必须要传授你的技能,将可以强迫你掌握这些空白点,让你有更大的进步。

内容导航

网友评论TOP5

查看所有评论(

提交评论

  1. 什么是响应式Web设计?
  2. Java路线图:甲骨文的两年计划

热点专题

更多>>

读书

计算机网络原理与实践标准教程
本书深入浅出地阐述了计算机网络技术的基本原理,介绍了当前常用的先进网络技术以及网络的实际应用知识。全书主要内容包括计算机

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 移动互联网生活门户 灵客风LinkPhone