為什麼我們不要 .NET 程序員

首先我们来看看一篇网上讨论到很热烈的文章
这是一位IT CEO发表的。
过后我再来发表看法。

******
英文版本:
http://blog.expensify.com/2011/03/25/ceo-friday-why-we-dont-hire-net-programmers/

中文:

也许你已经知道了,我们正在招聘最优秀的程序员。不错,每个人都这样说。但是我们的程序员能打败你们的——任何时候。比如,米奇虽然只有5英尺高,但他是一个有相当实力的击剑手。维托尔德以前是一个6’3″的职业冰球选手。内特喜欢以丢匕首为乐。当然,他们都是很有水平的程序员。

发现这些人才,并不是你好好上班就能完成的事。事实上,我生活的一半时间都花在了上面,而丽莎差不多投入了她全部的时间。我们有一支招聘大军,搜遍世界任何一个角落,没有一份简历漏掉。总共算起来,我们有大量的简历。很多我们根本不看,因为简历——说实话——完全没有价值。相反,我们把所有的重点都放在了 几个关键问题上,我们会问所有的应聘者,每个问题的主旨都是要揭示一个关键信息:这是我们真的想要的人吗?

你知道,经验是廉价的。只要有时间,你就能有经验。技术本领难求,但事实上只要你努力就能得到——很多人都能做到。但是态度就不一样了。你要么有,要么没有。我们要找的是对编程有热情的人,他们离不开编程。他们大多是大学之前——有些是中学之前——就开始编程了,而且一开始就停不下来。他们开发各种程序,从汇编到jQuery,从个人电脑到移动手机,从复杂的底层计算图形到高端的社交网络。他们各个领域无所不至。

无所不至,但是,不包括 .NET。

让我来解释一下——.NET是一个很不错的语言。它很新潮,很独特,各种花哨的东西应有尽有。如果你要是开发Windows Mobile 7 应用(统计数据显示你应该不是),它应该是你的不二选择。选择 .NET 也是一种选择,如果有谁要做这样的选择,我不会阻止,但要问一声“为什么?”

不要误解我的意思:.NET 在你的简历上并不意味着一个大红叉。但在电话筛选中的确会引起我的疑问,其中的理由让我们用个开心的比喻来解释:

用 .NET 进行编程就像是在麦当劳做烹饪。那里有全套神奇的设备能够自动的造出所有的东西。只有你按一下正确的按钮,跟着提示灯的指示,你就可以批量的制造出完美无缺的1.6盎司的汉堡,比地球上的任何其他人都要快。

然而,如果你想做出一个1.7盎司的汉堡,很抱歉,你做不到。很简单,没有这样的按钮。馅饼是预先做成了那样的尺寸。它们做出来之后就被冷冻,所有你无法把它们揉到一起做成其它尺寸,解冻机和烹饪机是一体的,你没有办法在它们之间进行拦截。麦当劳的厨房产出的食品精确的和麦当劳的菜单保持一致的——这种模式使你的大脑不需要任何的思考。可是,它不能偏离菜单,对烹饪机器的任何你妄想的压挤变形都会导致它停止工作,而被送回返厂维修。

然而,我们要找的是另外一种人。一种能够用削尖的树棍在野外篝火上烧烤松鼠的人——那是在深山老林里为了生存而捕捉并剥了皮的松鼠。我们不需要快餐店厨师长,我们要的是由野狼带入文明社会的《蝇王(Lord of the Flies)》,在堆满铜钱底壶和精选香料的法国厨房里喂养大的人。我们要的人不仅仅能做汉堡,他要能够从无到有做出任何东西。

你也看见了,微软是特意这么做的(而且非常成功)。.NET要跟其它所有东西都表现出尽可能的不同,让程序员们远离细节,这样就导致他们完全彻底的依赖微软神奇的编程工具套件,让这些工具替他们思考。微软早在舞台上只有他一个演员时就这样做,明确的使这些东西要么很难移植到非Windows平台,要么看起来很难实现,以此来保持他的垄断地位。

