`

怎么成为专家级开发人员

阅读更多

     最近,在订阅中看到了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的专家

相关推荐

    Oracle RAC 12c专家级开发教程

    Oracle RAC 12c专家级开发教程是一本旨在帮助读者深入理解Oracle RAC架构、概念和实现细节的专业书籍。该书主要面向那些已经具有一定程度经验的Oracle专业人员,目标是帮助他们不仅了解RAC的技术细节,还能够有效地...

    Oracle专家高级编程.pdf

    Oracle专家高级编程主要涵盖了一系列深度探索Oracle数据库系统的技术和策略,旨在帮助开发人员和DBA提升他们的技能,实现更高效、更稳定的数据管理。在这个领域,深入理解Oracle的内部机制、优化技巧以及复杂问题的...

    Oracle专家高级编程+(高清)+书签

    《Oracle专家高级编程》是一本深入探讨Oracle数据库技术的专业书籍,尤其适合已经有一定基础的DBA(数据库管理员)和开发人员。这本书以高清格式呈现,为读者提供了清晰易读的阅读体验,同时还配备了书签,方便读者...

    _Microsoft .NET开发人员职业规划蓝图和学习路线图

    ### Microsoft .NET开发人员职业规划蓝图与学习路线图 #### 第一部分:Microsoft .NET平台介绍 ...通过遵循上述蓝图和路线图,不仅可以成为一名优秀的.NET开发人员,还能为未来的职业发展打下坚实的基础。

    CSharp开发人员指南(PDF格式)

    《CSharp开发人员指南》是一本专为C#程序员量身打造的实用教程,它涵盖了C#编程语言的基础知识、高级特性和实际应用。作为一本PDF格式的资源,该指南旨在帮助开发者深入理解和掌握C#这门强大的面向对象编程语言。 ...

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

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

    MCITP:数据库开发人员认证相关信息

    MCITP(微软认证专业 IT 人员)是微软公司针对其技术专家的认证体系,其中“数据库开发人员”和“商业智能开发人员”是两个重要的角色认证。这两个认证旨在验证IT专业人士在数据库设计、开发、管理和商业智能解决...

    2012-2013中国嵌入式开发从业人员调查报告(最终版)

    ### 2012-2013中国嵌入式开发从业人员调查报告分析 #### 调查背景 本报告是对2012年至2013年间中国嵌入式开发行业的全面调研,旨在深入了解该领域的现状和发展趋势。随着移动互联网、物联网、云计算等新兴技术的...

    JRules6面向架构师和开发人员.rar

    它具有直观的用户界面,使得业务专家可以独立于开发人员定义和修改业务规则,实现了业务逻辑和软件工程的解耦。 **2. 架构师视角** 对于架构师而言,JRules6提供了集成到现有系统的能力,如SOA(面向服务架构)或...

    Oracle专家高级编程-Expert_one-on-one

    这本书专为那些希望提升Oracle技能的专业人士设计,无论你是数据库管理员(DBA)还是开发人员,都能从中受益匪浅。 1. **Oracle体系结构**:书中首先会介绍Oracle数据库的核心架构,包括内存结构(如SGA和PGA)、...

    Delphi6开发人员指南

    这本书的原著由国外的资深专家撰写,经过精心翻译成中文,使得国内的开发者也能从中受益,了解并掌握这款强大的集成开发环境(IDE)的使用技巧和高级特性。 Delphi6是Borland公司(现Embarcadero Technologies)在...

    OpenGL4.3兼容性专家级文档

    ### OpenGL4.3兼容性专家级文档知识点解析 #### 一、OpenGL 4.3概述与特性 ...综上所述,OpenGL 4.3兼容性专家级文档深入介绍了OpenGL 4.3的核心特性和高级技术,对于专业开发人员来说是一份非常宝贵的参考资料。

    真正的Hibernate3.2.6英文API

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

    华迪系列丛书:Java软件开发宝典(开发篇)

    《华迪系列丛书:Java软件开发宝典(开发篇)》是一本专为Java软件开发人员编写的实践指南,由成都华迪信息技术有限公司内部资料整理而成。本书旨在为初入IT行业的毕业生、寻找工作的程序员以及转行软件开发的人员提供...

    TypeScript_由全网6W粉丝华为及阿里云测试专家认证博主开发及蚂蚁金服高级测开担任顾问推出的轻量级接口测试平台.zip

    利用这个平台,开发人员可以更容易地进行接口测试工作,从而确保应用接口的稳定性和可靠性。 从文件结构上看,压缩包内包含的“说明.txt”文件很可能是对平台使用方法、功能特点、安装配置等细节的详细说明,为用户...

    ASP.NET高级开发技术与范例

    ASP.NET是微软公司推出的一种基于.NET Framework的Web应用程序开发框架,它为开发人员提供了一种高效、简洁的方式来构建动态网站、Web应用和Web服务。在"ASP.NET高级开发技术与范例"中,我们将深入探讨ASP.NET的核心...

    Head First软件开发 中文版

    它不仅传授知识,更注重学习者如何更有效地学习,最终能够成为一个优秀的软件开发人员。读者在完成本书的学习之后,将能够掌握自动化构建、版本控制、测试驱动开发等关键技能,并能熟练运用设计模式,从而有能力开发...

Global site tag (gtag.js) - Google Analytics