我们要什么样的.NET程序员

外刊IT评论今天抽风,发了很久以前的一篇博文的译文出来:《为什么我们不要.NET程序员》。本文一发,各种口水接踵而至。这篇文章实际上是《CEO Friday: Why we don’t hire .NET programmers》的译文,原文作者在发文后的两天的时间里不断的根据读者反馈对文章进行了更新和补充。但是遗憾的是外刊IT评论却未能翻译完整(不,不,你们不要指望我会翻译剩下的部分,我对此毫无兴趣。),这使得这篇很有闪光点的文章立刻变成了“孰优孰劣”的口水文章了。

看看中文翻译后的评论吧:

有一种人,自己写不出东西,就怪能写出东西的人使用的工具太先进

弱智文章

SB文章,还以为有什么高深的见解,完全是个自以为是的家伙。至多不过是了解了.net之外某一些东西,对自己完全不了解的东西大放厥词还放出优越感来了。

俺作为一名.NET程序员,鉴定结果为,“此文纯属标题党”,一笑而过~~~

我对留下这些评论的程序员感到悲哀……

我们的团队也有着大量的.NET工程师,我每天与他们共处。他们中间有聪明的、优秀的、稳重的工程师;也有躁动的、浮夸的、随意的编码人员。他们能够产生符合设计规范和要求的代码和系统;也会在不经意之间向系统引入致命 bug 而导致生产环境的崩溃。他们其实与依赖其他技术架构的程序员并无多大的不同。

早上,我看到那篇中文翻译的时候,在公司的讨论组里向大家分享了译文和原文。特别提示了,重点看看原文后面的评论。发出去后,我本以为会有人回应支持或者反对。但是没有任何一个人对那些内容进行赞扬或者批评。后来,一个比较了解我的同事私下跟我说“估计一大部分人心里不是滋味”,“一下看到标题,还有你的身份”。好吧,可能许多人心里十分不悦,但是碍于我的“身份”不便表露?我毫不介意的跟大家分享一下,我在国家正式的定义中的身份是“群众”。

我不知道会有多少团队的成员看到本文,我也无从知道他们真实的想法。不过,我可以谈谈什么样的.NET程序员是我们需要.的。

当然为了避免在我的博客上有人指责我由于“根本不了解.NET技术,也不懂windows平台,没有资格来说三道四”。我简要介绍一下我对windows平台和.NET的了解情况。

跟大部分人一样,我对计算机和IT的认识是从windows开始的。win32.hlp 这个帮助文件我想大部分年轻的.NET程序员从来没看过,甚至从来没听过。COM/COM+对于.NET平台就像战国时代的二轮马车一样遥远。PE文件结构就是放在博物馆里的竹简一般,除了历史学家会感兴趣之外毫无用处……我能举的例子还有很多,而这些在我被开源和 Linux 这个魔鬼抓去之前,是每日在学习和探索的东西。哦,忘记说了,.NET 我也不算是毫无认知。至少,在有史可查的范围内,我开源了国内第一个用C#编写的针对性SQL Injection自动化注入工具,如果没记错,那是01还是02年左右的时间。好吧,现在我是否有资格来跟大家探讨这个事情了呢?

事情还是从如何做出一个1.7盎司的汉堡说起……

作为一个.NET程序员,或者特指正在进行互联网开发的.NET程序员,你是否知道我们面对的不仅仅是1.6盎司、1.7盎司的汉堡这么简单的事情?你是否知道互联网这场盛宴不仅仅是做一两个汉堡这么简单?思考的方式有许多种,你是否陷入了做汉堡需要在哪里获得合适的面包、肉饼、洗好的蔬菜、酱料的迷题中,而忘记了手边就有面粉、烤炉,冰箱里有冷藏的鲜肉(你看,已经无需自己杀猪宰牛了),放在窗台的蔬菜上面的泥土和青虫说明菜叶相当的新鲜。

换句话说:你们是否陷入过疯狂的在.NET库中寻找一个合适的类,而忘记去看看开源社区或者第三方是否有提供更好的服务?是否执意要在微软提供的架构体系下实现一些特别的需求,其实那些需求只要一些跳出框架的小小的技巧?是否在看到业内的某些关于技术创新的一句话新闻时,就在心中暗想“这有什么先进的,.NET早有了”,而没有深入的研究为什么这一创新能够成为业内的新闻?

当然,如果对于这些你都有自己可以解释的答案,那么你或许是我们所需要的那种.NET程序员!

如果:你不但能够使用服务器端控件,还能说出其封装的底层原理;不但能够在IIS里建立应用,还能弄明白从客户在浏览器输入你的应用的地址,到他得到满意的结果,这中间每个环节隐含的细节;不但会用WCF来实现功能,也清晰的理解其中的缘由,尤其的,清晰的了解SOA应用于互联网的利弊;不但会在MSDN中查询疑难问题,也会在Google中参考出现在Mono中的类似的解决办法。

那么你应该是我们所需要的那种.NET程序员!

当然,更为优秀的,是那些能够在.NET框架下开发,却从不自称为.NET程序员的家伙们。他们不会将自己限定在某种技术、某种平台;他们热爱技术,热爱生活;他们有着像猫一样的好奇心,即便是这好奇心可能杀死他们也从不畏惧,他们同样有九条命;他们乐于钻研.NET技术,但是也会吸取其他平台的精华……

对于这样的人,我知道是可遇不可求的……

.NET、JAVA、PHP、Python……这些技术难道就没有一点贯通的地方?难道我们在自我介绍的时候不能换个说法:

我,是程序员,在现在这个阶段我对.NET的使用积累的经验更多一些。

是的,我正是这个意思,程序员可以有各种标签,但是别让标签左右了工程师的灵魂。做技术的主人还是奴隶,只是个人的选择而已。

这或许能够阐述我们要什么样的.NET程序员了吧?

我们需要的是熟悉.NET的程序员,我们真得不要“.NET程序员”。

Join the Conversation

6 Comments

  1. 不熟悉.net, 但是本科时成功忽悠了一个同学去搞c#, 我自个去搞lamp去了,结果我俩是各自班级里唯一的coder,信管系2个班其他的同学都没干这行.
    去年接了个单子做项目, 互联网项目, 准c/s, 客户端么用.net就他做,但是通讯协议什么的我来定。
    虽然没有用到.net内置的很多东西,但是我会去让他学sqlite, 让他学prototype, 让他学json, 学oauth
    互联网到现在这个时代,已经不是简单的一个语言能左右的,全面了解贯通,不仅提高自己的生产力,也要提高别人的生产力,否则永远都只是个贴着某个语言标签的码农。

  2. 程序猿这个职业淘汰率非常高,没有耐心、浮躁、不够细心学什么语言都是一样。

Leave a comment

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