今天遇到一件让我很不高兴的事情,所以想来博客发泄发泄,属于系列博客的篇外篇。
---------------------------------------------------------
价值观一:代码质量
说实话,程序员在大部分职业比起来,还是蛮简单(人际关系简单,生活简单),蛮赚钱的。而且是可以比较快速的获得成就感的行业(一个功能的完成,或者一个项目的上线)。所以,很多人通过不同的渠道,进入了这个行业。
由于人员参差不齐,行业内部矛盾就多了,就比如代码质量上,有些人,连基本的数据结构都不了解,连基本的面向对象特性都没有搞清楚,就开始在真实项目中code。可想而知,写出来的是什么东西。
在现在的不少软件公司,很流行的一个现象是:进来一个程序员,负责一个模块,先熟悉半个月,然后就开始走马上线的干了。好了,一个比较大型的项目,在没有说明文档,没有专人指导的情况下,半个月你可以很熟悉吗(经验丰富的程序员可以达到)?在开始的一段时间,写了一些代码,完成了一些功能,但是绝对不可避免的,引入大量的bug,如果这个程序员还在公司继续干,那么挺好的。在他真正的熟悉项目以后,他可以把自己以前引入的bug修正。但是很不巧的是,很多人在一个公司,呆的时间都不会长,一个人进来,3-5个月以后离职,在初级程序员中,是比较普遍的例子。OK,他走了,又来新人了。这样,一批又一批,只要三四批以后,这个项目的代码就已经是漏洞百出。我在这里只想说,辛苦后来者了,你们看着充满bug的程序,然后依照着这些你们认为的好代码,继续写出充满bug的项目……
还是一句话,程序员何苦为难程序员,为你后面的兄弟留点注释吧,就像你刚接触项目,渴望你的前辈给你留下说明文档一样。
价值观二:加班
加班的理由很多,结果都只有一个,那就是你不能按时回家。现在国内的大部分公司还是好的,加班自由,没有强制性的加班政策。
而且加班一般按照三种方式补偿:1.直接给钱,按照平时工资的1.5/2/3倍;调休,今天多上一个小时,下一次就可以少上一个小时;3.按照项目奖金给予回馈。如果是我的话,在刚毕业的时候,肯定选择第一种,加加班挺好的,一方面是加快自己的发展,另一方面可以获得一定的收入。但是如果已经成家立业,第二种选择是比较好的,或者直接不加班,加班就是公司无理打乱你的私人生活,是犯罪。第三种其实就是无赖,公司就是骗子,因为加班是肯定的,奖励是不肯定的……
前面三种情况都是好的,可悲的是,存在下面一种情况,有些公司,基本上属于强制加班,而且加班以后,没有任何形式的回报。这样的公司,在行业内也不属于少数,我都不明白了,那个公司怎么还有程序员……
说了这么多,现在可以分析一下为什么要加班。加班的理由确实太多太多了:一个sb的项目经理,或者一个sb的客户,或者偏偏要抽在sb的周末上线,总之,理由很多,而且即使没有理由,有一些公司,好像是公司的企业文化,不加班,就代表着你不努力,我太阳公司啊……
我刚毕业时候的老大给我说过,而且我也是这样认为的,一个程序员,每天写代码的时间不可能超过4个小时,超过四个小时,那么,你写出垃圾代码的可能性就大大提升。宁愿少些一些,写精一些,有经验的你应该知道,改bug的时间,很多时候都多于写功能的时间。
价值观三:项目管理
我自己一直一个人负责手里的四个版本,所以现阶段没有感受到项目管理的重要(一个人,自己管好自己就可以了),这里是帮我一个朋友牢骚几句。他们三个人负责一个新版本的开发,在开发之前,没有任何的代码约定,没有任何书面上的沟通,然后三个人大致划分了功能,就开始干了。幸好三个人水平都还不错,然后项目也不算太大,最后项目出来了。但是作为程序员的我,看了一下他们的代码,基本没有架构,全是实现功能即可,同一种小功能,在不同的人手里,使用着完全不同的实现方式。我问了一下那个朋友,感觉代码怎么样,他说不要看,全是狗屎。又是那句话,苦了后来人(现在坐在我对面的兄弟就是一个刚毕业的,进来接手他们的项目,哎,那兄弟看代码都看了两个月了,不知道看明白没有……)