寻找成为开发高手的密匙
作者: Rick Wagner 来源: 51CTO 发布时间: 2010-03-04 12:18
编者按:每个程序员都希望自己在技术方面更进一步,成为程序达人,开发高手,技术大师……;这不仅能获得更好的职位和更高的报酬,更重要的是,开发高手还代表着一个开发者对自己的肯定以及对技术梦想的忠诚与追求。但如何成为一个开发高手呢?也许我们能从下面这篇博文中获得一些启发。作者Rick Wagner是一位Java企业级架构师,具有二十多年的开发经验的资深程序员和COBOLE语言的爱好者。他在文章中指出初级程序员与顶级程序员的根本区别在于所掌握技术的“广度”和“深度”,Rick认为这是程序入门者向程序高手进阶的关键
【51CTO译文】20年前,当我刚开始从事数据处理方面的开发工作时,我在一家为银行承担外包工作的公司工作。开始我只是一个实习生,毕业后进阶为程序员的第一级——“初级程序员”。其实,在我们公司内部,对这些Title都做了一些神秘的标识,比如我的初级程序员的标识是“E07”。
不久,我发现了我们公司是如何对程序员的级别进行标识的:
◆ 初级程序员 = E07
◆ 程序员 = E08
◆ 高级程序员 = E09
◆ 超级英雄 = E10 (一种非常罕见的品种)
这些级别不单代表技术能力,还有薪水,当然,薪水是与这些级别排名紧密相关的,这是不会变的,不管是20年前还是现在。
像所有初级程序员一样,我希望自己用一到两年的时间在E07级别工作,然后逐渐向上爬。但有件事一直令我困惑:那些进阶最高级别的程序员与一直停留在初级的程序员之间到底有什么不同?
一天,我与一个非常棒的E10程序员一起开发一个项目,他叫James。在这个项目的过程中,我们进行了愉快的交谈,他的话令我印象深刻:“工作都一样,无论你是E07还是E10”。
我当时目瞪口呆。在那一刻,我意识到,在这个项目中我所做的工作与James所做的一样重要。我当时在做数据分析和编码,James也在做数据分析和编码。虽然他以最高级别的E10在工作,但他所用的编译器我也在用;他所用的数据我也在用;他所用的开发环境也跟我一样。如果他所做的部分遇到困境,我所做的部分也将遇到阻碍。在这个项目中,我们同行。
别误会我的意思,虽然所做的工作一样,但初级程序员肯定不如那些程序大牛值钱。今天,我不得不承认这个被广泛接受的事实。但那时,我的这个想法给我带来不可估量的好处,直到今天。
我试图寻找我与E10的朋友们到底有哪些区别。我和他之间到底有哪些不同?我得到的结论是,至少在两个方面他比我更优秀:广度和深度。
广度意味着在技术方面可支配的工具、技能和方法广泛的多。当时,我只具备一些COBOL编程经验;而E10的朋友不单会COBOL,还精通于汇编、JCL(一种工作控制语言)、操作系统等等多项技能。在今天,这等于一个只会Java的程序员站在另一个Java程序员身边,他身边的这位同时还知道C++、C#、Ruby、Python、Erlang以及每一种语言的流行框架。如果一个项目只是需要使用Java,那这两个Java程序员是平等的。但如果下一个项目需要更多的技术,这种平等的情况就会发生改变。
另一个方面是深度,是指在其工作领域内的知识含量和功底。在过去,我所编写的COBOL代码也许跟我的E10朋友一样好。但如果我的程序有一个Bug,我的办法只是看着诊断报告不断进行调试。我的朋友不单会做这些,他还会阅读一些核心转储的数据,将一些重要数据转变成汇编程序(他可以从中获得一些启发)等等。在另一个我们一起进行界面编程的项目中,他可以更好的理解我们所操作的平台并知道如何完美的利用这个平台所提供的功能。同样,我的源码可能跟他的没什么太大区别,但如果我们需要向下一个级别进阶……是的,我们之间有一个明显的分界线。
在今天的世界里,这可能意味着程序牛人可以知道如何调整JVM,选取有用的数据分析工具;程序牛人知道如何安装、配置、调试和配置平台。牛人知道如何建立编译环境,而初级程序员也许只知道按照已经确定的方案(平台)进行开发。
技术的广度和深度,我想,我找到了成为高手的密匙。我需要学习更多并努力提到自己的广度和深度(直到今天,我还在努力!)。20多年前与James的一席谈使我知道自己哪里需要提高,这对我在事业方面的促进比我想象的大得多。如果你是这个行业的新手,希望上面所提到的这些能够帮到你。
Happy Coding!
原文:A secret key to 'Senior' level programming
链接:http://rickwagner.blogspot.com/2010/02/secret-key-to-senior-level-programming.html
[解决办法]
周公一大早就摸上来发帖....
[解决办法]
。。。。。。。
[解决办法]
[解决办法]
今后有了努力的方向
[解决办法]
路过过来看两下
[解决办法]
mark了再看
[解决办法]
[解决办法]
看贴不回,半身不遂
[解决办法]
good morning
[解决办法]
up
[解决办法]
仔细的看了一遍 的确有很多需要学习的
[解决办法]
真该向这方面好好学习。呵呵!
[解决办法]
下!!
[解决办法]
广度和深度。。。这个说的比较到位。。。
[解决办法]
顶下。。。。细细品味
[解决办法]
[解决办法]
周公真是度人无数啊。。。有佛家慈悲
[解决办法]
如果不是为了生存而工作,那就是一种境界。
[解决办法]
先顶再看
[解决办法]
[解决办法]
看了再顶
[解决办法]
看完再顶
[解决办法]
[解决办法]
[解决办法]
受益了
[解决办法]
[解决办法]
围观下!!!!!!!!!!!!!!
[解决办法]
顶,确实有道理!
[解决办法]
做开发,除非真的到了很高的境界,否则还是没前途和钱途。 所以还是慢慢转型吧。 中国的程序员就是一廉价劳动力。
[解决办法]
发现上升到一定高度之后,原来都是相通,原来软件业的各个概念全部都是来源于生活,抽象于生活,干一辈子开发都没逃出哲学的范畴,就在那一刹那间突然领悟到大剑无锋的境界,于是扔出那句口头禅:没啥技术含量。
[解决办法]
确实如此。。。
[解决办法]
[解决办法]
very good ,study hard!!!!
[解决办法]
[解决办法]
广度和深度....
[解决办法]
[解决办法]
hello
[解决办法]
感受良多
[解决办法]
学习了。。。。广度和深度,我记住了。。。。。。。
------解决方案--------------------
广度和深度!!!
[解决办法]
[解决办法]
占个位子 慢慢看
[解决办法]
顶之!
[解决办法]
好东西 顶了
[解决办法]
受教了~~~~
[解决办法]
深刻学习,体会到了!!
[解决办法]
学习啊。。。
[解决办法]
学习学习~
[解决办法]
广度与深度的紧密结合体呀
[解决办法]
受益良多啊,事在人为啊··········
[解决办法]
来学习,不评论
[解决办法]
十分赞同LZ的看法,正在努力。。。但同时也在犹豫
[解决办法]
努力学习!!!
[解决办法]
其实技术就是一个不断递归的过程!
每递归一次就距离终点进了一步
[解决办法]
这么早呀 7:00 我还梦见和MM打情骂俏啦
[解决办法]
学习了。。。努力中。。。
[解决办法]
牛人太多了,一山又比一山高
[解决办法]
[解决办法]
确实有道理!
[解决办法]
好贴 顶了
[解决办法]
恩 ·
[解决办法]
活到老,学到老
[解决办法]
[解决办法]
说了怎么多。。我还是不知道我处于什么水平
[解决办法]
[解决办法]
不怕犯法?
[解决办法]
我要努力,变成E10啊
[解决办法]
周公真是度人无数啊。。。有佛家慈悲
引用:
嗯,强调幼齿有点过了。不是幼齿最值钱,稍微可以让人泄愤的也算顶级了。
哎,站得高看得远啊,,,不过不知道老大的比喻何指///
[解决办法]
努力学习。。。
[解决办法]
为了生存啊………………
------解决方案--------------------
学习了
[解决办法]
学习了,并mark之。
[解决办法]
看了,我自认为,要想在IT行业混,必须摩擦几年。才可能有出头之日。
汗加油,像LZ学习。 这么早就上班了。。。
[解决办法]
好 学习了
[解决办法]
节日快乐!!
[解决办法]
生日快乐!!
[解决办法]
广度和深度。
[解决办法]
路过,学习一下~~~~~~~~~~~~
[解决办法]
值得学习
[解决办法]
yun
[解决办法]
和楼主共勉。
[解决办法]
MArk ...................
[解决办法]
程序员切记心浮气躁!