为什么我们不要.NET程序员(读后有点想法,所以转来了) 注:本文来自CSDN
也许你已经知道了,我们正在招聘最优秀的程序员。不错,每个人都这样说。但是我们的程序员能打败你们的——任何时候。比如,米奇虽然只有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的人,问他们为什么要写上它。
这些听起来很刺耳,但却是事实。有时候我们只有松鼠可以吃,我们需要能把它做出好的味道。
为什么我们不要.NET程序员(读后有点想法,所以转来了) 注:本文来自CSDN的更多相关文章
- PHP程序员衰老后的下场
长期从事编程活动的程序员都期望在50多岁时能爬到一个足够高的职位,或者能顺利的退休. 但我在这里讨论的可能是一个你还没有想过的问题:如果到那时你失业了呢? 50多岁时你的职业仕途会成为一个问题.如果你 ...
- JAVA程序员必看的15本书-JAVA自学书籍推荐
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...
- DOS程序员手册(七)
第11章 中断处理程序 本章将深入到DOS系统内部探讨中断处理程序的内容.与其他计算机编程不一样, 中断处理程序这个名词听起来就很难懂.用最简单的话来说,中断处理程序就是对应于中 断激活的程 ...
- 写给嵌入式程序员的循环冗余校验(CRC)算法入门引导
写给嵌入式程序员的循环冗余校验(CRC)算法入门引导 http://blog.csdn.net/liyuanbhu/article/details/7882789 前言 CRC校验(循环冗余校验)是数 ...
- .Net程序员学习Linux最简单的方法
有很多关于Linux的书籍,博客.大多数都会比较“粗暴“的将一大堆的命令塞给读者,从而使很多.NET程序员望而却步.未入其门就路过了. 所以我设想用一种更为平滑的学习方式, 就是在学习命令时,先用纯语 ...
- 程序员的自我修养(2)——计算机网络(转) good
相关文章:程序员的自我修养——操作系统篇 几乎所有的计算机程序,都会牵涉到网络通信.因此,了解计算机基础网络知识,对每一个程序员来说都是异常重要的. 本文在介绍一些基础网络知识的同时,给出了一些高质量 ...
- Coding girl一个老程序员谈到的一个女程序员的故事
因为有人说我给一个女程序员的建议不靠谱,我不服,因为我的工作经历中的一些女程序员都很不错,比那些男程序员都强,所以,我在新浪微博和twitter上征集女程序员的故事和想法,这两天来,我收到了好几封邮件 ...
- 转:.Net程序员学习Linux最简单的方法
有很多关于Linux的书籍,博客.大多数都会比较“粗暴“的将一大堆的命令塞给读者,从而使很多.NET程序员望而却步.未入其门就路过了. 所以我设想用一种更为平滑的学习方式, 就是在学习命令时,先用纯语 ...
- 程序员需要有多懒 ?- cocos2d-x 数学函数、常用宏粗整理 - by Glede
最近我们的cocos2d-x游戏项目已经进入了正式开发的阶段了,几个dev都辛苦码代码.cocos2d-x还是一套比较方便的api的,什么action啊.director啊.ccpoint啊都蛮便捷的 ...
随机推荐
- 【NOIP&NOI】飞扬的小鸟 Flappy Bird
描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或者掉在地上的话,便宣告 ...
- 【BZOJ3534】重建(矩阵树定理)
[BZOJ3534]重建(矩阵树定理) 题面 BZOJ 洛谷 题解 这.... 矩阵树定理神仙用法???? #include<iostream> #include<cmath> ...
- Java考试题之九
QUESTION 177 Given: 1. class TestException extends Exception { } 2. class A { 3. public ...
- SSH框架测试
1.struts的测试:目的是能否正确显示页面. 流程如图: 2.spring测试:目的是能否得到bean 3.Hibernate测试:目的是能否跟数据库操作,测试事务 事务测试: 这个要向数据库中保 ...
- 【转】基于R语言构建的电影评分预测模型
一,前提准备 1.R语言包:ggplot2包(绘图),recommenderlab包,reshape包(数据处理) 2.获取数据:大家可以在明尼苏达州大学的社会化计算研 ...
- Tomcat性能调优及JVM内存工作原理
Java性能优化方向:代码运算性能.内存回收.应用配置. 注:影响Java程序主要原因是垃圾回收,下面会重点介绍这方面 代码层优化:避免过多循环嵌套.调用和复杂逻辑.Tomcat调优主要内容如下:1. ...
- python【文件操作:修改文件】
- Python之paramiko模块和SQL连接API
堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: i ...
- python中的常用模块(2)
在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件), 经常要对大量文件和大量路径进行操作,这就依赖于os模块. 1.当前路径及路径 ...
- UIKit类图