2007年11月9日

你是一个优秀的人才吗?

作者 非鱼

我的上一篇日志《程序员的未来》在不同的读者群里得到的完全不同的结果,在Sohu博客上,许多人表示了赞同的意见,而在CSDN转载的新闻稿下面,则是一片骂声。

这样的文章被骂是很正常的,在我的意料之中。程序员都不愿意承认自己没前途,像我这样说“你以后会怎样怎样”的,当然会引起别人的反感。表示赞同的,基本上可以确定,不是程序员,或者是刚刚入行的,对未来充满着信心的期待的,而骂我的,基本上都是临近30的还没有看到前途的。(这句话可能又要被骂了。)

许多人对我的文章的评价是,我站着说话不腰疼。是的,我对招聘员工的期待太高了:我希望他们聪明,不需要我来帮他写太多的代码,也不需要我来给他们留下的Bug打补丁;我希望他们对工作有激情,或者至少有热情,希望他们喜欢自己的工作,永远保持学习新事物的积极乐观的态度;我希望他们具备良好的职业素养,面试的时候不要随便迟到,迟到了也应该说声抱歉,我是需要专门把别的工作安排一下以便把这段时间空闲出来的。

对于我提到的设计模式,敏捷开发,测试驱动开发等等,许多人表示,在小公司里这些都是没有用到的。是的,我知道,我们也没有用到敏捷开发和测试驱动开发,不是因为我不想用,而是因为采取一个大家还不习惯的开发方式,会降低开发效率,而我们每个阶段性项目的周期都很短,没有时间给大家适应新的习惯和规定。但是设计模式是一定会用到的。当我让我们的一个程序员设计一个文章采集工具的时候,前前后后给他讲了三次以上的架构设计,他才最终改成了理想的样子。因为一开始,我不想讲的太细致,这样会让他没有成就感,但是他设计出来的系统真的很难扩展,对于这样一个需要对每个网站分析代码写抓取规则的系统来说,难于扩展就代表难于开发。如果他学过设计模式,有良好的系统解耦的思维习惯,那我第一次说出我所设想的架构的时候,他就应该已经完全明白了。

是的,我总是以自己的标准要求别人,但是,我只是要求你喜欢你所做的工作,愿意把它做的更好,在时间和精力允许的范围之内,精益求精,仅此而已。为公司着想是员工的基本素质要求,而写出更好的代码,受益最大的不是公司,是你自己。我没有要求把下班以后的业余时间也都用到编程上,毕竟不是每个人都能把这种事情当作兴趣爱好的,但是我上班时间给你留的空闲时间,希望你不要只是用来看看新浪的社会新闻,哪怕只是把CSDN首页上提到的你没有见过的新名词都了解一下也好啊。

新的语言当然不是一定要学的,但是学了会有坏处吗?不了解Ruby on Rails,你就不知道原来框架还可以如此优雅而严谨,你也不会知道,原来MVC可以完成的如此简洁高效。习惯了给Java写propertity文件的程序员,还有习惯了给Asp.net的web.config里写一大堆变量和目录定义的程序员,你们是不会想到把目录名字和结构定死,也能做出这样优秀的系统的。

作为员工,最基本的素质是什么?在我的理解,是敬业!即使你不喜欢你的工作,即使你完成它只是为了迫不得已,即使你只是为了在找到下一个喜欢的工作之前先过渡一下,你也应该尊重你的工作,尊重你的公司,这是对员工最起码的职业要求和道德要求,因为,你还在拿着公司的薪水。也许,你觉得你的薪水太少了,所以你就有理由只完成一半的工作吗?如果你是老板,你会用这样的手下吗?

甚至在我的博客上有人把我理解成是“那种很聪明,很勤奋,很有机遇并且很幸运的人,要雨得雨,要风得风”的人,但是很可惜,我不是,我只是觉得,既然工作,就应该认真对待它,否则,就不要拿这份薪水。五年前刚毕业的时候,进入某啤酒公司华东销售部,一个星期之后被从市场部转到业务部,在2002年上海最热的那一个星期,我坐在一个没有空调的小面包车上,跟另一个业务员一起在徐家汇的大街上推销他们新出的一种小桶装扎啤,每一家饭店去敲门,问他们的大堂经理要不要试试销售这种啤酒。从饭店里出来回到那个被晒的火热的面包车里的时候,我连汗都懒的擦。咬牙坚持了十天,公司把我转入了财务部,过了一段舒服的日子。在我的第三家公司,跟着一个自己创业的小老板做IT外包业务,老板人不错,大家都是以朋友的身份相处,所以我也不会在钱方面计较太多,有时候,我要在几个地区之间跑来跑去帮新客户解决电脑问题,其中很多还是义务的,只是为了尽量争取几个长期客户,有时候,甚至做一些搬运工和快递员的活。

后来,来到了现在的东家这里,做一个全新的项目。项目本来是外包给外面的一个开发团队来做的,我只是作为公司的项目负责人,并且负责项目完成之后的维护问题,但是开发团队在拿到钱之前却很排斥我,给了我一个完全独立的模块去做,他们的项目连代码都不给我看到。这对我来说是其实是个好消息,因为出了任何问题都可以推到他们身上。最后两个月的期限过去,他们的项目才做了一半,离完成还遥遥无期。而我在前面这两个月时间里的技术积累和对整个项目的透彻思考,最终让公司决定中断跟他们的合作,由我全权负责。两个月后,由我独立完成的项目上线了。由此,我就成了项目的主要负责人。随着公司的发展壮大,技术总监这个词不再是一个空名,最终变成了一个真正的团队领导者。

我所能做的,和所需要做的,只有一点:认真对待你的工作。认真不是指你每天准时上班,准时下班,上班时间双眼睁的很大,盯着屏幕,心里却完全不拿它当成一回事。认真是指,既然你一定要做这份工作,就多想一点,多做一点,把它做到比你的现有的水平更好一点,这,就足够了!