zoukankan      html  css  js  c++  java
  • 软件工程师的职业生涯

    今早(3/8)跟人聊起工程师的职业生涯,突然想起前些日子看的一篇长微博:一个IBM人的离职泪(回头翻微博,作者已经删除那条内容)。内容已经记不太清了,唯一记得的是这哥们14年被promote 11次,跨过了从屌丝到中产的几乎所有band。这是一种职业生涯的典型,姑且称之为从一而终型;与之相对的,就是打一枪换一个地方,每个公司都涉足不深,但行业里基本都混了个脸熟,朋友遍天下,这是机会主义型。

    本文随便扯扯这两种职业生涯,但切记这两种职业生涯无所谓好,无所谓不好,关键是它是否适合你。而适合的标准千千万万,无法一概而论。有的人看最终收获的package,有的人算计投入产出比,有的人注重work/life balance...

    从一而终型

    从一而终型并非严格的『忠臣不事二主』,而是指在漫长的职业生涯中其主要服务对象集中在少数几家公司。

    从一而终的职业生涯中雇主对职业道路的影响很大。所以如果走这条路子,要慎选雇主,要分清哪些是你临时的雇主,哪些是愿意为之长期服务的雇主。

    就雇主而言,我推崇优秀的外企和港交所/纳斯达克等国外交易所上市的内企。他们一般都为员工提供了完备的职业路线。在一个维持增长的公司里,你如果处于中上的表现,就会有一个可期的晋升路线。对于软件工程师而言,有两条路(以外企为例):

    技术路线

    • MTS1-4 (或 Eng 1-4, 或MTS1-3, Sr. MTS):1一般给毕业生,有两年经验的至少从2起跳。MTS为Member of Technical Staff
    • Staff Engineer
    • Sr. Staff Engineer
    • Distinguished Engineer
    • Sr. Distinguished Engineer
    • Fellow
    • Sr. Fellow

    这条路前松后紧,毕业后在同一家公司里工作5-8年,如果做得不错,基本上可以锁定Staff Engineer的title。Staff Engineer是一个什么样的概念呢?从薪水来看,以北京为例,大概是在年薪20-50w的区间(数据来自 glassdoor)。这足够在帝都组建一个中产小家庭,过体面生活,衣食无忧。再混几年,到Sr. Staff Engineer(相当于Architect),年薪30-70w,对大多数人来说,技术生涯基本到头。之所以说技术生涯基本到头,是因为Distinguished Engineer高不可攀,这个阶段你基本上混行业里的影响力,没有振聋发聩的paper,patent,standard,又没有惊天地泣鬼神的产品,你是做不了DE。所以对于大部分不是PhD出身的工程师来说,还是尽早断了这念想。

    对于很有上进心,又很有能力的工程师来讲,这很尴尬。职业的头十年已经看到了职业生涯的暮色,情何以堪?所以很多外企在Sr. Staff和DE之间又插上两道红旗:Principal Engineer & Sr. Principal Engineer。这下好了,你虽不具备『九合诸侯,一匡天下』的本事去做DE,但好歹凭着脸熟,凭着对某个特定方向的专精,四五年内还是很有机会发展成一个靠谱的Principal Engineer滴。

    技术管理路线

    技术路线往往和技术管理路线是可以互换的,当然,前提是有相应的空缺,以及你又管理团队,代表团队对外沟通的能力。

    • Tech lead: 对应MTS3
    • Associate Manager: 对应MTS4,或Sr. MTS
    • Manager: 对应Staff Engineer
    • Sr. Manager (or Associate Director): 对应Sr. Staff Engineer
    • Director (这之后不好对应)
    • Sr. Director
    • VP
    • Sr. VP

    管理路线和技术路线一样,实际的天花板要远低于理论的天花板。一般如果你没有海外工作背景,Director/Sr. Director估计就到头了,VP对于土鳖是镜中花水中月。

    管人很累,沟通交流很累,分配salary pool很累,为你的team站出来说话很累,将功劳归于team,将过错揽在自己身上很累,...。我的老板曾对我说:"to manager yourself, use your head; to manage others, use your heart"。如果你过不了自己那关,不要勉强往技术管理的路线走。这终将是一条布满荆棘的路,因为你不再为自己负责,你为团队负责。公司危机的时候,裁员首当其冲的除了末位者,就是管理者(尤其是中高级)。所以,大多数时候,做个兢兢业业的Sr. Principal比Sr. Director要稳当得多。

    当然,管理者有其管理者的好处。做为insider,你看到的,听到的picture比individual contributor要大。你的视野更开阔,接触的圈子更广。你遭受的磨难更多,所以你的各方面能力也更完备一些。这其中最诱人的是:你是一方诸侯,干成一件事的成就感和满足感更强。

    弄明白自己的天花板是聪明的做法。这样你可以不必撞得头破血流才明白你到了一个自己无法企及的位置。

    机会主义型

    机会主义者看重职场外部的机会远大于公司内部的机会,每当有合适的选择,他们会毫不犹豫地追求他们认定的机会。

    机会主义型的职业生涯个人的眼光对自己的职业生涯影响影响很大。如果走这条路子,你要勤于分析自己,行业和行业内的公司,主动出击,选择合适的时机找合适的雇主。

    分析自己

    对自己的能力和远景目标有一个清晰的认识。自己长处在哪,短板是什么,若要达到未来几年的规划目前的雇主是否合适。这是所谓知己。当然,机会只青睐那些有准备的人,如果不练好内功,一味去追求并不属于自己的机会,只能涂添烦恼。

    了解行业和行业内的雇主

    时时留意行业的动态,结交行业内的朋友,从朋友这样非官方的角度了解他们的雇主。一般而言,可遇不可求的雇主有这么几种形态:

    • 盘儿正,条儿顺,模样好 ^_^ kidding
    • 飞速成长,处在创业期的公司。注意,创业期的公司和创业公司并不等同。大公司励精图治,开辟全新产品线时,也在创业期(至少那个team在创业期,如微信);同理,创业公司未必都在创业期。
    • 大企业在你所在的城市组建新team,开新的R&D等。新的R&D百废待兴,空缺大,择才标准虽不会低,但竞争相对少(当然facebook如果在帝都开R&D则肯定不会),空间大。
    • 大企业在你所在的城市的R&D或team还处于早期规模。空间大。
    • 优秀人才扎堆的公司。
    • 大企业在你所在的城市的R&D正在大规模扩张中。也许这个R&D已经有几百人,但5年的目标是到几千人,那也有不错的相对空间。

    时机

    好的雇主是有时效性的,这需要你有充分的信息去遴选,有高明的眼光去发掘。同样是google,处于创业期的google,和几年前三巨头时代不思进取的google,及现在Larry重新执政充满活力的google不可等同视之。

    所以当一个机会主义者很难,难度比从一而终大许多。就好比02年毕业你拒绝百度的offer,选择了3721一样,当时谁能想到如日中天的3721会几年后凋零?

    总结

    从一而终或是机会主义因人而异。被环境驱动的人更适合找个好的雇主从一而终;被自身驱动的人可以放大视野,多多看看外面的机会。

    当然,招式是表,功力是里。没有功力,徒有招式是玩不转的,即使一时得逞,终究会被人发现你是南郭先生。所以要好好练内功。读过金庸的都知道,上乘武功没有一二十年不会有大成,邪魔歪道有速成之法,但路遥知马力,日子久了,就被抛下千里万里。

    以吾陋见,好的职业生涯起步分三个阶段,每阶段五年:

    1. 内练一口气。首个五年,目标是某个门派的大弟子,为人生奠定基础——掌握广博的知识,找到专精的方向,修习好解决问题的能力。必要时可以根据自己的缺漏,在职读书受教,一来弥补知识的欠缺,二来扩大交际的圈子。
    2. 外练筋骨皮。第二个五年,目标是堂主香主洞主——在专精的方向上不断深入,不断探索,让自己成为超群的专家。同时广交人脉,在公司内外构建自己的影响力。有机会且有意愿的话,可以尝试成为个统领兵卫百夫长什么的。
    3. 奠定江湖地位。第三个五年,目标是一方诸侯,甚至行业领袖——在某个领域的洞察力和话语权无人出其右。写文章,撰书稿,传播思想,在业界构建自己的影响力。

    三个五年下来,正好实现『而立』,可以进一步追求『不惑』了。

    剩下的路怎么走,我也不知道,我也没走到。我只知道,当完成了第三个五年计划之后,你将成为雇主的一个昂贵的cost center。在同一个大方向下,你不该仰仗任何人教你该做什么,而是自己决定该做什么,将自己转化成profit center。唯有此,在下一次经济危机cut cost的大潮中,你才能中流击水,继续指点江山。

  • 相关阅读:
    Android开发学习笔记-关于Android的消息推送以及前后台切换
    C#文件操作工具类
    c#取得应用程序根目录
    Visual Studio 2012中使用GitHub
    C#邮件发送
    jquery判断某个属性是否存在 hasAttr
    js 如何让两个等长的数组产生键值对关系
    js判断一个元素是否在数组中
    日期控件
    react 生命周期函数的一些心得体会
  • 原文地址:https://www.cnblogs.com/eyong/p/3553094.html
Copyright © 2011-2022 走看看