虚拟光驱的开发者斟酌了很久

在给这篇文章起标题的时候,虚拟光驱的开发者斟酌了很久,因为虚拟光驱的开发者个人是反对使用“.NET程序员”、“C++程序员”或“PHP程序员”这类简单粗暴的方式为程序员做划分的。但是客观确实存在一个现象,就是很多程序员会为自己设置一个无形的界限,将自己与某种语言或平台硬绑定到一起,例如虚拟光驱的开发者这里所指的“.NET程序员”。请注意这与“术业有专攻”是不同概念的,有自己专攻的平台或领域这很正常,但是有很多人偏执地将自己与某个语言或平台紧紧捆绑,而忘记了自己首先是一名程序员,然后才使用某种语言,他们偏执于平台并陶醉于自己建立的盒子里,而不愿主动去接触一些盒子外的事物,最终使得自己无法进步。

此文章的主旨是希望过于专注.NET程序员在做好工作、写好.NET程序的同时,能分拨出一点时间接触一下.NET之外的东西(例如10%-20%的时间),而不是鼓动大家什么都去学最后什么都学不精,更不是说.NET不行或劝大家放弃.NET。恕虚拟光驱的开发者愚钝,此主旨在文中表达不够清楚,看评论中很多朋友误解了,特此说明。虚拟光驱:http://www.freeeim.com/Daemon/

另外,本文中的观点并不全部是虚拟光驱的开发者个人的想法,相当一部分来自虚拟光驱的开发者以前聊过天的某些大牛,他们很多来自微软、百度、腾讯等知名企业,并且很多已经成为技术骨干,虚拟光驱的开发者曾经从他们那里受益匪浅,于是虚拟光驱的开发者把他们的指教结合自身的经验和理解写成此文。这就是此文的来源。

------------------------------------------------------------华丽的分割线------------------------------------------------------------

从虚拟光驱的开发者个人的观点看,本文中“.NET程序员”是指具有如下特点的程序员群体:

学习、工作的技术范围均局限于.NET平台及衍生,对.NET之外的技术没有主动接触或学习的欲望。
不断学习各种.NET平台上的库或框架,如ADO.NET,ASP.NET MVC,WPF,Silverlight,WCF,WP,EF,NHibernate……
工作无法脱离Visual Studio,习惯于图形化的工作环境。
时常抱怨微软的技术更新太快,微软开发平台包办太多以至于自己身价贬值。
对面向对象、设计模式、软件架构等东西具有极大的热情,宁可花大量时间编造各种“设计模式小故事”也不愿花点时间了解一点新鲜的东西(如Unix下的IPC)。
对Java颇有微词,觉得C虚拟光驱的开发者根本用不到,至于PHP?它能做到的.NET都能做到,认为用Linux的大多在装逼,而Lisp、Lua、Eiffel神马的都是浮云,虚拟光驱的开发者管它们干什么。
认为面向对象语言就是程序设计语言的代名词,命令式编程深入骨髓,不太了解函数式语言或契约式语言是什么。
用.NET很多年了,但感觉自己没什么突破,没什么进步,成天就搞些增删改查的劳什子。
经常讨论或思考.NET或Java或C或其它语言哪个好,搞哪个更挣钱这种问题。
如果您有超过3项符合上述特征,虚拟光驱的开发者想虚拟光驱的开发者们可以聊一聊,因为据虚拟光驱的开发者的观察,感觉博客园上这类朋友还是挺多的。

希望虚拟光驱的开发者能做到旁观者清
有一个事实虚拟光驱的开发者想先和大家澄清一下,其实.NET只是虚拟光驱的开发者的业余爱好。由于博客园主要偏重于.NET平台,且园子里的朋友对面向对象、架构之类的颇感兴趣,所以虚拟光驱的开发者写了很多关于.NET及架构方面的文章(如果您注意观察,会发现虚拟光驱的开发者博客里这类文章正减少并趋于消失),其实相对于设计、架构这类东西,虚拟光驱的开发者个人更感兴趣的是具体的科学与技术,例如各种编程语言的原理、应用及实现扩展,操作系统原理,网络编程,通信协议,算法与数据结构,数据挖掘,机器学习,分布式等等;语言方面虚拟光驱的开发者比较喜欢的是PHP、Python、Lisp等;而编程方面虚拟光驱的开发者更推崇Unix下的编程哲学和编程方法;虚拟光驱的开发者爱vim胜过VS无数倍。

因此,.NET和C#虚拟光驱的开发者一直是作为业余爱好来发展的,希望这没有让任何人觉得沮丧。很多朋友加虚拟光驱的开发者QQ或MSN问虚拟光驱的开发者关于.NET的问题,虚拟光驱的开发者经常答不上来,很多人或许觉得虚拟光驱的开发者不近人情,但虚拟光驱的开发者其实是真的答不上来。例如虚拟光驱的开发者在博客中写过一系列关于ASP.NET MVC的文章,很多人是冲那系列文章加虚拟光驱的开发者的,但是其实ASP.NET MVC虚拟光驱的开发者只在beta版时摆弄过两个星期,然后就再也没有碰过,所以后来很多朋友问虚拟光驱的开发者想关问题虚拟光驱的开发者是真的答不上来。

