IT民工-----一个令人看了不舒服的名词

  IT现在一流行的词语叫“IT民工”,有人风趣的成为“挨踢”。。。。。。但凡看过这个词语,或是身在其位的工程师而言都会有些不解,IT不是一个高智商,高科技的产业吗,为什么还要成为IT民工。我第一次听到这个词语是在twitter的一个follower的聊天中,无意间看到的。工资一万多,刚工作两年,已然很不错了,为何要称自己是IT民工?民工在大多数人眼里是做着辛苦的工作,但只有微薄收入的人,没有什么技术含量靠着力气吃饭。

  我想了很久,为什么要称为IT民工。终于有一天,当我想到CRUD时,我明白了。一个软件工程师的工作是什么?多数人在做的就是CRUD(更有意思的是某大学的计算机专业一位教java的老师竟然问什么是CRUD,因为他的学生的论文里写了CRUD ,后面又写了CURD)。作为一个软件工程师,CRUD那是基本的技能,但是也有大部分的工作在做CRUD,这部分工作不需要你有高智商,不需要你有高技能,只需要照搬照抄,套路是一样的,就像流水线作业,到了这里执行一下CRUD一切ok了。大多数的应用软件无非就在做这些。想起当年让我写PROC时,我心里有种排斥,为什么我不愿意写。不是说我懒也不是我自傲,但是心里有种说不出的排斥。现在我终于明白了,为什么我排斥,因为写PROC在重复着几乎相同的事情,不是说重复不好,因为有句话叫做熟能生巧。因为我写了一个游标我可以粘贴到所有的游标函数,更进一步,我写一个函数,只需将表明和查询条件作为两个参数,写成一个函数。调用这个函数一切就ok了。需要很高的智商吗?不需要。

  有个同事,在我刚到项目组的时候在抱怨为什么领导不安排他做项目经理,他待在公司已经多久,并且一直在跟这个项目,为什么让别人做项目经理。后来看了他的简历北大青鸟培训,自学考试大专学历。聊过之后发现一个java工程师不会用java框架,JavaScript框架从来没用,时间是2010年。spring、hibernate、structs从来就没用过,会的还是在北大青鸟培训时的jdbc。虽然没有直说,但我心里在说,如果让你做项目经理,这个项目估计连竞标也完不成。

  作为一个真正的软件工程师,需要的不仅仅是重复。引用金旭亮的一个图:

一个操作CRUD的工程师,需要掌握的知识也是相当多的。不是说我学过,我知道,我了解,是我掌握。计算机的鼻祖是数学,所以一个计算机高手一般是一个数学高手,因为数学代表了计算机的算法,没有算法就没有软件。作为一个应用软件,首先是需求,其次是架构。记得以前老是说过,软件设计完成后随便找个高中生照着把这段代码敲上去就行了。

  所以总结了一下:

  作为一个软件工程师,必须掌握的技能,传统的数据结构,计算机原理,操作系统之类,数学是基础,英语,英语必须强调一下。然后在某个领域有一定深度。数据挖掘,数据恢复,人工智能或是搜索等等。印象最深的是一个运行了多年的网上银行系统,有一个应用完成需要3个小时,当多数的开发人员正在抱怨这个时间太长但束手无策的时候,请来了一个专门做系统优化的工程师。一个下午的工作之后,系统没有这家任何额外负担,原本3小时的工作半小时就能完成。没有人不佩服。这就是软件工程师,真正的软件工程师。

posted @ 2011-01-01 16:34  jerryking  阅读(1654)  评论(0编辑  收藏  举报