谨以此文警惕自己,分享给需要的人。
工作三到五年的人,大多会陷入工作上的瓶颈,面临职业发展的困惑:既不是初入职场的小白,又远没有达到站在金字塔尖、实现财富自由的成就。真实的情况或许更多是这样的发问:究竟这是不是我想要的,究竟何去何从?
眼下工作快满五年了,有4年时间从事的是软件测试开发的工作,最近公司内部有机会转组,于是从测试开发工程师变成了研发工程师。还是平薪平级转岗,让我自己觉得捡了一个大便宜,同时觉得作为这个级别的研发,水分挺大的,颇具有压力。
曾混迹各种形态产品和业务线的测试,从PC客户端到web,从APP到算法策略,杂而不精,没见过猪肉总见过猪是怎么走路的,机缘巧合,从测试开发摇身一变,成为web后端的业务研发。经验其实是一个很重要的东西(毫不费力而习得的事,几乎一件没有——孤独除外),虽然做测试的时候泛泛地接触过,但是没有正经做过项目,敲过生产代码,实际解决过业务问题,对业务的理解、对代码质量的把握,面对工作内容的心态,都不可同日而语。现在的困境是:作为高阶的研发(头衔而言),不得不一头扎入琐碎的业务,写琐碎的代码,开各种奇葩的需求会,面对甲方“有钱就是大爷”的质疑,没有更多的思考和提升的时间余裕。当然这是局面和结果,其缘由自然复杂很多,内外因都有,这算是一个引子。
思考一:构建自己的知识结构,构建自己认知和逻辑的大厦
我是一个逻辑主义者,我信仰技术的力量,夸夸其谈这种事我是做不到的,如果我在工作中夸夸其谈,云不知所云,我首先就会遭到自己的质疑:这是不是对的,是不是合乎逻辑的?我的大多数工作和职场的自信,是基于我所掌握的知识和专业技能。前面我说了,经验很重要,那么你已有的知识和知识结构就是你的经验,它可以帮助你解决和经验相关的问题。问题是层出不穷的、知识是学不完的,所以你掌握的知识永远也不够,所以才需要知识“结构”,你的知识里要有自己的理解,要通过自己的理解建立知识之间的连接和联系,连接的重要性胜于知识本身,这其实有点像授人以鱼与授人以渔的关系,你能够构建知识之间的连接,才能够举一反三、以点带面。面对无穷的、海量的知识和问题,需要抽象。抽象后面会讲。
说起来我的路子也比较崎岖,先后做了PC客户端测试、web前端测试、APP测试、纯后端算法测试,像打游击战一样,接触的东西比较多,但是杂而不精。以至于我经常会郁闷:啥都了解一点,却不是技术最突出的那个。小范围内排的上号——大家的认知里有这号人,但作为信仰技术和逻辑的我,反而有些心虚。
上面说的,其实是最基本的,不需着墨太多,构建自己的知识结构,不限于做测试开发,做研发,做任何事,都需要借助工具、借助经验,比方你要带团队,把谁放在哪个位置上能使团队效能最大化,让这个人自己也更满意,也是一种知识和经验。有了工具和经验,才能把事情办成,把事情办成,才是你的价值。换一个层面说,就说合作吧,合作是为了赢,各方都想赢,那就是“双赢”,你得有价值,能创造别人需要的东西,别人才需要你。
做测试开发的时候,我面试过很多人,他们的知识都放在百度搜索框里:这个我听过(接触过,学过),只是不太记得了,要用的时候查一查我很快就知道怎么做的。这是他们的答案。他们的知识不是自己的,需要问百度借才有,虽然百度愿意借给你,但是抱歉,你不是我们需要的人。
思考二:环境很重要:资源、氛围、机会和灯塔
环境是一个很概括的词,大概就是能够作用于自身的所有外因的总和吧。因为这个词太概括,说了等于没说。所以我挑几点说。
先说资源:或者说平台吧,大公司好不好?好!它有资源、有平台、有底蕴,一个工具在二三线公司你要去网上费力去找或者自己开发,大公司有现成的,而且有衍生品好几种。小公司因为成本、效益、眼光等的考虑,会砍掉很多东西,流程也好、技术沉淀也好、人才培养也好,而大公司有底蕴,日积月累,它的制度流程完善,技术成熟,重视人才培养和可持续发展。所以合理利用,你在大公司能有效利用它的平台和资源,对于眼界、工作习惯等的培养很有裨益。补充说一句:底蕴这个东西只有经年累月积累发展的大公司才有,哪怕是大公司出走一大批核心人员创业成立一家公司,前景再好,底蕴这个东西它是欠缺的。
机会:机会很重要。我一直对自己“东打一枪西放一枪”耿耿于怀,如果一开始就在一个感兴趣的有前景的方向一直沉淀,技术上或许走得更远,路子更清晰。我一开始在的PC客户端产品线是一个很成熟的产品线,连需求评审都不用参加就可以测试,也很封闭,没有多少工作技术交流。我也不是计算机出身,校招入职就进入那个团队做PC客户端测试,一年多后那个产品线收缩,转组去做医疗产品测试。那个时候我对Linux操作系统和后端基本一无所知。亏得我在工作交接那段时间恶补一下,好歹平滑过渡,来一个软着陆。我第一次跳槽去了一个APP团队,第一天去,上午入职下午就要跟两个妹子聊工作了解团队情况和工作内容。在这之前我都是执行者,单兵作战,带小团队毫无经验。长达一年多的时间,我都在不停地带新人、面试,还要做规划、做总结、带项目、做测试、开发平台和工具。经理是一个技术偏薄弱的人,但是善于鼓动下属,放手让你去做,回头做出东西还教你怎么去呈现和扩大影响力,给你请功和摇旗呐喊(面对这样的经理,你除了替他卖命好像也没有别的办法了)。
举了两个例子,都是说的机会。前面团队比较封闭,成长受到制约,所幸变化自然而然发生了。后面这个团队,领导认可你,相信你,给你机会,还培养你,你必然会成长和进步!没有那么多非“他”不可的事,给任何人机会,他都有很大的概率可以把事情做成,至于做成、做好还是做得非常漂亮自然因人而异。还是那句话,我是一个信仰技术的人,所以我觉得在APP团队的一年半,接触了各种东西,担任了各种角色,削弱了我在技术上的积累,不过在其他方面也收获很多。得失很难去界定。退一步回去,会有那样的“机会”在技术上做突破吗?我不知道。
氛围:氛围的影响是无形的,却很重要。在PC客户端团队的时候比较封闭,接触的人就那么几个,在医疗团队的时候,有一些技术不错的同事,但是各自为战,没有形成分享、良性竞争的氛围。现在的大团队很好,各种逗比杠精,工作上是上下游关系联系很紧密,经理和生活委员善于经营,很多同事都在这样的氛围中进步。
灯塔:如果你是一个追求极致的人,需要仰望一座灯塔。比你高、比你远,你看着它就想靠近它。它指引你走向更高、更远。这个不多说,部分人并不想费力去追求极致。
说了四点,站在自己的角度,并不是为了要依赖它们,而是要警惕自己,它们的作用。要创造条件消除它们缺失情况下的逆作用。比如如何去创造自己想要的机会;如果我是管理者,如何去营造团队的氛围;没有了大平台,如何弥补这种缺陷?
思考三:思维升级
我要讲的就是抽象。作为一个技术高工,写代码写的好是应该的,经理需要你会思考、会规划、会规避风险。对经理来说,后者比前者更重要。他们想的是:你告诉我我们为什么要这么做?你需要多久能做出规划的效果?你的产出是什么?风险在哪里?你不能只关注执行的细节!执行交给小弟就可以了!经理不想知道细节,他没空。这种思路是对的,金字塔往上,站得越高,看的越远,但是能看得清的东西也越少,细节模糊了。一个人做的事永远有限,不管你愿意不愿意,性格适合不适合,你的发展思路只有一个方向:更抽象地思考,把事情交给别人去做,做价值最大化的事。你能干十个人份的活吗?但如果你把十个下属哄好了,他们会替你去干(至于怎么哄,那是另一门学问)。思维的几个层次:
1、利用经验和知识结构,把一件事做成。
2、知识结构作延伸,给你一件事,你有A、B、C三个方案,A方案:大家都是这么做的,你也熟悉,B方案:有所了解,可以一试,C方案:我不知道,但我知道谁可以给我答案。
3、有一件事,我会去评估:为什么要做,大概可行的方案有哪些,有什么收益,收益产出比多高,是否值得去做?
4、有一个想法,我需要和xxx,yyy等讨论一下,让他们给我一个方案,听完汇报我再决定要不要去做。
5、布局。
很遗憾。我想我的层次大概在2和3之间徘徊,取决于我手上有没有资源。如果我有一群得力的小弟,我会保3争4的。我又是一个执着于细节,执着于精致的人,所以这里要警惕自己:往金字塔上面走,做最重要的事,该舍弃的细节就舍弃!
思考四:知识结构、思维方法、沟通、自信和愿景
这是终极大招了。这是我总结的5个职场中最重要的东西。
知识结构:这是最基本的东西,在你作为执行者的时候,你依赖你的知识和经验解决问题,创造新的解决问题的方法,前面已经深入分析了,知识是学不完的,你要持续学习,用逻辑连接你的知识。不仅仅是技术知识,如何在presentation中阐述和呈现自己的价值、想法、工作成果,也是一种知识和技能。退一步说,你的知识结构也是你获得peer和下属认可和信赖的基础。你不会想有一个只会指手画脚,不懂装懂,瞎指挥而背地里骂他傻叉的领导的。
思维方法:知识很多,如何变少?方法就是抽象,你的思维方式里,要学会去抽象。mysql是如何做分布式一致性的,Redis又是如何去做分布式一致性的,消息队列又是如何做分布式一致性的?还会有很多你没有接触过的东西……从这里你要抽象的是,分布式一致性面临的核心问题是什么?业内成熟的方案有哪些?巨头公司都在用啥?用后面这种方式思考,更省力,更符合一个高阶工程师的身份,更接近本质,当然呈现的专业性也更高。所以,越往后,提升思维方法比提升知识结构更必要、也更高效。
沟通:很明显,做很多事情,你需要别人,所以需要沟通。沟通你要讲清楚两件事:我需要什么,我可以为你提供什么。这样你可以用你能提供的交换你想要的。有了良好的思维层次和思维方法,你才能和与你同一级别的人,甚至层次比你高的人对话。如果你技术很差,看问题跟一线执行者一个层面,一个架构师或者总监级别的人会鸟你吗?你又能提供给他什么?思维层次当然也是建立在你的知识结构上的。
自信:其实这一点我要说的是心态:轻松、积极、主动的心态。我个人在自信心方面是保守的,有一些历史原因,这里批评一下,但是不展开说。这很不好。你不自信,领导怎么愿意把事情交给你办?你不自信你在跟人合作的时候,别人怎么信赖你?当然,自信的前提是1和2(知识结构和思维方法),3(沟通)是润滑剂。“我很丑,但是我很温柔”,这句话可以很好地概括我想表达的自信的意思。尊重客观情况,客观情况可能是乐观的,可能是悲观的,但是心态上要接受,并且要投入热情,导向你要的结果。
这件事交给你能不能办成?
a、这个面临A,B,……等问题,不好说;
b、我觉得这是个挑战,有点意思,值得一试。
你的答案必须是b!除非这件事不值得做。
愿景:目标要清晰。我做测试开发的时候,面试了很多场,经理放出一个hc,要招聘一个什么人很清楚,我经常要帮经理从这方面去考虑。作为团队核心员工,经理也会释放许多管理层面才接触到的信息给核心员工。从中我发现经理对下属,目标定位是很清晰的。有的员工PPT做得很烂,迟到掉链子也常有,但是技术不错,对技术有一股子冲劲,经理最后年终绩效评定,他的分数一般比各方面都均衡的员工要好。因为能力均衡的员工没有“核心竞争力”,经理更依赖技术好的员工。放在另一边看呢?只有目标清晰,你才能成长更快。你才会去找你的领导说:领导,我想去做xxx。才能抓住你的机会。
有清晰的目标,才会有动力,才会有好的进步,才会有成就感和幸福感。是不是这样,问一问自己?