最近,在订阅中看到了Jakob Jenkov
《How to Become an Expert Developer
》一文,此文给我的印象深刻。笔者认为无论是广度,还是深度都值得学习。
接下来,笔者结合文章的片段,同时分析国情,表达一些想法,希望能够和大家分享心得。 主要议题如下:
- 何为专家?
- 多久能够成为专家?
- 怎么样成为专家?
- 怎么样成为专家级开发人员?
何为专家?
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.
放眼全球,不少专家只是授予的头衔,实际并不一定出类拔萃。这种风气,在国内恐怕比较盛行,年级轻轻就光环缠身。
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.
真正的专家,不谓人民的考验。从作者的文中,不难看出,专家靠的是扎实功底,并非名分。
多久能够成为专家?
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!
欲速则不达-想要成为专家,首先要耐得住时间的考验,并没有一个固定的路线图和时间表。在国内,浮躁总是围绕着我们。活在当下,大家的生活压力确实很大,一切朝钱看,朝厚看。自然地,没有太多的时间和精力顾及自己的职业发展。相反,事业的成败不再以自己的喜好和贡献为基准,而是趋向于物质财富的多寡。不过,笔者认为,要想在事业领域做出成就,需要耐得住寂寞,淡泊名利。
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岁要去搞管理,那么,怎么可能会有那么多管理的位置留给我们呢?转行的话,岂不是更加难。隔行如隔山啊,并非做事情有多少难度,而是说思维方式,要知道思维决定高度。因此,坚持不懈,持之以恒,并非只为成为专家。
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.
人非圣贤,不可能面面聚到。尺有所长,寸有缩短。三人行,必有我师。敏儿好学,不耻下问。
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.
本人大为赞同这点。本人曾发表过《何必较真》
,可惜被视为灌水。任何事物都不是绝对的,或者用简单的是与非、黑与白来判定。世界是灰色的天平,存在即理由。当没有机会制定规则时,也只能适应规则,逐步改进规则,在是非之间不断地博弈。没有最好,只有更好,懂得选择,知道权衡,架构如此,人生亦如此。一个专家是一个成熟的人,事情区分轻重缓急,有所为,有所不为。
怎么样成为专家?
1. Learn it
2. Do it
3. Discuss it
4. Teach it
学习是最自然不过的工程。子曰:“学而不思则惘,思而不学则怠”。软件是一种过程类的学科,在实践中,体会和领悟理论的真谛。讨论也是一种思考的过程,相互学习和讨论,从而提高自己的认识。好为人师,最好的学习方法就是教会别人。孔子之所以伟大,其中一个很大的原因,他有一群伟大的学生。你的“学生”的水平也决定了你的水平。
怎么样成为专家级开发人员?
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专家并非啥技术都明白,即时在固定平台上面。
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并发编程系列》)
最后,建议大家读读作者文章
,确实有见地。同时,笔者学识和技术有限,请大家踊跃交流和指正。
分享到:
相关推荐
鉴于Microsoft Windows脚本宿主2.0开发人员指南教你,你需要知道什么开始,与Microsoft Windows脚本宿主2.0高级开发与WSH的脚本会为您提供的信息,你需要成为一个专家WSH程序员。您将学到的专业开发人员使用,以帮助...
现在最新的Hibernate是3.3.2,但是整个API没有重大变动,想成为专家级开发人员,就不能停留在入门的教程上,必须研究Hibernate各个核心接口的API 很不容易找到真正的API,网上有太多的入门教程,共享之。
HTML5作为当今**炙手可热的Web开发技术,凭借其强大的功能特性和跨平台等优势,吸引了业内开发人员的重点关注,掌握HTML5技术也成为Web开发人员的一项必备技能。 《HTML5开发手册》采用菜谱的方式为HTML5新手以及有...
093 高速B/S软件开发平台 ( 类似 C4I 作用 ) 授权方式: 教育,慈善,研究等非盈利性目的 免费. 由于软件较大, 40M, 附件...经过3天到一周培训,就可以成为B/S开发的专家。093不做 用一种复杂 代替 另一种复杂的事情。
本书属于《开发专家之DelPhi》系列。Delphi 6是Borland公司推出的最新版本,该版本在... 本书内容翔实,实例丰富,解析深刻,适用于中高级的专业和准专业的程序开发人员,也可作为网络管理员、系统分析员的技术参考书。
为满足技术领域专业人员和用尸开发、应用和学习的需要,我社和美国Austin技术研究中心以及IBM有关专家合作共同组织出版了本丛书:IBM核心技术内幕丛书(7本)。 本书主要介绍大型数据库系统AIx DB2UDS/hde的设计、...
5A.1.7敏捷只适合最优秀的开发人员 5A.1.8敏捷是既老又新的、失败的、没有尝试过的 5A.2敏捷方法集的演进 5A.2.1XP第2版 5A.2.2Scrum 5A.2.3实用主义和无名的 5A.2.4可预测、计划驱动和其他中心调整 ...
近年来,企业中商业规则频繁变动已成为一种趋势,并且这种规则变动的原因多半来自于非开发人员,或者说是业务人员。面对复杂的企业级项目开发及其随着外界环境条件的变化而变化的业务规则,譬如银行、保险领域,业务...
Efs框架从研发到时间,历时近10年,积累了大量实战软件工程专家、数学专家的心血不断完善而成,已应用的大大小小的项目几十个,从小项目的开发管理维护设计到大项目的负载均衡设计,Efs逐渐形成了一整套完整的基于B/...
《WCF全面解析(套装上下册)》不仅适合尚未接触过WCF,希望尽快入门并进行深入研究的开发人员使用,同样也适合对WCF有一定了解的开发设计人员和架构师阅读。相信不同层次的读者都能从此书中找到自己希望了解的部分。 ...
不好意思,本人发的"北大青鸟ACCP 6.0 软件开发初级程序员:c#语言和数据库技术基础"和 "北大青鸟ACCP 6.0 软件开发初级程序员:使用C#语言开发数据库应用系统" 文件搞反了,如果一起下载不影响的。呵呵 ACCP...
本书作者是当今面向对象软件开发的权威,他在一组专家级合作者的帮助下,将40多种经常出现的解决方案转化成模式,最终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。本书获得了2003...
Efs框架从研发到时间,历时近10年,积累了大量实战软件工程专家、数学专家的心血不断完善而成,已应用的大大小小的项目几十个,从小项目的开发管理维护设计到大项目的负载均衡设计,Efs逐渐形成了一整套完整的基于B/...
Efs框架从研发到时间,历时近10年,积累了大量实战软件工程专家、数学专家的心血不断完善而成,已应用的大大小小的项目几十个,从小项目的开发管理维护设计到大项目的负载均衡设计,Efs逐渐形成了一整套完整的基于B/...
Efs框架从研发到时间,历时近10年,积累了大量实战软件工程专家、数学专家的心血不断完善而成,已应用的大大小小的项目几十个,从小项目的开发管理维护设计到大项目的负载均衡设计,Efs逐渐形成了一整套完整的基于B/...
他拥有多年客户端web开发经验,所维护的网站www.quirksmode.or9已成为全球JavaScript开发人员最重要的参考资源之一。他常年为业界顶尖的媒体 Digital Web Magazine、AList apart等撰写技术文章,包括影响深远的The...
2. 知名Linux专家Mark Sobell 编写的这本书,为系统管理员、开发人员和高级用户提供了最需要的全面的深入指导,同时还是一本卓越的日常参考手册。 3. 一本值得每一位Linux管理人员、开发人员和高级用户拥有的指南! ...