千万别当程序员
如果你要做IT,首先你要确定你的目标是什么,我的建议是,千万不要当程序员,因为中国这个环境之下,没有人当程序员是个什么东西。
程序员是挣不到钱的,不管你是自己做程序来卖还是帮公司做程序,你最终还是一个搬砖头的,就是一民工,没有人会当民工是工程师,所以,如果有人为你冠以“软件工程师”的头衔你还沾沾自喜的话,恭喜你,你还没有看到这个行业背后的黑暗,保持一份纯洁对于我这种老家伙来说已经变成一种奢侈了。先说说自己做私活吧,一个简单的Web站点,在你那里可能能够卖到5K、1W甚至2W,但是也就这样顶天了,你还能卖到多少?而且没有后续的合同保障,所有的维护啊程序变更都是你自己的事情,但是同样的项目,在公对公的卖,价格至少翻5倍,如果加上硬件,那就不得了了,最近我的一个朋友公司还卖出去一套自己开发的国产OA,价值300w,购置的是 PCServer单机+JBOSS,呵呵,有些不可思议?事实就是这样,你觉得你占了便宜,实际上你可能花费了更多的精力和时间,你可以计算计算这笔钱自己拿的是否值得。对于帮公司就更不用说了,公司会计算软件成本,基本是开发人员开发费用(基础设施成本+工资+住行费用)+市场费用(招待费+市场住行费用+灰色费用)+运维成本(运维部门的支出)+硬件成本+税收成本,我不是搞会计的,对于这些术语可能不准确;好的,项目总投资额-软件成本就应该是公司的收益了,现在可以进行收益分配了,我们可以看到,在收益分配处,无一例外的是公司本部收益比例>市场收益比例>研发收益比例>运维收益比例。公司占用比例无可厚非,俗话说的老板占大头,没错,就是这样,你就Shut UP了;市场占收益比例也好像合理,没有市场就没有项目,大家都得喝西北风;研发,呵呵,当然得有了。首先出的问题可能就是运维收益了,一般的理解,运维部门作为公司的内部部门,不能直接参与项目收益分摊,的确也是没有直接参与,但是变相的就厉害了,我以前的某个公司是如此计算运维成本的,一个项目中配备网络管理员1个+财务人员1个+项目综合秘书1个+综合事务管理1个共计四个人,这四个人的成本是按照工资+日常开销、补助+加班费计算,其参与周期为整个项目周期,好像也没有啥问题,问题就在于这些人都是兼用在多个项目中的,你说是不是成本就转换成收益了;同样的情况也发生在其他的组成员中,例如测试、市场和商务,所以对于成本的计算,也就如此,没有办法,成本转换成收益,的确不错,公司领导恨恨的说在兄弟们身上砸了多少多少,都是虚的,实际拿中等程序员的工资×整个项目的参与人员数量×项目周期基本就是实际的可见成本,至于交通费住宿费加班费补助费都可以在前面计算公式中折合。这下你知道你为公司作出不朽的贡献了吧,你一个人养着那么多人,哈哈,笑话。
最可怜的是,在这种制度下,程序员的工资涨的速度块却幅度不大,我最初的公司共对程序员定了6格级别,初一初二初三中一中二中三,刚入门的是初一,1000,然后每级涨幅100,即使到了中三你也还一个小PP,去看看PM的工资,他们涨的机会小多了,呵呵,可是基数不一样啊。
如果你要想学东西,也不应该选择当程序员,其根本的症结在于,程序员还是那个整个建筑工地里的民工,你会发现你自己在不断的搬砖头,什么设计模式啊、面向对象之类的,和民工搬砖头使用手还是箩筐还是用竹子编的专用工具没什么区别——都是为了更好的搬砖头。你会发现,你没有时间来看你买的书,来学习你所感兴趣的新东西,因为你老在搬砖头啊。公司会给一定的承诺,忙完这个项目大家可以休息休息了,呵呵,你要相信这个就有些天真了,程序员都休息了,公司不就歇菜了。在你搬砖头的时候,市场商务可是没有闲着,还在那边不遗余力的刨坑,等着你这个民工跳下去。
有的年轻人在找工作的时候会问培训机会,一般公司都人模狗样的说有很多培训机会,呵呵,你又相信这个东西的话,恭喜你,你还继续保持着天真。培训分成两类,收费的和免费的,免费的要时间,收费的要时间又要钱。时间不就是请假了,好像和公司培训没有关系了,对了,说的就是收费的。技术人员和运维部门的口味可不一样,在程序员眼中Borland曾经是旗手,而在他们眼中这家公司只是昨日黄花,所以首先在技术培训的选择上面就存在分歧,你不可能听到Martin Fowler的演讲,倒是可能会看到张亚勤的一个人的秀。所以,培训,对于程序员来说,更像一个逃避工作的机会。再看看参加的人员,一个不成文的规约,越贵的培训参与的人的层次越高,作为金字塔的最底层的同学,你参加微软TechED的机会和你去华星看加勒比海盗的首映场的概率一样——一般的主张是,钱要花在刀刃上,程序员好像是刀把子,是在手里面用的,不是在外面用的。说起这个,想起2003年参加的那次TechED,我因为要辞职,公司给了这么一张门票给我,会上看到的学生居多,公司去的程序员少,其他大多数是穿西服的要么精干要么大腹便便的仁兄。参会期间,程序员和学生都很饥渴,都在忙着选择课程(课程时间有冲突),而穿西服的却在打电话、和展商唠嗑,那次给我的刺激非常大,如果再给我门票,我也不会参加这种大型的技术推广会,因为我怕受刺激。
还没说完呢。刚才提到,在金字塔中,程序员属于最底层,也就是说是个人基本都可能会踩你一脚,技术岗位和其他的岗位不太一样的是可替代性强,具有讽刺意义的是其他岗位的不可替代性正是因为这些岗位对技术的不敏感,具体是什么就心照不宣啦,哈哈。而程序员应该是整个行业里面最可爱的人,有啥说啥,保持一个正气凌然的样子(建议Party接收所有的程序员作为正式Party员,坚决能做到又HONG又ZHUAN的就程序员啦,哈哈),这样可是不好,但是换个角度想,技术是诚实的,不是诚实的人怎么可能学好技术?(可能比较费解,自己琢磨吧)刚才说到某些岗位的技术不敏感性,可能你上楼去帮某人看看人家的Excel如何进行行汇总行锁定,你心里在笑“这丫也忒笨了吧”,呵呵,有可能对方做的整好就是你的考勤表、工资表。
程序员在公司的不如意不是在于个人发展或者技术层面的不足,对于这两点,的确是辞职的不二法门,但是实际很多时候程序员的稳定性是很强的,因为没有什么心计所以还是单纯。程序员的不如意很多时候是由于制度约束或者不公平导致的,人嘛,心里都有一杆秤。我初到某公司的时候,因为位置匮乏,就坐在领导的办公间,某君横入,指手画脚,大言炎炎,我怯怯的问“君何人?”,此君答曰“全公司就我一个姓汤的,你去查吧”,寒,我查了一下,运维综合的头头,果然盛气凌人,ORZ了。某次会议,客户十几个人,市场配合一人、技术一人陪着去风景区,横里杀出一个综合的人也要去陪客户;如此两件事在我心里留下了不小的阴影,也是导致我对这家公司产生成见的第一药引,也成为离开公司的第一成因。
刚才提到,程序员的稳定性强,原因很简单,程序员工作的目标是学习,而非其他,在这个层面上,程序员可能或多或少的有种心思,就是运维综合只是服务部门,我不评论这个想法是否正确,但是有一点可以说道,一个机器的运转需要不同的部件,各个部件最终服务的对象是整体,而不是服务于个体,正如军队之于国家机器,所以在这个层面上,产生冲突是在所难免。这也导致一个有意思的情况,程序员对程序员服气,对于技术不咋地的也不咋地服气,要纠正这个很难,这就显得程序员在全公司范围内显得很屌技术越强好像就越屌。对于其他的金字塔下层的人员来说就有些意思了,身处在一个技术公司,技术不敏感导致危机感较强,对程序员这些屌人就更加敏感,呵呵问题不就出来了。对技术强悍的又像我这样的屌人(我的技术不强,虚荣心让我很屌,哈哈),说一句多的坏话,你的直系领导能够包容你,知道你是个“才”,了解你的德性,但是其他的人却只能看到你屌,看不到你的才,这点需要注意。
才说了,搬砖头没有时间倒腾技术,那么发展线路呢?一句话,如果你现在身在一线,你会有很长时间在一线。程序员、高级程序员、设计工程师、分析工程师,都是程序员,你的发展线路是 什么?技术好了,可能会让你啃硬骨头,或者好些可以让你带Team,让你从编写一个项目的代码转换到编写更多项目的代码。从Team Leader到经理的转变不是一个职位的问题,而是一个角色转换的问题,绝大多数情况,公司会相信空投,即便这个空降部队的家伙前面还是某个公司的Team Leader。倒不是说要转换就得跳槽,关键是思维的转换需要时间,编写代码占用了那么多时间,你还有多少时间给你自己用?我就纳闷了,一个MBA学完就能搞好管理?一行代码都不会就能建模,扯了,大多数人都抱有这样的思想,但是也无可奈何,有的事情该服气要服气。所以,要转换角色就赶紧,否则就来不及了。
给那些想编而优则商务的兄弟泼点冷水吧,你不会有太多的机会真正处理商务或者市场的事情,大部分时候说让你到现场锻炼,因为你是程序员,更多的时候你其实是换了一个地方换了一个爷爷来编程而已,而且,比在公司的还不如。如果你想籍此建立你的人脉关系,那就更扯蛋了,首先,你谈的都是技术问题,你有机会在大领导面前露脸,但是没机会表达自己的“优秀",更多的时候你是在和业务人员打交到;其次,对方领导不可能太能记住你,比起你所作的PPT而言,你的脸容易忘记多了;第三,和对方“真正接触”的机会少,嘛时候能现出人的本性?人说最好的交情有一个就是"一起打过炮",嘿嘿,俗了不是,那时你不在,不是商务在就是市场在;第四,你的领导也记不住你,你又不直接汇报,领导可能能在某个场合恍然曰“此君能人也,某项目得赖君大力支持得以验收,赞!”,一杯酒的交情,呵呵;最后,你还真没有那么多时间去揣摩人的心思,你更多的心思还在你的立国之本——技术上,小农经济的思想何时转换了,何时就是你出息了。
程序员是一个比较脆弱的角色,为啥这样说啊,程序员心理防线低啊,我本将心照明月,明月何曾照沟渠,呵呵。对技术的敏感是对的,但是这个敏感性好像无处不在,一句很受伤就可以概括,没辙啊,难不成学oerlord里面的,指挥小红小黄小蓝揍他丫的?哈哈,YY吧。
最后说点正面的,如果你真的还要当程序员或者你没办法只能当程序员(就像我一样),首先要明确,工作只是你生活的一个部分,不是全部,实话说,从04年以后,我投入实际工作的时间最多到60%,已经没有那种百分百投入的激情了;其次你要明白在整个集体中,你个人的能力不可忽视也不可视之过高,项目的生死存亡和你本身没有太多的关系,本分则以,矫枉过正亏身体;再次,如果要靠写程序当程序员挣钱,就要忍得,公司除了程序员这群单纯的家伙还有不单纯的家伙,要被人挖坑自己哭还来不及呢;最后,如果你执意要当程序员,你要明白,程序员是一场苦修,你最好把它当成你的乐趣,否则你会烦死。
我是出不去了,不管我在什么样的位置,这些年根深蒂固的思想左右了我很久了,现在我就像修苦禅一样当一个不是很称职的程序员,对我来说,程序员是完成我自我修养的一个过程。我没有后悔选择这个职业,因为那是一个必然,只是奉劝那些热血青年,不要过多的相信这个行业的光辉,99年我在厂里,一月400大洋,2000年我当程序员,一月1.7K,差距很大,而现在,我原先的厂里我那些哥们姐们官也当了,工资也到5K了,所以路有很多条,选一条别后悔的路——就是那条你选了就别后悔的路。人TM一辈子真正的就只有30年供你支配,完成你自己吧。
更多的正版沈胜衣
程序员是挣不到钱的,不管你是自己做程序来卖还是帮公司做程序,你最终还是一个搬砖头的,就是一民工,没有人会当民工是工程师,所以,如果有人为你冠以“软件工程师”的头衔你还沾沾自喜的话,恭喜你,你还没有看到这个行业背后的黑暗,保持一份纯洁对于我这种老家伙来说已经变成一种奢侈了。先说说自己做私活吧,一个简单的Web站点,在你那里可能能够卖到5K、1W甚至2W,但是也就这样顶天了,你还能卖到多少?而且没有后续的合同保障,所有的维护啊程序变更都是你自己的事情,但是同样的项目,在公对公的卖,价格至少翻5倍,如果加上硬件,那就不得了了,最近我的一个朋友公司还卖出去一套自己开发的国产OA,价值300w,购置的是 PCServer单机+JBOSS,呵呵,有些不可思议?事实就是这样,你觉得你占了便宜,实际上你可能花费了更多的精力和时间,你可以计算计算这笔钱自己拿的是否值得。对于帮公司就更不用说了,公司会计算软件成本,基本是开发人员开发费用(基础设施成本+工资+住行费用)+市场费用(招待费+市场住行费用+灰色费用)+运维成本(运维部门的支出)+硬件成本+税收成本,我不是搞会计的,对于这些术语可能不准确;好的,项目总投资额-软件成本就应该是公司的收益了,现在可以进行收益分配了,我们可以看到,在收益分配处,无一例外的是公司本部收益比例>市场收益比例>研发收益比例>运维收益比例。公司占用比例无可厚非,俗话说的老板占大头,没错,就是这样,你就Shut UP了;市场占收益比例也好像合理,没有市场就没有项目,大家都得喝西北风;研发,呵呵,当然得有了。首先出的问题可能就是运维收益了,一般的理解,运维部门作为公司的内部部门,不能直接参与项目收益分摊,的确也是没有直接参与,但是变相的就厉害了,我以前的某个公司是如此计算运维成本的,一个项目中配备网络管理员1个+财务人员1个+项目综合秘书1个+综合事务管理1个共计四个人,这四个人的成本是按照工资+日常开销、补助+加班费计算,其参与周期为整个项目周期,好像也没有啥问题,问题就在于这些人都是兼用在多个项目中的,你说是不是成本就转换成收益了;同样的情况也发生在其他的组成员中,例如测试、市场和商务,所以对于成本的计算,也就如此,没有办法,成本转换成收益,的确不错,公司领导恨恨的说在兄弟们身上砸了多少多少,都是虚的,实际拿中等程序员的工资×整个项目的参与人员数量×项目周期基本就是实际的可见成本,至于交通费住宿费加班费补助费都可以在前面计算公式中折合。这下你知道你为公司作出不朽的贡献了吧,你一个人养着那么多人,哈哈,笑话。
最可怜的是,在这种制度下,程序员的工资涨的速度块却幅度不大,我最初的公司共对程序员定了6格级别,初一初二初三中一中二中三,刚入门的是初一,1000,然后每级涨幅100,即使到了中三你也还一个小PP,去看看PM的工资,他们涨的机会小多了,呵呵,可是基数不一样啊。
如果你要想学东西,也不应该选择当程序员,其根本的症结在于,程序员还是那个整个建筑工地里的民工,你会发现你自己在不断的搬砖头,什么设计模式啊、面向对象之类的,和民工搬砖头使用手还是箩筐还是用竹子编的专用工具没什么区别——都是为了更好的搬砖头。你会发现,你没有时间来看你买的书,来学习你所感兴趣的新东西,因为你老在搬砖头啊。公司会给一定的承诺,忙完这个项目大家可以休息休息了,呵呵,你要相信这个就有些天真了,程序员都休息了,公司不就歇菜了。在你搬砖头的时候,市场商务可是没有闲着,还在那边不遗余力的刨坑,等着你这个民工跳下去。
有的年轻人在找工作的时候会问培训机会,一般公司都人模狗样的说有很多培训机会,呵呵,你又相信这个东西的话,恭喜你,你还继续保持着天真。培训分成两类,收费的和免费的,免费的要时间,收费的要时间又要钱。时间不就是请假了,好像和公司培训没有关系了,对了,说的就是收费的。技术人员和运维部门的口味可不一样,在程序员眼中Borland曾经是旗手,而在他们眼中这家公司只是昨日黄花,所以首先在技术培训的选择上面就存在分歧,你不可能听到Martin Fowler的演讲,倒是可能会看到张亚勤的一个人的秀。所以,培训,对于程序员来说,更像一个逃避工作的机会。再看看参加的人员,一个不成文的规约,越贵的培训参与的人的层次越高,作为金字塔的最底层的同学,你参加微软TechED的机会和你去华星看加勒比海盗的首映场的概率一样——一般的主张是,钱要花在刀刃上,程序员好像是刀把子,是在手里面用的,不是在外面用的。说起这个,想起2003年参加的那次TechED,我因为要辞职,公司给了这么一张门票给我,会上看到的学生居多,公司去的程序员少,其他大多数是穿西服的要么精干要么大腹便便的仁兄。参会期间,程序员和学生都很饥渴,都在忙着选择课程(课程时间有冲突),而穿西服的却在打电话、和展商唠嗑,那次给我的刺激非常大,如果再给我门票,我也不会参加这种大型的技术推广会,因为我怕受刺激。
还没说完呢。刚才提到,在金字塔中,程序员属于最底层,也就是说是个人基本都可能会踩你一脚,技术岗位和其他的岗位不太一样的是可替代性强,具有讽刺意义的是其他岗位的不可替代性正是因为这些岗位对技术的不敏感,具体是什么就心照不宣啦,哈哈。而程序员应该是整个行业里面最可爱的人,有啥说啥,保持一个正气凌然的样子(建议Party接收所有的程序员作为正式Party员,坚决能做到又HONG又ZHUAN的就程序员啦,哈哈),这样可是不好,但是换个角度想,技术是诚实的,不是诚实的人怎么可能学好技术?(可能比较费解,自己琢磨吧)刚才说到某些岗位的技术不敏感性,可能你上楼去帮某人看看人家的Excel如何进行行汇总行锁定,你心里在笑“这丫也忒笨了吧”,呵呵,有可能对方做的整好就是你的考勤表、工资表。
程序员在公司的不如意不是在于个人发展或者技术层面的不足,对于这两点,的确是辞职的不二法门,但是实际很多时候程序员的稳定性是很强的,因为没有什么心计所以还是单纯。程序员的不如意很多时候是由于制度约束或者不公平导致的,人嘛,心里都有一杆秤。我初到某公司的时候,因为位置匮乏,就坐在领导的办公间,某君横入,指手画脚,大言炎炎,我怯怯的问“君何人?”,此君答曰“全公司就我一个姓汤的,你去查吧”,寒,我查了一下,运维综合的头头,果然盛气凌人,ORZ了。某次会议,客户十几个人,市场配合一人、技术一人陪着去风景区,横里杀出一个综合的人也要去陪客户;如此两件事在我心里留下了不小的阴影,也是导致我对这家公司产生成见的第一药引,也成为离开公司的第一成因。
刚才提到,程序员的稳定性强,原因很简单,程序员工作的目标是学习,而非其他,在这个层面上,程序员可能或多或少的有种心思,就是运维综合只是服务部门,我不评论这个想法是否正确,但是有一点可以说道,一个机器的运转需要不同的部件,各个部件最终服务的对象是整体,而不是服务于个体,正如军队之于国家机器,所以在这个层面上,产生冲突是在所难免。这也导致一个有意思的情况,程序员对程序员服气,对于技术不咋地的也不咋地服气,要纠正这个很难,这就显得程序员在全公司范围内显得很屌技术越强好像就越屌。对于其他的金字塔下层的人员来说就有些意思了,身处在一个技术公司,技术不敏感导致危机感较强,对程序员这些屌人就更加敏感,呵呵问题不就出来了。对技术强悍的又像我这样的屌人(我的技术不强,虚荣心让我很屌,哈哈),说一句多的坏话,你的直系领导能够包容你,知道你是个“才”,了解你的德性,但是其他的人却只能看到你屌,看不到你的才,这点需要注意。
才说了,搬砖头没有时间倒腾技术,那么发展线路呢?一句话,如果你现在身在一线,你会有很长时间在一线。程序员、高级程序员、设计工程师、分析工程师,都是程序员,你的发展线路是 什么?技术好了,可能会让你啃硬骨头,或者好些可以让你带Team,让你从编写一个项目的代码转换到编写更多项目的代码。从Team Leader到经理的转变不是一个职位的问题,而是一个角色转换的问题,绝大多数情况,公司会相信空投,即便这个空降部队的家伙前面还是某个公司的Team Leader。倒不是说要转换就得跳槽,关键是思维的转换需要时间,编写代码占用了那么多时间,你还有多少时间给你自己用?我就纳闷了,一个MBA学完就能搞好管理?一行代码都不会就能建模,扯了,大多数人都抱有这样的思想,但是也无可奈何,有的事情该服气要服气。所以,要转换角色就赶紧,否则就来不及了。
给那些想编而优则商务的兄弟泼点冷水吧,你不会有太多的机会真正处理商务或者市场的事情,大部分时候说让你到现场锻炼,因为你是程序员,更多的时候你其实是换了一个地方换了一个爷爷来编程而已,而且,比在公司的还不如。如果你想籍此建立你的人脉关系,那就更扯蛋了,首先,你谈的都是技术问题,你有机会在大领导面前露脸,但是没机会表达自己的“优秀",更多的时候你是在和业务人员打交到;其次,对方领导不可能太能记住你,比起你所作的PPT而言,你的脸容易忘记多了;第三,和对方“真正接触”的机会少,嘛时候能现出人的本性?人说最好的交情有一个就是"一起打过炮",嘿嘿,俗了不是,那时你不在,不是商务在就是市场在;第四,你的领导也记不住你,你又不直接汇报,领导可能能在某个场合恍然曰“此君能人也,某项目得赖君大力支持得以验收,赞!”,一杯酒的交情,呵呵;最后,你还真没有那么多时间去揣摩人的心思,你更多的心思还在你的立国之本——技术上,小农经济的思想何时转换了,何时就是你出息了。
程序员是一个比较脆弱的角色,为啥这样说啊,程序员心理防线低啊,我本将心照明月,明月何曾照沟渠,呵呵。对技术的敏感是对的,但是这个敏感性好像无处不在,一句很受伤就可以概括,没辙啊,难不成学oerlord里面的,指挥小红小黄小蓝揍他丫的?哈哈,YY吧。
最后说点正面的,如果你真的还要当程序员或者你没办法只能当程序员(就像我一样),首先要明确,工作只是你生活的一个部分,不是全部,实话说,从04年以后,我投入实际工作的时间最多到60%,已经没有那种百分百投入的激情了;其次你要明白在整个集体中,你个人的能力不可忽视也不可视之过高,项目的生死存亡和你本身没有太多的关系,本分则以,矫枉过正亏身体;再次,如果要靠写程序当程序员挣钱,就要忍得,公司除了程序员这群单纯的家伙还有不单纯的家伙,要被人挖坑自己哭还来不及呢;最后,如果你执意要当程序员,你要明白,程序员是一场苦修,你最好把它当成你的乐趣,否则你会烦死。
我是出不去了,不管我在什么样的位置,这些年根深蒂固的思想左右了我很久了,现在我就像修苦禅一样当一个不是很称职的程序员,对我来说,程序员是完成我自我修养的一个过程。我没有后悔选择这个职业,因为那是一个必然,只是奉劝那些热血青年,不要过多的相信这个行业的光辉,99年我在厂里,一月400大洋,2000年我当程序员,一月1.7K,差距很大,而现在,我原先的厂里我那些哥们姐们官也当了,工资也到5K了,所以路有很多条,选一条别后悔的路——就是那条你选了就别后悔的路。人TM一辈子真正的就只有30年供你支配,完成你自己吧。
更多的正版沈胜衣