`

怎么成为专家级开发人员

阅读更多

     最近,在订阅中看到了Jakob JenkovHow to Become an Expert Developer 》一文,此文给我的印象深刻。笔者认为无论是广度,还是深度都值得学习。

 

     接下来,笔者结合文章的片段,同时分析国情,表达一些想法,希望能够和大家分享心得。 主要议题如下:

  1. 何为专家?
  2. 多久能够成为专家?
  3. 怎么样成为专家?
  4. 怎么样成为专家级开发人员?

 

   

     何为专家?

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并发编程系列》)

 

     最后,建议大家读读作者文章 ,确实有见地。同时,笔者学识和技术有限,请大家踊跃交流和指正。

 

分享到:
评论
35 楼 mercyblitz 2010-08-20  
javavaj 写道
lz具备了专家的潜力,这么年轻就有了唐博士李老师的功力,佩服佩服


这不是在讽刺我吗?呵呵
34 楼 javavaj 2010-08-20  
lz具备了专家的潜力,这么年轻就有了唐博士李老师的功力,佩服佩服
33 楼 qyhdt 2010-08-20  
lkj107 写道
公司给你的名片印了专家,就是专家

给你的工资是专家级别的,就是专家


同意观点
32 楼 mercyblitz 2010-08-20  
asialee 写道
lz不错,我今天看到Jakob Jenkov感觉到很熟悉,我对他的了解是他写了一些开源的一些组件,比如IOC,ORM等等的,我看过,不知道lz有没有研究过?


没有研究过,虽然他是软件自由职业者,但是对他在很多地方发表的见解非常佩服。毕竟好的创意灵感来自于优越的生活条件,我羡慕他们丹麦的福利啊,我老板也是丹麦人。不愧是全球最幸福的国家之一。



31 楼 asialee 2010-08-20  
lz不错,我今天看到Jakob Jenkov感觉到很熟悉,我对他的了解是他写了一些开源的一些组件,比如IOC,ORM等等的,我看过,不知道lz有没有研究过?
30 楼 116427 2010-08-19  
我只说一点: 你做什么样的活,就决定了以后会有什么样的水平!

所以,能解决比较难的问题也是成为专家的依据。

29 楼 mercyblitz 2010-08-19  
starcheney 写道
这年头,谁还相信所谓的专家啊,



不讨论相信与否,讨论学习过程啊!
28 楼 starcheney 2010-08-19  
这年头,谁还相信所谓的专家啊,
27 楼 cxr1217 2010-08-19  
挺好,楼主辛苦。学习了
26 楼 mercyblitz 2010-08-19  
baiducoder 写道
way_testlife 写道
There is a saying.
If you want to be a good programmer, you just program every day for two years, you will be an excellent programmer.
If you want to be a world-class programmer, you can program every day for ten years, or you can program every day for two years and take an algorithms class.

欢迎加入我们的JAVA团队



管理员?这个人baiducoder刷屏!
25 楼 way_testlife 2010-08-19  
There is a saying.
If you want to be a good programmer, you just program every day for two years, you will be an excellent programmer.
If you want to be a world-class programmer, you can program every day for ten years, or you can program every day for two years and take an algorithms class.
24 楼 mercyblitz 2010-08-19  
zhengwenyan 写道
想问楼主平时喜欢什么运动呢?



现在不怎么运动了,呵呵。
23 楼 zhengwenyan 2010-08-19  
想问楼主平时喜欢什么运动呢?
22 楼 mercyblitz 2010-08-19  
select*from爱 写道
何为砖家?--地上捡个砖头放家里面



大家不要讨论那个没用的东西,关键是过程和看法。
21 楼 select*from爱 2010-08-19  
何为砖家?--地上捡个砖头放家里面
20 楼 ajonjun 2010-08-19  
成为领域专家不是那么简单的事,可公司就是有那么些伪专家咯。
19 楼 mercyblitz 2010-08-19  
清晨阳光 写道
想知道楼主订阅的哪个网站的新闻或文章?



还算多,每天大概需要华4-5小时才能看完。

比如InfoQ,IBM,还有一些专家的blog。
18 楼 mercyblitz 2010-08-19  
清晨阳光 写道
CSDN好多专家啊!大家要努力成为CSDN的专家



我都不去CSDN的,不知道上面真才实学的有多少!
17 楼 清晨阳光 2010-08-19  
想知道楼主订阅的哪个网站的新闻或文章?
16 楼 清晨阳光 2010-08-19  
CSDN好多专家啊!大家要努力成为CSDN的专家

相关推荐

    Windows Script Host 2脚本开发人员指南PDF+源码

    鉴于Microsoft Windows脚本宿主2.0开发人员指南教你,你需要知道什么开始,与Microsoft Windows脚本宿主2.0高级开发与WSH的脚本会为您提供的信息,你需要成为一个专家WSH程序员。您将学到的专业开发人员使用,以帮助...

    真正的Hibernate3.2.6英文API

    现在最新的Hibernate是3.3.2,但是整个API没有重大变动,想成为专家级开发人员,就不能停留在入门的教程上,必须研究Hibernate各个核心接口的API 很不容易找到真正的API,网上有太多的入门教程,共享之。

    html网页制作手册.zip

    HTML5作为当今**炙手可热的Web开发技术,凭借其强大的功能特性和跨平台等优势,吸引了业内开发人员的重点关注,掌握HTML5技术也成为Web开发人员的一项必备技能。 《HTML5开发手册》采用菜谱的方式为HTML5新手以及有...

    093 高速B/S软件开发平台

    093 高速B/S软件开发平台 ( 类似 C4I 作用 )  授权方式: 教育,慈善,研究等非盈利性目的 免费. 由于软件较大, 40M, 附件...经过3天到一周培训,就可以成为B/S开发的专家。093不做 用一种复杂 代替 另一种复杂的事情。

    092_《Delphi6高级编程》

    本书属于《开发专家之DelPhi》系列。Delphi 6是Borland公司推出的最新版本,该版本在... 本书内容翔实,实例丰富,解析深刻,适用于中高级的专业和准专业的程序开发人员,也可作为网络管理员、系统分析员的技术参考书。

    大型数据库系统开发指南

    为满足技术领域专业人员和用尸开发、应用和学习的需要,我社和美国Austin技术研究中心以及IBM有关专家合作共同组织出版了本丛书:IBM核心技术内幕丛书(7本)。 本书主要介绍大型数据库系统AIx DB2UDS/hde的设计、...

    敏捷软件开发.pdf

     5A.1.7敏捷只适合最优秀的开发人员  5A.1.8敏捷是既老又新的、失败的、没有尝试过的  5A.2敏捷方法集的演进  5A.2.1XP第2版  5A.2.2Scrum  5A.2.3实用主义和无名的  5A.2.4可预测、计划驱动和其他中心调整 ...

    Gaea决策引擎产品白皮书_专家系统_

    近年来,企业中商业规则频繁变动已成为一种趋势,并且这种规则变动的原因多半来自于非开发人员,或者说是业务人员。面对复杂的企业级项目开发及其随着外界环境条件的变化而变化的业务规则,譬如银行、保险领域,业务...

    EfsFrame(php开发框架) 2.2.rar

    Efs框架从研发到时间,历时近10年,积累了大量实战软件工程专家、数学专家的心血不断完善而成,已应用的大大小小的项目几十个,从小项目的开发管理维护设计到大项目的负载均衡设计,Efs逐渐形成了一整套完整的基于B/...

    WCF全面解析(套装上下册) 高清pdf 带书签 part4(共4)

    《WCF全面解析(套装上下册)》不仅适合尚未接触过WCF,希望尽快入门并进行深入研究的开发人员使用,同样也适合对WCF有一定了解的开发设计人员和架构师阅读。相信不同层次的读者都能从此书中找到自己希望了解的部分。 ...

    北大青鸟ACCP 6.0 软件开发初级程序员:职业修养和进阶项目训练高级篇

    不好意思,本人发的"北大青鸟ACCP 6.0 软件开发初级程序员:c#语言和数据库技术基础"和 "北大青鸟ACCP 6.0 软件开发初级程序员:使用C#语言开发数据库应用系统" 文件搞反了,如果一起下载不影响的。呵呵 ACCP...

    企业架构模式(Patterns of Enterprise Application Architecture )

    本书作者是当今面向对象软件开发的权威,他在一组专家级合作者的帮助下,将40多种经常出现的解决方案转化成模式,最终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。本书获得了2003...

    EfsFrame(java开发框架) v2.2 源代码.rar

    Efs框架从研发到时间,历时近10年,积累了大量实战软件工程专家、数学专家的心血不断完善而成,已应用的大大小小的项目几十个,从小项目的开发管理维护设计到大项目的负载均衡设计,Efs逐渐形成了一整套完整的基于B/...

    EfsFrame(net开发框架) v2.2 源代码.rar

    Efs框架从研发到时间,历时近10年,积累了大量实战软件工程专家、数学专家的心血不断完善而成,已应用的大大小小的项目几十个,从小项目的开发管理维护设计到大项目的负载均衡设计,Efs逐渐形成了一整套完整的基于B/...

    EfsFrame(php开发框架) v2.2 源代码.rar

    Efs框架从研发到时间,历时近10年,积累了大量实战软件工程专家、数学专家的心血不断完善而成,已应用的大大小小的项目几十个,从小项目的开发管理维护设计到大项目的负载均衡设计,Efs逐渐形成了一整套完整的基于B/...

    ppk on javascript

    他拥有多年客户端web开发经验,所维护的网站www.quirksmode.or9已成为全球JavaScript开发人员最重要的参考资源之一。他常年为业界顶尖的媒体 Digital Web Magazine、AList apart等撰写技术文章,包括影响深远的The...

    LINUX命令、编辑器与SHELL编程.pdf

    2. 知名Linux专家Mark Sobell 编写的这本书,为系统管理员、开发人员和高级用户提供了最需要的全面的深入指导,同时还是一本卓越的日常参考手册。 3. 一本值得每一位Linux管理人员、开发人员和高级用户拥有的指南! ...

Global site tag (gtag.js) - Google Analytics