首页 > 代码库 > 程序员生存定律-公司选择上的方法论
程序员生存定律-公司选择上的方法论
程序员生存定律这系列的目录在这里:程序员生存定律--目录
喜欢从头瞄的,可以移步。
-------------------------------------------------------------------------------
开篇前再补一句,这没考虑创业的情形,只是说最一般的情况。
在弄清楚公司的分类方法,以及某些类别公司的长处和短处后,就可以开始考虑如何去选择公司。
经常会看到这样一些问题,比如:是去大公司好呢,还是去小公司好呢?是去用ASP.net做ERP的公司好呢,还是去做Mobile应用的公司好呢?这些问题的当事人大多是希望别人给个具体答案的,但实际上上非当事人是很难给具体答案的,而只能提供原则。因为最终的判断同时依赖于公司和个人的偏好。
做这类选择的基本过程是这样:
- 先给公司分类,并弄清楚特定类别公司的利弊得失。
这正是上一节中已经提到东西。
- 考虑自身的状况进行选择。
这时候主要需考虑两个事情:一个是工作要和自己的根基契合,要扬长避短,使工作成为发挥自己长处的场所,而非相反;一个是在发展、赚钱、安稳和兴趣之间取找到平衡点。前者是很理智的一种判断,后者则是主观的一种选择。下面对这两点做一点详细说明。
1 使工作和自己的根基契合
什么叫根基和工作不契合?
我们来想象一下,一个人算法、数据结构、数学的基础很好,特别喜欢计算性工作,但跑去做纯粹的应用开发,这就是根基和工作的不契合。
不是说应用开发就简单,而是说应用开发的难度往往不来源于算法、数据结构这类东西。如果真的很擅长这方面,那更适合去开发基础库、乃至编译器这类东西。
软件是无限宽广的一个概念,恰如前面所说,里面流派众多,不同流派都有自己的难度,但这种难度的来源往往不同。
假设说一个人完全是自学成才,那他能不能成为软件开发高手?当然可以。但这种情况更适合去挑战内核设备驱动这类有难度的工作,而不适合去挑战编译器这类有难度的工作。当然后者也不是完全没可能,只是说挑战后者更为艰难。设备内核驱动的难处来源于对设备、对操作系统、对协议的理解,成为这方面高手可以逐渐累积。但编译器这类工作需要事先累积很多东西,接下来一下子爆发出来,这对自学成才者往往就很难---当然到现在为止我也不知道国内那家公司是自己开发编译器的。
不契合首先造成一种浪费,其次会对自己的职业路径形成障碍。这种选择错位,大致可以有两种表现。
把自己升级使用,这种情形下公司大多时候不干,所以情况不多,但把自己置身在前行无路的状况下却很可能。比如:本科这样的程度即使很精通各种编程技术,也很难去做纯粹的研发工作,在纯粹的研发工作中(图像算法等),只能扮演一种助手性的角色。这也就意味着,如果学历不够却选了一种偏研发的道路,那么就容易卡死在某个位置上。
与上述例子相比,把自己降级使用因为种种原因反倒更常见,所以个人主要力争避免的是别把自己降级使用。比如:很优秀的人每天主要使用拷贝粘贴而不用动脑子就可以搞定手里的工作,这样做个几年这个人也就不优秀了。
从具体方法上来讲,在对公司进行分类后,先看一下公司的核心竞争力和技术路径。不管目标是做技术还是做管理,一旦其技术路径并不是自己能走下去的,那就不太适合自己。比如说:算法、数学基础不好的人就不太适合加入做TTS的公司。
2 当前可得到什么、将来可得到什么
抛开价值观与自己契合与否的考量,选公司最关键的事情是弄清楚在公司里当前可以得到什么,未来可以得到什么?当前可以得到的一般是收入和成长机会,未来可以得到的是一种能力与履历。其中能力贡献于自己的价值,而履历则贡献于自己的表达力,显然的Google工作过的人与飞鸟公司(杜撰的公司名)工作过的人在一般衡量标准中其价值有巨大差异,即使这两个人技能水平相近。
对短期目标和长期目标的平衡可以从四个维度上进行考察:收入、发展、安稳和兴趣。
收入、发展、安稳和兴趣这四个维度所导致的可能选择往往是矛盾的。但如果非要给这四个因素按权重排个优先级的话,更合理的结果是:兴趣>发展>赚钱和安稳。后两者纯属是个人选择,很难清晰区分。但其它几个因素的权重却大致是确定的。
在进行其他说明前,需要补充的一点是这里说的兴趣不是那种很快会来很快会走的兴趣,而是说能够伴随自己一生的偏好。
兴趣之所以大于发展是因为人生要想有高度,必须持续的投入,而要想在一生中持续的投入,没有一个关键支撑,那是不可能的。而没有一种持续的投入,最终可达到的高度就会被限定在一定尺度以下。比如说:一个人非常喜欢写程序,有钻研精神。这时候从行业分类上看,就不太适合介入金融、ERP这类行业,因为这类行业中的软件往往是一种业务流,同现实世界关联很紧,并不是一种纯粹的程序。与之相对应,在互联网公司开发浏览器或者开发软硬件结合的产品就更像一种纯粹的技术。这个人一旦加入了前一种类型的公司,可能做做就会失去兴趣,会失去前进的动力,后者则会与这个类型的人的兴趣点契合的好一点。而这里面很可怕的一个陷阱是一旦你选择了某个领域比如金融,再想跨越到其他的领域比如说游戏,那成功几率极低。因此兴趣是大于发展、安稳与赚钱的权重。
但这里有个极容易被误解的东西,那就是虽然兴趣非常关键,但实际上大多数人其实并没有真的兴趣,而会把一时的喜好误认为兴趣,这种兴趣因为会在时间轴上频繁变化而毫无价值,过多考虑这种兴趣会让自己走入误区,为自己造成损伤。这时候要对自己有个清醒的认识,如果自己不是一个对兴趣非常执着,而是做什么都还可以接受的人,那么就可以把兴趣的优先级放在较低的位置上。
发展之所以大于安稳和赚钱,道理也很简单。年纪越小,未来越重要,没有个人价值的提高,未来既不会赚到钱,也不会安稳。
平衡这四点之后,就可以找到一些大多时候都适用的选择方法:
- 知名软件公司在大多时候在这四个方面可以达成很好的均衡,是首先考虑的对象。
显然的国外的Google、微软等,国内的阿里等即可以提供与兴趣相吻合的工作,又可以提供合适的发展机会以及安稳的,不错的收入。所以如果有机会加入这类公司是不太需要考虑太多的。
有一种情形需要稍微注意。比如某家公司设立的某个子公司主要目的是节约成本,并只做限定范围内的业务的,这种可能会造成流动性上的问题。
- 软件不是主营的公司在一个或多个方面都有负面影响应该尽力回避。
在某些公司里,软件是给其他业务配套的,也就是说是非核心业务。这种工作岗位通常同时对兴趣、发展有负面影响。大多时候应该回避。除非你真的非常认可这类工作岗位的安稳,并且也能接受相应的收入水平。
假设说你真的在软件不是主营的公司里做软件,那么你大概会碰见下面这些事情:
首先是永远要用最简单最直接的技术做基本能用的软件。比如用Visual Studio开发一个界面和数据库进行连接,直到他能用。注意,能用往往是这类软件的终点。太好的代码是不需要的。接下来就可以开始做下一个软件了。而你一旦这么干了,你的技术水平就得不到提高,可替换性也就始终很强。
其次是你可能不会被重视,会和周围的人格格不入。你的领导可能只会给你非常泛泛的指示,但你必须一丝不苟的按照这些安排去做。
很多事情在中国和美国都会不一样,但这事儿上实在是相似极了。在《软件随想录》里Joel说的更直接:千万不要去干什么内部软件,那会把你榨干。
- 衰落期的公司、分工上处在下游的公司、无核心竞争力的公司并非优选。
这些公司可能能满足兴趣需要,但公司自身在满足发展需要、赚钱和安稳上会相对较差。没选择的情形下这些公司也是一种选择,但不是优选。这里没法具体去列举那个公司处在衰落期,那个公司在分工上处在下游,那个公司没有核心竞争力,只能列几条判断的原则。
判断是否处在衰落期,最直接的办法是财务数据,对于上市公司而言获取这种数据并不困难。销售额和利润在处连续2年以上下降的公司,大概是有问题。
对于小公司财务数据大致是不公开的,这时候则只能判定领域。一些存在时间比较长且没形成自己品牌、规模或者技术优势的公司,更可能是生存艰难的。比如:做MIS系统的公司。
在新兴领域中小公司有可能以小博大,高速发展,成为大公司,这种领域往往是蓝海,这点可以回头考虑下2000年的阿里,百度,腾讯。而在成熟的领域中,势力地图已经划分完毕,留给后来人的的工作要么是利润空间比较低,要么需要大额资本进行驱动。淘宝天猫可以逐步发展,苏宁想启动类似的业务,那就必须先投入足够的钱,再有小公司想模仿淘宝天猫,已经变得很艰难,并且成功几率极低。
- 越有梦想,越想快速成长,就越适合在一线城市工作。越想安稳的平缓进步就越适合在二线城市。但在二线城市的选择上要尽可能选择那种有软件园,政府提供相应配套设施,软件园中集中了很多软件公司的二线城市。选择这种城市要比选择软件非主体,只有很少几家软件公司的城市在可流动性上有优势。
感受大公司中主营业务的威力?
李开复先生的《世界因你不同》里面提到了.NET开发在微软内部扭曲变形的过程:
在2000年的时候,微软决定启动.NET计划,那时候规划中的.NET和我们现在看到的.NET并不相同,那时的目标是基于浏览器可以运行所有的应用软件,和今天的云计算概念非常相似(注意这是2000年),电子邮件、即时通讯、登录、Office、高质量的打印、机器翻译、人工翻译等都会被整合到网络之中。
但一旦开始行动时,李开复先生遭遇了“人的问题”(即是政治问题),待整合的团队有三个:IE、MSN Explore、NetDocs,其中MSN Explore和IE是死对头,MSN Explore和NetDocs因为使用不同技术有过节,与此同时,庞然大物Office团队则因为NetDocs意图取代Office而恨之入骨。
这种复杂的关系导致从各个团队抽调人员非常困难,最终只有MSN Explore被整合到了李开复先生这边,但这个团队只有100多人,根本无法开始.NET的宏伟计划。
正在这时微软的一个一个强势人物:吉姆?阿尔钦回到了公司。吉姆?阿尔钦是Windows团队的负责人,1995年开始一直负责Windows98和XP的开发,他是Windows的狂热拥护者,一回来就把.NET计划批评的一无是处。他说:你们知不知道是谁在付你们薪水?是Windows!我的血液里流的是视窗的四色血液。你们呢!难道是冷血的?“他又到盖茨的面前威胁如果公司执意而行,他就辞职。在强势威胁后,阿尔钦通过Windows的远景说服了比尔盖茨。
最终结局是取消原来的.NET计划,重点还是Windows,接下来就启动了著名的Vista的开发。
---上面的案例参照《世界因你不同》缩略而成。
上述这样的一个案例落在不同的人眼里,看到的东西应该不同,可能是政治的力量,也可能是其他。这里我想强调的则是强势部门的力量。
吉姆?阿尔钦这个人为什么有这么大的影响力?原因可能有很多,但其中一定绕不开的一条是他所负责的Windows是微软的根基所在,是主营业务。
在公司之中往往可以有很多产品线,但这些产品线往往并非均摊权重,而是要有君臣佐使。这种差异往往会成为内部资源分配、职位晋升的影响因素。在这种情形下,无疑的主营业务相关人等会被重点关注。
------------------------------------------------------------------------------
关于我自己的各种信息,在左边栏可找到,想了解下写这书的人是不是骗子和大忽悠的可以瞄。
最后希望感兴趣的支持V众投,感觉上这应该是国内最靠谱的生活购物等的问答社区了吧,都是朋友给朋友做的答案,同时实行一人一号,一人一票制度,想找什么答案关注公众号:vzhongtou(左侧有二维码)就行了。