锁定老帖子 主题:怎么成为专家级开发人员
精华帖 (3) :: 良好帖 (17) :: 隐藏帖 (9)
|
|
---|---|
作者 | 正文 |
发表时间:2010-08-18
最后修改:2010-08-19
最近,在订阅中看到了Jakob Jenkov 《How to Become an Expert Developer 》一文,此文给我的印象深刻。笔者认为无论是广度,还是深度都值得学习。
接下来,笔者结合文章的片段,同时分析国情,表达一些想法,希望能够和大家分享心得。 主要议题如下:
何为专家? Jakob Jenkov
写道
Keep in mind as you go through this text, that there is a difference between being an expert, and being perceived as an expert. Lots of people are being promoted as experts, who really aren't.
放眼全球,不少专家只是授予的头衔,实际并不一定出类拔萃。这种风气,在国内恐怕比较盛行,年级轻轻就光环缠身。
Jakob Jenkov
写道
there are many experts that nobody knows are experts. If you truly are an expert, your next move
would be to also be perceived
as an expert. How to become that is out of the scope of this
text though. That's a different story about personal branding etc.
真正的专家,不谓人民的考验。从作者的文中,不难看出,专家靠的是扎实功底,并非名分。
多久能够成为专家?
Jakob Jenkov
写道
you are not an expert after 3 months of using a skill, nor after 3 years. According to the book "Outliers" by Malcom Gladwell, it takes 10.000 hours on average to become a true expert. A virtous if you like. 10.000 hours! That's 10 hours a day, every day, for 3 years. Or, more likely, 5 hours a day, 200 days a year, for 10 years. 10 years!
欲速则不达-想要成为专家,首先要耐得住时间的考验,并没有一个固定的路线图和时间表。在国内,浮躁总是围绕着我们。活在当下,大家的生活压力确实很大,一切朝钱看,朝厚看。自然地,没有太多的时间和精力顾及自己的职业发展。相反,事业的成败不再以自己的喜好和贡献为基准,而是趋向于物质财富的多寡。不过,笔者认为,要想在事业领域做出成就,需要耐得住寂寞,淡泊名利。
Jakob Jenkov
写道
Additionally, the industry (Java enterprise development) has changed a lot over the last 10 years, so the skill I used to master, are not all that "cool" anymore. So even if you are an expert, you may find yourself becoming obsolete, and having to start over.
活到老,学到老。IT业发展迅速,软件同样如此。从的瀑布开发模式到敏捷等;从单机系统到今天的云集计算;从机器语言到人工智能。IT专家必须不断的学习,否则势必会被市场抛弃。不少的前辈说,中国IT环境不适合一辈子搞技术,笔者身为IT业的晚辈,但不敢苟同。客观地说,中国的IT业还是比较年轻,不客气地说,就是不成熟,不过它在逐步走向成熟。如果说30岁要去搞管理,那么,怎么可能会有那么多管理的位置留给我们呢?转行的话,岂不是更加难。隔行如隔山啊,并非做事情有多少难度,而是说思维方式,要知道思维决定高度。因此,坚持不懈,持之以恒,并非只为成为专家。
Jakob Jenkov
写道
You are seldomly an expert in everything, meaning you may be better than person B in
one skill, and person B may be better than you in another skill. It's not like you are either better
in every skill than someone else, or worse. You can almost always learn something from everyone.
Several developers I have met act as if they know everything best, even when the clearly don't.
人非圣贤,不可能面面聚到。尺有所长,寸有缩短。三人行,必有我师。敏儿好学,不耻下问。
Jakob Jenkov
写道
In fact, this is often a way to spot a noob. The believe they know it all, and will argue to death either online or offline. They will argue in absolutes, like "This is ALWAYS better than that", or "This is THE way to things" etc. Experts rarely do that. They know, that it all depends on situation, skills your developers have, tools chosen by your company, company policies, personal preferences etc. Inexperienced developers (and people in general) tend to believe the world is black and white. Experts know, it's full of gray scales, and even lots of additional colors and shades.
本人大为赞同这点。本人曾发表过《何必较真》 ,可惜被视为灌水。任何事物都不是绝对的,或者用简单的是与非、黑与白来判定。世界是灰色的天平,存在即理由。当没有机会制定规则时,也只能适应规则,逐步改进规则,在是非之间不断地博弈。没有最好,只有更好,懂得选择,知道权衡,架构如此,人生亦如此。一个专家是一个成熟的人,事情区分轻重缓急,有所为,有所不为。
怎么样成为专家?
Jakob Jenkov
写道
1. Learn it
2. Do it 3. Discuss it 4. Teach it 学习是最自然不过的工程。子曰:“学而不思则惘,思而不学则怠”。软件是一种过程类的学科,在实践中,体会和领悟理论的真谛。讨论也是一种思考的过程,相互学习和讨论,从而提高自己的认识。好为人师,最好的学习方法就是教会别人。孔子之所以伟大,其中一个很大的原因,他有一群伟大的学生。你的“学生”的水平也决定了你的水平。
怎么样成为专家级开发人员?
Jakob Jenkov
写道
As a developer you will most likely be developing software for a specific industry (at least for a while), and using a specific platform. If not, if you are switching tools and industry constantly, like some web developers do, you will most likely never become a real expert. You will become a Jack-of-All-Trades, which is also useful in some situations. If you are not focused on platform and industry, and you want to become an expert, you need to focus.
作为IT人员,这是一个最关心的问题。专家大致分为,特定领域的专家和抽象领域的专家。可能大家的误区在与IT专家并非啥技术都明白,即时在固定平台上面。
Jakob Jenkov
写道
Once you begin to master your platform, you should start learning platform independent skills, like design patterns, distributed system design, architecture, usability etc. As you get better, you will spend more and more time learning these skills. This is a good thing. These skills are more easily transferable to a new technology platform.
对于开发人员发展问题,上段文字可能是一个非常好的参考。从思维方向上来说,开发人员容易受到功能性和技术亮点影响,过于关注与微观细节实现,而架构师(技术专家)却是从宏观方面把握。这些经验,开发人员必须通过“如何称为专家”那四步走,前提是工作环境提供机会。不断的提高自己的技能,最主要的方面是把握怎么权衡技术性和实用性,也就是经常提到的-“最佳实践”。笔者是Java平台的开发人员,做培训的时候,提到最多的不是哪门技术,而是技术的使用场景。其次,是技术相关性。前者(使用场景)是区别性,后者是关联性。万事万物都是彼此独立和相互联系的,技术也是一样。
举例说明,Java并发编程中,特别注意三个方面:可见性、原子性和顺序性。纵向分析技术,往下走是具体如何实现线程安全,往上走是操作系统OS内核和硬件架构支持性方面。(大家如果有兴趣的话,可以关注笔者的Blog 马上要发表的《深入Java并发编程系列》)
最后,建议大家读读作者文章 ,确实有见地。同时,笔者学识和技术有限,请大家踊跃交流和指正。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-08-18
对于刚大学毕业的我来说,这篇文章很受用。。
|
|
返回顶楼 | |
发表时间:2010-08-18
最后修改:2010-08-18
hellojinjie 写道
对于刚大学毕业的我来说,这篇文章很受用。。
呵呵,你觉还应该提哪些方面的问题? |
|
返回顶楼 | |
发表时间:2010-08-19
请问下楼主,专家的知识面如何界定?
|
|
返回顶楼 | |
发表时间:2010-08-19
aswang 写道 请问下楼主,专家的知识面如何界定?
这个很难,同时也是相对的,一般来说,大家都叫你“专家”,你就是咯。 |
|
返回顶楼 | |
发表时间:2010-08-19
公司给你的名片印了专家,就是专家
给你的工资是专家级别的,就是专家 |
|
返回顶楼 | |
发表时间:2010-08-19
lkj107 写道 公司给你的名片印了专家,就是专家
给你的工资是专家级别的,就是专家 对于权威部门(国内除外)和民间社团推选出来的有一定作为的人员。 |
|
返回顶楼 | |
发表时间:2010-08-19
项目经理领着人到客户前说:“这是我们公司xx领域的专家”,于是就成专家了
|
|
返回顶楼 | |
发表时间:2010-08-19
看了有点感触,,。
|
|
返回顶楼 | |
发表时间:2010-08-19
unika_ly12 写道 项目经理领着人到客户前说:“这是我们公司xx领域的专家”,于是就成专家了
这年头“装假“还真不少。我认为也是又本事的专家,越是低调。不想那某些“砖家”,经常发表社论。 |
|
返回顶楼 | |