现在的位置: 首页 > 综合 > 正文

软件学习的境界 – 看袁峰对金旭亮回复有感

2012年06月18日 ⁄ 综合 ⁄ 共 1309字 ⁄ 字号 评论关闭

      

Title

     这个文章是2006年11月02日写的,原来放在CSDN的博客.现转到博客园.

     文章的起因是当时金旭亮与袁峰在CSDN里面(还是博客?)由于对软件开发/教学等方面的认同差异而产生了激烈的争论,我忍不住也写了点小东西.今天偶然翻出来,觉得还有点意思,正好给大家看看,同时批评一二.

     

      人类社会是一个群体,在这个群体中,往往也遵守"二八定律",也就是说,100个人里面,20%或更少的人是最优秀的,80%或更多的人是很一般的.因为这是社会的需要,设想一下,商业经济是来钱比较快的,但如果社会上所有人都去经商,那过不了几天所有人都饿死了--因为,没有人去生产粮食.
      在每一个行业里面,同样存在这样的情况.比如,大家所看到的影视明星,万千风采集一身,风光无限,但总共能有几个明星?恐怕一百个影视从业者也出不了一个吧.

      在软件开发行业来说,还是同样的情况.

      作为袁峰来说,学习软件,那就要学好,不说业界数一数二,起码也要达到数得上号的境界,正如俗说:不想成为将军的士兵不是好士兵.但问题是,不可能每个士兵都成为将军.因为每个人的资质有区别,努力程度有区别,成不了将军,成为一个营长/团长也可以啊,因为起码有一个工作可以养家糊口,虽然水平不算非常高,但起码也能够带兵打仗,不至于会"将熊熊一窝".

      而更致命的问题是,学软件就一定要达到袁峰所理想的那种境界吗?

      软件本身,是社会需要的产物.为什么需要?那是因为我们要使用软件来实现某种功能,达到某种目的,这就是根本的目的.能够达到这个目的的,就可以说是好软件,并非一定需要多么大的系统,多么高超的编程水平.

      试想,我们仅仅是需要一个保育员来做做饭,给小孩子擦擦鼻涕,至于需要使用到一个博士生来做这事吗?你可以说,这没有必要,不做了.但保育员做饭和给小孩子擦鼻涕还确实是非常重要的事,你能保证有保育员的耐心和细心吗?

      作为一个普通的程序员,只要他能够按照企业的需要,写出符合需求的功能,相对稳定的系统,良好的用户界面,这就够了,不能说他水平有多高是不是世界级的人物,但起码他通过自己的努力为社会做了贡献,同时自己也获得了相应的报酬----这样的要求,需要会么样的人物和水平呢?

      也许,仍然有许多地方需要更加高超的技巧,比如说开发一个操作系统,比如写一个图形引擎,甚至搞一个语音识别什么的,确实需要深厚了基础---但,实在的说,一万个程序员里面,究竟有几个人在他的一生中会去碰到这些东西?

      比如,我只需要一个电话号码查询,而且作为企业也真的是非常急需这种东西,我们需要请类似于比尔或C#之父级别水平的人来开发吗?如果真的请来了,我敢保证,他们写的东西或许架构非常精妙/扩展性/容错性/性能等等都无可挑剔,但是我觉得他们写出来的东西会不会有人用?因为,我仅仅是需要一个能够简单操作的快速查询的电话号码查询而已.

      所以说,存在就是道理,各得其所,物尽其用是自然界普遍的真理.追求上进是人的天性,但人有高低,物有优劣,仅使用自己的标准来套用他人,肯定会出问题.

 

抱歉!评论已关闭.