很多人问我如何才能成为一名专家级别的程序员,现在我们对此还没有一种统一的模式,但是我还是想把我总结的一些经验分享给大家。如何成为一名专家级别的程序员,在很大程度上取决于你开发的软件和你所处的行业,以及你所在公司使用的工具等等。对于本文讲的一些方法,你可以选择适合自己的情况。
本文仅为个人观点,如果各位有任何补充或建议,欢迎不吝赐教。
还有一点要着重说明的是,成为专家与被认为是专家是不一样的。很多人虽然荣誉是专家,但其实他们并不是。但是如果人们相信他是专家的话,他就能因此赚钱。此外,也有的专家虽然不被认可,但是如果你真的是专家的话,你完全可以通过自己的行动去证实这一点:是金子总会发光。不过关于这方面显然超出了本文的主旨。这是另一个关于个人品牌的故事了。
何为“专家”,需要多长时间?
在我讨论如何成为一名专家之前,给我 30 秒的时间,让我解释一下什么是专家,以及需要多长时间才能成为一个专家。
3 个月?3 年?都不是!根据 Malcom Gladwell 写的《Outliers》一书中所说,我们平均需要 10000 个小时才能成为一名真正的专家。下巴有没有掉下来?没错,你没看错,就是 10000 小时!也就是说每天 10 小时的话,需要 3 年;每天 5 小时,一年算 200 天的话,则需要 10 年。哇哦,10 年哪!!!
按照此种说法,拥有 3 年经验的我或许就够得上专家或者至少高级开发人员的称号了。但是当我拥有了 10 年经验的时候,我却不敢认为自己是专家了——因为我知道自己还有很多很多是需要知道而还不知道的东西。
此外,这个行业(Java 企业开发)也在这 10 年间发生了很大的变化,我惯于使用的技能也渐渐落伍了。所以,即使你已经是一个专家的话也是会过时的,从而需要重新开始学习。
还有一点:我们是不可能成为全面专家的,也就是说,可能你在某个技能上比人员B强,但是人员B可能再另一个技能上面比你厉害。即,我们不可能所有的技能都比别人好,也不可能全部技不如人。三人行,必有我师焉。你总是可以从其他人那儿学到你不具备或欠缺的东西。我碰到过不少开发人员说的好像他们所有事情都最了解一样,但显然事实并非如此。
这也是一种鉴别菜鸟的方法。只有菜鸟才会深信他们知道所有事情,会在网上或者办公室里与人争得声嘶力竭。他们说的通常非常绝对化,例如“这始终比那个更好”、“这问题就应该这么解决”等等。专家很少会这样说。因为他们明白,凡事不能绝对,很多事情往往取决于当前的形式、开发人员具备的技能、公司选择的工具、公司政策、以及个人爱好等等。只有那些经验不足的开发人员才相信世界只有黑与白。专家们则明白除了黑白之外,还有灰色以及其他各种的颜色。
如何成为专家
对于你所需要学习的大部分技能,下面四个步骤(重复向上或向下),将有助于你成为一个专家:
1、Learn it
2、Do it
3、Discuss it
4、Teach it
(责任编辑:安博涛)