这种做法——或者这种对立的思维——导致了无数的分歧。小的方面,比如在文件路径中使用反斜杠,而不是像其它经典系统中使用正斜杠,或在DirectX中使用左旋坐标系统,而不是使用自从计算机诞生以来就采用的右旋坐标系统。大的方面,比如通过无数的分层把网络架构搞的晦涩难解,使人们很难想象出字节在网络中如何传输的。还有成百上千这样的事情:他们的开发工具在你没有写任何代码前就先生成了一大堆复杂的文件,笨重的服务器上本来对于任何人只需要敲几下键盘的操作却非要启动一个远程的GUI终端,那是一个对开源许可协议过敏的编程文化。这样的事情举不胜举。

这些并不会让你成为一个“差程序员”。如果你只想尽快的做出一个1.6盎司的汉堡,把余生奉献到无尽的系列菜单上,那所有的这些特立独行对你来说不会有任何影响。但是,每天你在那种厨房里的日子并不是真正的厨房生活,学不到如何做真正的食物,写不出真正的代码。

更糟糕的是,在微软厨房里学一天的东西需要两天去忘记,我是说,一旦你心安理得的走上了.NET的事业道路,你很难再走回头路。因为你被深深的桎梏到了这些工具和技术里,而这些工具和技术跟 .NET 之外的东西毫不相干,这样一来,对于一个创业公司来说,你实际上没有什么价值,你的这些年就如南柯一梦。

那么,这篇文章是要告诉你什么?两个事情:

如果你想着在一家创业公司工作,别用.NET。它会让你不受欢迎。
如果你创办了一个公司,想招聘真正的人才,留心那些简历上有 .NET 的人,问他们为什么要写上它。

这些听起来很刺耳,但却是事实。有时候我们只有松鼠可以吃,我们需要能把它做出好的味道。

***************
完毕。

接下来我发表我的小小看法。
记得我大学的时候第一次坐网页
同学YV介绍我用Dreamweaver。
用来用去,我就是学不会基本功
因为有了这工具,我基本上click click click
拖拖拉拉,就可以生出一个标准的网页。
我不喜欢,本能地讨厌这类工具。
我觉得我没有灵魂。
所以,我重新来过,学HTML。
用的是notepad,从hello world开始。
大学论文,导师要我用.net,ok.
我发现到这东西又一样,很多的按钮
很多的Wizards, next next next.
我很不喜欢。
大学毕业出来工作,我毅然选择了拥抱Java.
我承认,Java真是一门很慢,需要深入思考的语言
论开发速度,绝对不及.net来得快。
但是初学者,菜鸟一旦接触了.net的强大工具强大套件
然后就一直原地踏步的话,他永远只会停留在click click click
next next next..
.net对普通程序员来说是个大陷阱,很深,一旦你进去了,回不了头。
一旦回不了头,你就只有一条路,一直用.net,直到你变成高级程序员
直到你彻底了解整个框架,知道如何变通,如何拐弯~
初学者很容易迷路,上面的文章说的是烹饪,我换个视角,摄影。
DSLR很红吧?菜鸟编程员就好像阿明买了Canon 5D Mark 2一样
明明是不知道什么是光圈,什么是快门,什么是景深,什么是iso,
就是因为有了个王牌相机,然后只会说,一直在买镜头,因为要那个效果就要有那个镜头。
一旦拿走了那架王牌机,他什么照片也拍不出来。
对了,就跟.net一样,一再得说需要新插件新封装新DLL。
一旦没有了Visual Studio,他妈的什么都写不出来。

不过,我有时很羡慕.net程序员,他们开发程序的速度很快
工作快快做完。。。快快回家咯。。。
有时候我在想,.net程序员很幸福嘛
java佬样样自己来,还酸笑.net?
难道他们有车不坐,为什么要选择走路呢?

当然,菜鸟也有成为高手的一天。

You may also like

2 Comments

  1. 凡事都是由构图学起接着学METERING
    我也不喜欢NET。是因为了解不到背后
    的操作性很没安全感。所以开始学C但
    也是半途而废。毕业后就进饮食业从此
    没了回头路。。呵呵

Leave a Reply

Your email address will not be published. Required fields are marked *

This blog is kept spam free by WP-SpamFree.