程序员何苦为难程序员
有时候想想程序员何苦为难程序员呢?
扳扳手指走上码农这个行业也有几年了,但是越来越觉得这个行业很累,有人说程序员就是二代农民工,我个人还是比较赞同的,对于刚入道的同仁们来说确实就是个体力(脑力,眼力<你懂的,眼力比较>)活,真就迁扯不到什么高深的算法,基本上你要用的微软都帮你想到了。公司方面也充斥着各种各样的复合型(什么都搞),一不小心就掉坑里了,好不容易爬出来,又被社会XXOO了。只能说人生在世几多愁,愁来愁去未到头。那既然跳进了这个火坑,生活还得继续呀。在这几年中,也帮经理面试过不少人,但是有时候静下来想想很多情况下程序员经常有为难程序员的时候?又给苦逼添加了一份色彩,那就说说我自己认为的程序员何苦为难程序员把(突然想起好像有首歌叫女人何苦为难女人#_#)!
一:对于面试
作为被面试的人:面试中有笔试我个人是很不喜欢的,既浪费纸张又浪费时间,我又不是来考试的,一来就给3页纸以上的题目做,而且好多问答题。好吧笔试固然是一个测试手段,但是有些笔试题目也太不行了,都是网上复制下来的那种,而且还是最基本的概念题。相信大家面试中有90%几率都会出现【什么是面向对象】吧,这样的测试题我只能呵呵。我比较喜欢文艺的公司,那就是上机解决1-3个在实际项目中出现的问题,如果没时间完成的可以写伪代码,提供思路也是不错的,最后谈谈一些项目,和处理问题的方法,基本上就大概了解适不适合了。去面试程序员又不是考公务员,怎么那么多笔试呢?不过有时候也碰到过面试题,后面写了要用自己理解是方式去写答案,而不是一味的名词解释。
作为面试的人:面试别人不管对方技术好与坏,长相是否很凶残,年龄大小,都要平等的去对待,有时候长得像小孩子的比那些大叔级别的技术和口才好多了。个人觉得什么样的技术职位就应该放什么样技术的人,而不是放一个薪水开的比其他较低的人就可以了。要想想自己也是这么过来的,平等对待对方,都是程序员何必为难自己人呢,特别是遇到那种容易紧张的面试者,其实本身技术可以的,紧张后什么都忘记了,这个时候面试官就不要在制造紧张的气氛了,有时候讲个笑话调解下多好。这样良性循环下去,你给别人机会以后别人做了面试官也会给你机会。但是有一个事情我就不得不提起。有些面试官当发现来面试的人开的工资比自己还高,就会出现应聘失败的情况(奶奶的开的比我还高,玩个毛啊)。我觉得正常的情况就是和经理以及HR谈谈,然后给个综合的工资额度,然后HR去谈,而不是面试完回来后和经理说这个人技术不行。
我想说的:
笔试题是怎么来的了,大部分情况不是经理网上复制,就是程序员自己down下来的,自己写代码都没时间,哪有时间出题目。有时候仔细想想其实这个就是为难以后的自己。大家都学上一辈的人,都这样弄题目,导致大部分的面试提基本都一样的,完全失去了笔试的意义。虽然在面试的时候有些人会莫名的给你一些算法的问题,什么是冒泡呀?排序有哪些方法呀,什么是树呀,怎么创建一个队列呀?等等等等,这样作为难道面试官的你就可以装一下。这些东西网上一抓一大把,问问大概的原理就行了,有时候一个地方没说清就排斥这个人,程序员自己何苦为难以后的自己,都文艺一点多好,整一些名词解释有意思吗?还有就是对于作为面试官的程序员自己压自己人工资的最鄙视,你老和HR报价压那么低干嘛,这样自己去别的公司工资能起来吗?HR理所当然的觉得程序员就值这么多,这样以后自己出去能找到工资比现在工资高些的吗,一味的压低工资只是埋没以后的自己。
我最记得2年多前的一次面试,技术没问题,到了人事那里挂了,原因就是工资开高了,然后那个人事竟然说【她】自己做了6-7年的人事都才12K,你开8k而且你还是专科,你觉得不是要求太高了吗?当时我脑袋一充血心里已经放弃这家公司,然后和她理论起来说:你做人事的和做技术的好像不能这样对比吧,我们苦逼的加班你们加班吗,我们经常要学习新的技术你们要吗?程序有问题找的是我们程序员而不是测试人员吧,再说我们每天敲的字也比你们多吧?反正说了霹雳扒拉说了很多,那个女的人事中途没说一句话,最后走的时候来了一句你工作才3年多点,你确实开高了。我当时笑了一下就走了。这件事情告诉我现在的普通的行业已经追上IT所谓的高薪行业了。一些公司的HR只是当我们是傻乎乎的农民工,特别是女的HR。我的意思不是鼓励大家一味的乱开高工资,管他三七二十一开了再说,而是要评估自己的技术、能力、工作年限来。我说的别大家不承认,举个例子把,大家都会面对一个事情就是很多同样3年和5年以上的,技术能力等同的情况下工资很多是一样的,因为HR已经给程序员定了所谓的最高薪水。对于那种工作长的、经验丰富其实是一记猛棒,导致很多技术很好的都转到项目经理和产品经理,埋没了很多写代码很好而且很牛逼的高级程序员。
我还想说:程序员面试官何苦为难程序员,更没必要和HR联合起来为难。(当然技术不行不在此内)
二:对于上班
正常上班:这个没什么好说的,完成自己本职工作后,如果有时间可以帮助同事分担一点,都是程序员相互帮助才是王道啊(不是盲目的去帮忙, 看项目和情况,如果确实是技术不行,上报给经理说明,是去是留后说。),这样不至于一个人的失误导致整个小组加班或者挨骂,大家都认为程序员是最不会说话的人群,但是这个是极端的,业界那么多老板还不是程序员出生的。多交流技术才能让这个行业进步,一个技术藏着掖着没什么意思,和人分享才是最大的乐趣,就好比你做了个软件没有人用,有意义吗?所有程序员不要自己憋着自己,这样其实就是自己为难自己,也就是程序员为难程序员,要学会分享。
非正常上班(加班):让我先长叹一声,o(︶︿︶)o 唉!天天加班何时才能到头啊。。。。
回归正题,我有时候问自己加班加班加你妹的班啊,什么都没有,加毛啊。其实大家心里都是排斥加班的,而且加班的效率是很低的,基本上写不了几行代码,因为白天的能量都用完了,晚上根本就不想动了。为什么会加班,大家肯定经常会问到这个问题,最大原因就是资本主义要榨取最大的利益。回归现实就是经理所谓的答应客户的时间,要快点啊,本来一个3个月的项目,硬逼着1个月完成了,这样的项目质量能有多好,可想而知。所以经常就会出现有用户骂,什么破系统,真他妈的好慢好烂,特别是游戏开发。然后整个行业都变成这样了,然后大家理所当然的觉得程序员就要加班了。还一种加班的情况就是,所谓的绩效,我看是HR来“讥笑”我们的吧,麻痹的这个是逼人加班的条款,不加班就面有可能面临扣工资,还一种就是同事都在加班,我不好意思走啊,就算我做完了自己的事情都不好意思走,我想说那些加班的同事你把这个行业带坏了(这个过于极端了哈),但是这个确实是一个因素啊。
其实一般正常情况下,项目完成是不用怎么加班的,特别是经验丰富的程序员,基本上累积到一定程度后都是有一套代码库的,复制粘贴后进行修改基本能完成一种事情70%以上,但是想归想,现实却不是这样的,你不加班经理和同事会给你带上工作不积极的大帽子,这样一来不加都没办法了。
过去与未来大家都是程序员,何必用未来的自己来为难现在的自己,我好想说我们要学会拒绝加班,我的意思不是不加班,而是偶尔还是能接受的,天天这样是个人都要崩溃。
三:题外话
在中国正常的公司都会是以利益驱动为第一驱动力,毕竟公司要生存要发展嘛,这是一个不可回避的问题。其次才是需求驱动,最后甚至没有技术驱动这一说。试想一下,利益驱动产生一种方案,之后的事情就可以用脚趾头去想了,肯定就是一个接着一个想法产生了,为了利润而去重复的生产,难道不是一件非常可怕的事情嘛。苦了写代码的程序员们,本来可以去学去看新的知识,但却只能去造这些外表不同的轮子,这是一个恶性的循环。是不是应该跳出这个圈,有人说过不要重复的去造轮子。也有人说过技术不是问题,这话也有道理,但如果你用脑去想想这话的意思就是没有什么问题解决不了,这就相当可笑了,这就是利益驱动造成的可怕思想,之所以说出这种话,是因为你的出发点就是在想怎样通过现有的技术来搛取利益,而不是我现在有什么问题,现有技术解决不了,我怎样去解决它。