为什么我们不要.NET程序员

也许你已经知道了,我们正在招聘最优秀的程序员。不错,每个人都这样说。但是我们的程序员能打败你们的——任何时候。比如,米奇虽然只有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 的人,问他们为什么要写上它。

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

时间: 2024-09-19 08:52:25

为什么我们不要.NET程序员的相关文章

很认真的聊一聊程序员的自我修养

今天谈一谈,程序员提高自我修养是为了什么?     程序写的好有人崇拜,有妹子喜欢?还是到博客.论坛.社区发表文章进行分享获得成就?我想这是少数人的追求,也是更高的追求,在这之前 我认为,在中国,程序员提高自我修养的目的,是为了 1.更好的融入工作,减少困难,增加成就 2.稳步的提升能力,提高收入,达成财务自由 2.站在更高的层面看待自己的学习和工作,树立更加适合的人生观价值观,家庭幸福,生活愉快 说的更通俗一点,就是用更加合理的方式和方法,赚取到更多的收入   说了这么多废话,进入正题 何为程

为什么程序员总被认为是屌丝群体?

本文纯属闲时娱乐,请勿当真,请勿较真. 1. 程序员都很穷吗? 其实,以我的经验来看,相同学历的毕业生的工资里面,程序员的工资绝对前三.但是可惜的是,程序员的主要发展地集中在京沪杭和广州一带,这一带本来就是有钱人的集中地,而且高房价高消费,让程序员那不算低的工资显得微不足道,只能望楼兴叹. 举个例子,比如你在北京开10w的车,那绝对是底层人民啊.你要是在一个二线城市开10w的车,那已经可以说混的不错了.如果是在小县城开10w的车,那你就算是有钱人啊. 解决方案:一线城市打拼,二线城市发展.当然,

JAVA程序员面试32问 选择自 liujun999999 的 Blog (本人做收藏)

程序|程序员 第一,谈谈final, finally, finalize的区别. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统). 第四,&和&&的区别. 第五,HashMap和Hashtable的区别. 第六,Collection 和 Collec

程序员,是时候让大家听听你的声音了!(文末有福利!!!)

程序员拥有魔术师般的神奇,指尖代码就能改变世界,而同样,他们的世界也并非波澜不惊. 据不完全统计,全球有数千万程序员,竞争的激烈程度可见一斑,坊间甚至有传出这么一条鄙视链:写汇编的鄙视写C的,C程序员的鄙视C++,C++鄙视Java和C#,Java和C#相互鄙视,Python和Ruby相互鄙视,Scala.JRuby.Clojure一起鄙视Java- 同是天涯沦落人,相煎何太急! 不仅如此,每位程序员成长的背后都一段血泪史: 五花八门的编程语言,哪个最热门? 什么行业.什么岗位的薪资更高? 各个

专访 | 今日头条李磊:程序员如何跻身AI大潮,应用如何落地

李磊博士是今日头条人工智能实验室(Toutiao AI Lab)总监,原百度美国深度学习实验室"少帅科学家",师从数据挖掘领域权威Christos Faloutsos教授,主要研究领域为深度学习.概率模型与推理.自然语言理解,以及时间序列分析.在国际顶级学术会议发表学术论文30余篇,拥有三项美国发明专利. 今日头条科学家.人工智能实验室总监 李磊 近日,这位研究出身,如今又投身工业界的博士接受了CSDN的专访,采访中李磊分享了他对当下人工智能过热的一些看法,并结合自身的求学与从业经历,

JSP程序员成长之路

一个普普通通的不正确是把 JSP当作简化的Java,它不可能,(实际上, JSP是简化的Servlet)程序员一般试着没有学习需要的支持技巧而直接学习JSP.JSP是一个衔接技术,并且成功地连接您就得理解的还有的技术.可能您可以知道Java,HTML和java script,这代表着JSP用确实是简单的. 就得成为一个成功的JSP程序员可以参考这种时间表.请注意以下几条: ◆忽略您可以熟悉的步骤. ◆训练的时间只是代表学习好足够的基础时间,这种才能转移到下一步. 1.建立并且理解您的Web Se

中国程序员的男女比例是多少?

CodeForge网站最新发布了2014年第四季度<中国程序员调查报告>.报告里对程序员的年龄分布,地区分布,性别比例,使用浏览器种类,使用的编程语言等进行了调查.统计和分析.对从业人员及其他相关人员有很好的参考作用. 本调查报告所使用的数据,均来自codeforge.cn网站,集中了对全国100万程序员互联网行为的调查,分析以及投票统计.它清楚的显示出在程序员这个特殊的群体中,男性比例高达80%,女性仅占20%,他们具有明显的极客精神,喜欢使用Chrome浏览器(52.06%),Androi

7点温暖的建议给到成长中的程序员

1. 解决你自己的问题 从外面获取答案和自己解决问题.找到答案,这两种方式是有区别的.当你自己解决一个问题时,你不仅解决了这一个问题,也意味着解决了跟它类似的数百万问题.这是一个先投资后收获的过程.有时,你可能需要花2到3天的时间解决一个问题,这没什么:这是你的前期投资. 2. 从做小程序开始 小程序,是指100行左右的.目前为止,<Java程序设计教程实验手册(Deitel and Deitel)>这本书是最好的编程书之一.从第一章到第十章,里面的所有习题都做一遍.当你做完了这些,你就对编程

想成为优秀的程序员这些码德不能缺

我把这些看成是作为一个程序员的基本素质,多数是编码之外的事情: ●代码每天备份:(预防意外导致的任何损失) ●上传代码时写清楚log信息:(为维护这个模块的人着想,有可能是你自己) ●提供接口时不要把问题抛给使用接口的人,升级或者变更接口时不要删掉原来的接口:(为使用你接口的同事着想) ●变量命名要见名知意:(起码不能误导别人) ●在工程中新建一个doc文件夹将项目相关的文档放在该目录下,方便后面维护的人员理解项目和代码:(为维护这个模块的人着想,有可能是你自己) ●签署bug或者转办bug时写

黑马程序员 一、java 概述与基础知识

获取更多资源关注Java帮帮IT资源分享网 一.黑马程序员-java 概述与基础知识 1.何为编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果 的过程. 为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路.方法.和手段通 过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完 成某种特定的任务.这种人和计算机之间交流的过程就是编程.   2.Java 语言概述,历史.特点 是 SUN(Stanford Universit