zoukankan      html  css  js  c++  java
  • 浅谈程序员的行业选择---程序人生

    引言

     

      本篇博文接着许久之前的一篇博文《浅谈程序猿的职业规划,看你如何决定自己的未来吧。》,继续探讨一下程序员行业相关的内容。

      行业的选择不仅对于程序员来说非常重要,对任何一个人来说都是一样的。只不过对于程序员来说,行业更容易被忽略。从程序员每天热议的话题就能看出来,大部分的热议话题都是C#和Java哪个更牛B,或者IOS和Android哪个挣得钱多,很少看到程序员去讨论两个行业谁更有发展前景。

      鉴于此,今天我们就来着重讨论一下程序员行业的选择,行业和语言一样,没有谁优谁劣,只是一种选择罢了。

      另外在这里向猿友们汇报一下,上次博文中提到的艰难的项目已于8.1日按照预期上线,尽管LZ得到了CTO的好评,但LZ也非常清楚LZ付出了什么。后续LZ将尽全力保障项目的稳定运行,并在之后申请经费带着期间加班的同事一起happy一下,缓解大家之前加班的怨气。但就像LZ所说的,事情终归是办成了,所以LZ也算没有让猿友们失望,成了功臣而不是罪魁祸首。

     

    浅谈行业知识的重要性

     

      行业知识一直以来都是程序员非常容易忽略的,这主要跟程序员这个群体的普遍性格有关。

      程序员的性格是什么?宅,闷骚,偏执,厌恶约束,有点自负,有点自卑等等一系列的特征,如果你不具备以上当中的任何一条,LZ只能说,“请联系我!”。

      有不少猿友都对技术有一种偏执,也正是因为这种偏执,让一部分人成为了优秀的程序员,但也往往让他们失去了一些东西。作为一名程序员,技术自然是扎根之本,但只修内功,不修外功也是不行的。

      以前LZ觉得程序员的内功是基础知识(比如算法,设计模式,计算机系统知识,网络协议等等),而外功则是解决各个问题的具体技术(比如解析excel需要poi,制作统计报表需要jfreechart等等)。现在想想,这样的划分其实是有问题的,像poi,jfreechart这类具体的解决问题的方式是没有资格称为外功的,它们只是像eclipse,pl/sql这类东西一样,最多算是一种工具。更形象的比喻应该是基础知识就是九阳神功,具体的技术就是乾坤大挪移,只要学好九阳神功,乾坤大挪移只需要在洞里花费几天就能学会。因此,如果你现在还沉迷于修炼九阴白骨爪,葵花宝典等各类顶级的杂牌武学,现在是时候醒悟了。

      那么真正的外功是什么呢?真正的外功其实正是行业知识。

      不少人肯定都看过武侠小说或者电视剧,内功与外功(或者叫招式)是相辅相成的。内功越强,同样的招式就会威力越大。更重要的是,外功越强,更能将内功发挥的淋漓尽致。

      对于程序员来说,内功就是技术底蕴,外功就是行业积累。技术底蕴越强,当你带着同样的行业积累与别人谈判时,就会越具有冲击力。行业积累越深,就越能将你的技术底蕴彻底的发挥出来。

      举一个不太恰当的反面教材。在LZ的公司里,有着这样一群人,他们被尊称为架构师,他们每个人都有着深厚的技术底蕴,但却只能每天无所事事,不痛不痒的插手着各个项目组的技术架构,技术体系,系统设计。

      究竟是什么导致了他们尴尬的境地?相信现在不用LZ说,各位猿友也能猜到一二。正是因为他们整天处于一个相对来说比较纯净的技术环境,一些必要的行业知识或者说业务知识实在是太贫乏了,对系统当前要做的事情以及将来要做的事情缺乏深入的了解。因此哪怕内功再深厚,没有招式的话,是无法发挥出威力的。

      或许有的猿友会说,不是无招胜有招吗?是的,没错。但是无招可不是说没有招式,而是要自己创造招式。

      有不少程序员都会忽略甚至抵触行业知识,包括以前的LZ。LZ一度觉得,了解行业知识或者说业务知识就是浪费生命,原因很简单,如果换一家公司,不同的行业,那学习那些行业里的业务知识岂不是白瞎了吗。

      现在想想,这个结论其实是有很大误解的。对于跳槽来说,如果是同行业的,那么在技术底蕴同等的条件下,更多的行业积累会让你的价值增加几倍甚至数十倍。就算到时候你真的换到了不同的行业,在之前的公司,通过你内外功兼修的方式,你也会更加容易挤入到更高层里,这样在换行业的时候,你的职位定位本身就会高出一些档次。况且,换工作本身就是一件重头再来的事,你最白瞎的是你在公司的积累,比如贡献的积累,人脉的积累等等,而不是其它别的东西。

      以上结论都基于LZ到现在才认清的一个现实,那就是一般情况下,稍微大点的公司里,从来都不缺技术人才或者业务人才,但都缺技术和业务双双兼备的人才,因此这样的人在公司里是很容易得到重用的。

      总之,成为一个技术大神固然是好的,但深入了解公司业务,让你的技术能力充分发挥,才能让你和你的公司更好的实现双赢。

     

    浅谈面试中的行业选择

     

      讨论完行业知识的重要性,我们来谈谈LZ最近面试的经历。最近LZ的项目组内,被LZ开掉了几位外包同事,因此需要一批内部员工补充进来。至于为什么要开掉这些人补充内部员工,这里LZ就不多做解释了,这些更多是管理方面的内容,与本文关系不大,这里只简单说说LZ面试的经历。

      由于有了不少招人的指标,LZ也开始在繁忙之中抽时间筛选了大量的简历。LZ面试的人比较杂,从初级开发到研发经理都有,LZ问的问题也是千奇百怪。不过有一点是基本上不会变的,那就是只要是中程或中程以上级别的,LZ基本上都会问到一个问题,就是“你对我们公司是怎么看的”。

      其实LZ问这个问题的目的很简单,就是考验面试者对行业以及未来的思考。如果抛开公司规模、公司性质(比如外企,私企,国企)等等这些属性,每一个公司最重要的属性就是它的行业。不过令LZ失望的是,真正能体会到行业选择重要性的面试者寥寥无几,甚至有6、7年经验的猿兄在回答这个问题的时候竟然跟LZ谈公司环境挺不错的,着实让LZ汗颜。

      不过也有极个别的面试者对此有深入的思考,会着重强调选择我们公司是因为行业,而且会解释一下为何会选择这个行业。这种面试者会给人一种善于思考,目标清晰的感觉,就这一个问题就加分不少。

      对于初级程序员,LZ一般不会问这个问题,因为初级程序员大部分情况下的原则是逮着一个工作就好,不太会也没必要去思考行业,而且也不一定有资格自由选择。这一点在之前职业选择的博文里LZ也提过,程序员刚入行的时候,行业并不是那么重要,除非你特别讨厌某个行业。但对于工作了三年以上的程序员来说,行业就是个人必须考虑的问题了。当然了,三年只是取个平均值,具体何时该考虑,也是因人而异的。

      如果你现在正在准备面试,不妨对自己将要去面试的公司做一个简单的了解,或许会有不一样的收获。

     

    浅谈程序员常见的几种行业类型

     

      现在世界上现存的行业已经数不清了,但对于程序员来说,无非也就是几种类型。接下来LZ给各位猿友罗列一下这些类型的行业。特别要说一下的是,这些行业与语言一样,没有明显的好坏之分。

      类型一:互联网

      互联网分为传统互联网和移动互联网,激情与创新是互联网行业的代言,机会与风险也充斥着互联网行业。

      程序员是一群喜欢激情与创新的人,因此互联网行业往往被程序员所青睐。或许真的是这样,互联网公司的气氛与文化可能与程序员更加契合一点,但凡事都有两面性,加班也是互联网行业的专利,因为时效性在互联网行业是非常讲究的。

      互联网行业的代表公司也是大家耳闻能详的,比如著名的BAT。进入这些公司往往是大多数程序员的梦想,但事实上或许是因为得不到的才是最好的,很多时候,一旦得到了,或许一切并没有自己想象中的那么美好。总之,萝卜白菜,各有所爱,孰好孰坏,谁又能说的清呢。

      类型二:甲方

      甲方与乙方是相对的,一般这么叫是因为合同上的叫法。这里简单普及一下,甲方一般就是指软件的买方,乙方自然就是软件的卖方。两者是纯粹的利益关系,一切按照合同办事。但不管怎么说,买方的地位相对来说会比卖方高一些,因此甲方与乙方的项目经理往往完全是两种概念。

      甲方公司一般充斥着各个行业,比如金融,物流等等。有的时候是直接购买乙方已经做好的软件,有的时候则是软件定制,也有的时候是直接外包给乙方开发等等。甲方的特点是客户的容忍度较高,毕竟是给自己公司做的,但缺点就是由于需求变化的代价非常低,因此甲方的程序员往往会面临频繁的需求变更。

      这类公司的代表公司很多,比如LZ所在的公司,比如申通这类物流公司,都属于这一类。在这类公司里,一般能对某一个行业深入了解,但一般技术上的要求会低一些。

      类型三:乙方

      乙方就是卖方,一般定位在软件行业。乙方由于一般是根据合同内容服务于甲方,因此相应的需求变更会少一些,毕竟甲方的需求变更一般是需要加钱的。但缺点就是,由于按照合同办事,因此项目必须按期交付,否则尾款就成了问题。因此在乙方上班的话,或许加班会非常频繁。这一点上,甲方相对来说会轻松一些,但都是相对来说,并不是绝对的。

      乙方的代表公司一般就是一些软件公司或者外包公司,比如金蝶,华为,瑞友等等。在这类公司里,一般能了解到各个行业,对技术上的要求会高一些,因为要应对各个行业各式各样的需求,但很难对某一行业进行深入了解。一个是因为要跟着客户走,一个是因为一些核心的业务一般是不会让乙方来做的。

      类型四:游戏

      游戏行业又分网游,手游等行业,游戏也算是一个类型的行业,总体来说,游戏行业与互联网的特点非常相似。相对于甲方乙方的这种公司来说,游戏行业和互联网行业中,程序员的地位会更高一些。但游戏行业与互联网一样,暴利之下隐藏的是巨大的风险,一旦失败,往往面临的只有倒闭,没有生还的可能。

      游戏行业的程序员待遇相对来说会高一些,但也要看情况。凡事都不是绝对的,以某几个公司的工资水平来衡量一个行业,是有些不太合适的。游戏行业的代表公司也比较多,比如盛大,网易等等。

      小结:

      以上这几种类型只是LZ对程序员常见行业的大体划分,没有任何官方依据,只是LZ自己的思考而已。本文所说的行业知识的重要性,主要针对目前在甲方和乙方的猿友们,在这类公司当中,行业知识是相当重要的。对于完全一样的技术水平来说,你对目前所做项目所处行业的了解程度,基本上能直接决定你的地位与作用,也就是说,很大程度上,可以决定你在公司的发展。

      对于互联网和游戏行业来说,靠谱的创意可能更重要一些。这就需要你了解市场环境,了解大众需求,了解盈利模式等等。如果你能在技术修炼的基础上,加入这类知识的修炼,或许能让你在这两个行业里混的更加风生水起,比如让你去开发DOTA2,你最起码得天梯2000分以上吧。

      总的来说,不论身在何处,技术都不是最重要的,或者说不是唯一重要的。这么说,有点自黑的嫌疑,但事实确实如此,LZ也不得不面对这个现实。除非你可以创造出一种新的科技,比如当年第一台计算机。

      或许LZ这里会打击到一些新手们对技术的积极性,但猿友们也需要了解这些,可以少走一些弯路。技术始终是在为人服务,所以了解这个世界,了解这个社会,了解人,才能真正创造出有意义有价值的技术。LZ这里无意评论行业的好坏,也没有这个资历去评论,具体选择哪个行业还是要猿友们自己决定。LZ这里只是为了提醒猿友们,好好钻研技术是好的,但切勿把技术当作你的全部,这样你会失去很多其它重要的东西。

      

    浅谈程序人生

     

      程序员的一生特别像玄幻小说中的修炼者。开始的时候,要先学会内力(技术)才能进入修炼者(程序员)的行列。随着内力慢慢精进,就需要招式(行业知识,或者与此相似的非技术知识)来增加战斗力(工作能力)了。开始的时候,一招一式都会大大增加自己的战斗力,慢慢的,随着招式越来越强,需要的内力也越来越多,内力逐渐显现出不足(技术跟不上需求要求)。此时,又需要全力修炼内力。如此反复,整个人就会从初级武士(初程)逐渐升到高级武士(高程),直到打破瓶颈,成就武神(项目经理或者研发经理等等)。

      原本以为到了武神就到了武之最高境界了,谁曾想在成为武神之后,飞升来到了另外一个世界。原来,这个世界上还有神域(到了新的层次会接触到更高层的领导,比如其它项目经理或者部门经理,CTO等),这里最低的等级都是武神,自己开始所在的,只不过是最低等的人间罢了。后来会发现,武神修炼的不再是内力和招式,而是神力(能力,比如办事能力,交际能力,也包括技术能力)和天道(个人素质,个人修养,个人天赋等软技能)。

      于是,你会忽然醒悟,原来之前的内力(技术)只不过是神力(能力)当中的一种罢了,外面的世界非常之大,内力只是让你接触这个世界(社会)的开始而已,绝不是你的全部。

  • 相关阅读:
    Oracle SQL语句大全—查看表空间
    Class to disable copy and assign constructor
    在moss上自己总结了点小经验。。高手可以飘过 转贴
    在MOSS中直接嵌入ASP.NET Page zt
    Project Web Access 2007自定义FORM验证登录实现 zt
    SharePoint Portal Server 2003 中的单一登录 zt
    vs2008 开发 MOSS 顺序工作流
    VS2008开发MOSS工作流几个需要注意的地方
    向MOSS页面中添加服务器端代码的另外一种方式 zt
    状态机工作流的 SpecialPermissions
  • 原文地址:https://www.cnblogs.com/zuoxiaolong/p/life35.html
Copyright © 2011-2022 走看看