所以,在博客园这个以.NET和架构之类为主的社区,虚拟光驱的开发者算是半个旁观者吧,虚拟光驱的开发者看到园子里很多朋友都把自己禁锢在自己创造的盒子里,所以虚拟光驱的开发者希望以旁观者的身份,给这些朋友提几个建议。

每半年接触并学习一门语言
有许多人通常觉得只要把一门语言学会学精就行,这个想法虚拟光驱的开发者觉得对了一半。一个程序员应该有一门精通的语言,但是还要不断学习新的语言(当然不能太频繁),倒不是为了以防哪天万一用到这门语言,而是接触学习不同的语言会拓展程序员的视野。

如果你一直用C#,试试Lisp,你会惊叹于还有这样写程序的方式,嗯?看来虚拟光驱的开发者得去学学Lamda演算;试试Python,你会惊讶于还有如此小巧优美的东西;试试Lua,你会发现原来语言还能嵌入其它语言,要不要为WOW写个外挂试试?试试Eiffel,你会发现还有契约式编程这种方法,嗯?什么?Java上有iContract,那虚拟光驱的开发者要不要为.NET实现一个?随着这种学习过程,你的思维自然就被拓展开了,而不是满脑子的Class、Object、MVC、OO……

其实学习语言不一定是学习没听说过的,许多您听到耳朵长茧却从来没有深入学习的“老朋友”,如C、PHP,如果您细心学下来,也会得到许多意外的收获。

例如在学C的过程中,你会发现不可能脱离Unix环境而把C学好,你会接触POSIX和System V,你会主动深入学习进程、线程、信号、I/O、IPC,你会接触TCP/IP协议。你会发现要学好C还要理解计算机组成原理,你还会发现原来还有大小端这个东西。

深入学习PHP,你会发现PHP远不仅仅是一个做Web的脚本语言那么简单,你会了解到它SAPI、PHP Compiler和Zend Engine的优美结构,你会发现有opcode,你会发现PHP浑身都是扩展点,你可以扩展功能,扩展Compiler和Zend Engine,甚至可以完全实现自己的编译和运行逻辑。你会了解APC是如何缓存opcode,APD是如何跟踪PHP的运行。

每次学习一门语言,你会发现这不是一门语言,而是一个崭新的新大陆,里面有太多让人兴奋和新奇的东西,而如果你执意禁锢在“.NET盒子”里,你就永远不会知道这些。

主动突破自己 接受更多挑战
如果什么东西都是用到才学,代码都是有用才写,那虚拟光驱的开发者只能非常抱歉的说你还不是个程序员,而只是个代码工人。程序员应该有主动出击的意识,应该对自己未接触的领域有无限向往。幸运的是,互联网上的财富实在太多了,你应该尽其所能去接触学习未知的东西,而不要总想虚拟光驱的开发者学习这个东西能不能换来钱给孩子买尿布和奶粉。你可以有很多借口,但是虚拟光驱的开发者想说,借口想找总是有的,时间想找也总是有的,还是看自己到底要什么。不要一边躺在盒子里一边又抱怨自己没有进步。

例如Google Publication,这里有世界最优秀的Google工程师们理论和实践的总结,来读读这些伟大的论文吧,看看这个伟大的公司和一群伟大的人都干了些什么,了解一下Map Reduce是怎么回事,如果了解了你自然想去试试Hadoop,还有Bigtable和GFS,哦!太震撼了,原来存储数据也有这么多讲究,不是放硬盘里或通过Insert插入数据库就行了。也许这些英文论文读起来很困难,但是虚拟光驱的开发者想一周一篇的要求并不高(虚拟光驱的开发者现在仍然保持着一周读两篇论文的习惯)。要知道,最新、最严谨的东西都在论文里,如果你只是通过书本或社区学习,那么你永远不会知道今天在计算机科学与技术的领域又发生了哪些令人震撼的事情,出现了哪些新奇的东西。

不要太懒惰,你写增删改查写累了吗?Come on!有没有想过自己写一个小型的httpd?当然你需要先去学习HTTP协议(rfc2612),试试能不能写一个PHP的SAPI扩展令你的httpd处理PHP脚本。有没有想过自己用lex和yacc实现一个自己的小语言,也不是完全没用,也许你已经对你的领域业务逻辑烂熟于胸,那么去实现一个自己的领域语言吧。啊!虚拟光驱的开发者要去学习编译原理、形式语言与自动机……咦,这东西还挺有意思的,去看看计算理论去……如果到了这里,你已经开始接触计算机的数学本质了,而你的层次将会得到升华。

学习就是这样,主动突破自己,给自己一些挑战性的任务,生活才有趣。成天困在.NET的盒子里,虚拟光驱的开发者们还有脸称自己为程序员吗?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值