四位面试者的遭遇:工作3-5年,跳槽,创业还是留下来?

2019-07-30     CPPLinux开发架构师

最近面试了好几位应聘项目经理的人,觉得大家的共性还是很多,现在挑几位有代表性的经历说一说,如有雷同纯属巧合。

面试者A:10年+工作经验,985本科,在2家通信大厂待了4年多后与人合伙,十来个人的初创公司,曾任CTO,履历上看做过各种产品追热点,支撑几年后钱烧完了散伙。 (创业)

面试者B:8年工作经验,211本科,在1家通信大厂待了3年多转行教育行业,后转向区块链自主创业2次,曾任架构师,平均每家创业公司支撑不到2年即宣告倒闭。(跨行业创业)

面试者C:10年+工作经验,211本科,十几年来一直待在某通信国企,经验偏向行业上层应用,曾任项目经理。对行业新技术了解不多,目前企业架构调整,属于被优化人员之一。(留在公司)

面试者D:8年工作经验,985硕士,在通信国企待了5年多后转行咨询行业及房地产行业,曾任项目经理,在现有岗位不适应,希望回归通信本业。(跨行业跳槽)

这四位面试者的经历非常有代表性:四位的起点都不差,211或985的出身很容易迈进大企业的门槛,都说学历是块敲门砖,有当然最好,但入门之后还是得靠自身能力的不断提升。

通信行业对码农还是相当友好和开放的,一般而言3-5年足以从小白程序员做到中级码农,此刻就到了第一个转型期:是跳槽、创业还是留下来?

程序员这一行还是相对公平的,不懂的很难浑水摸鱼,按照二八法则,大部分码农的水平相差其实不大,所以我们先从这80%说起。

我们来逐个分析一下:

选择一:留下来,怎么留。

以211/985的出身待在一线通信大厂/国企到现在,最差也是个项目经理,由于大厂在行业根深脉广,普通人在这个平台上能获取到比小厂多得多的资源:例如最新的开源技术、各大厂商技术交流,行业大咖的内部培训等等,还有一些大型业务场景例如高并发、低时延只有在大厂才有机会接触到。

老话说 “宁为凤尾不为鸡头”,跳槽时HR也更青睐大厂的工作履历,为什么?因为大厂意味着标准化、流程化,上战场的主要力量还得正规军。

在此也强调一点,作为普通人千万不要错把平台当能力,站在高山上当然看得远,但下了山之后自己只是个普通人。身边也有这样的经历,在老东家不满左右掣肘,单枪匹马杀出去几年后老老实实回归本业了,本以为自己能够呼风唤雨,出去了才知道大树底下好乘凉。

留在大厂就能够衣食无忧吗?

显然不是。开头案例中的面试者C在大厂待了十几年最后却落到被优化的境地,这个就是舒适区没走出来的典型,还有很多小白几年后变成了大厂的螺丝钉,只懂自己手头上的那一点,专业面非常窄,导致跳槽可选余地非常少。

活到老学到老,码农这一行尤其如此,年纪大了逻辑思维不再敏捷,大部分最终都会走上管理岗位,但管理不等于脱产,自己时刻保持对行业和技术的关注,最起码要多关注几个含金量高的公众号例如“码农翻身”这种。(感谢COCO给码农翻身打广告)

做个有心人,长期保持行业敏锐度加上多年开发经验的沉淀,在所属位置深耕,一旦做到不可替代就具备了核心竞争力,这类人老板舍不得裁,就算公司倒闭也能很快找到下家。

选择二:走出去,怎么走。

对于不死心一定要闯一闯的普通码农们,可以看看下面的内容。

先定义一下什么是普通人,非官二代、商二代、军二代,祖上没啥积蓄人脉,就靠自己读书后来到北上广深的打工者。

先说一个数据,统计显示创业成功比炒股发财的几率还要低那么一点点,按比例大概1%不到,而创业所占用的时间精力以及繁琐程度远远超过职业股民。(我就是那根不待见A股的韭菜-_-!)。

所以走出去的路不一定要死盯着创业这一个独木桥,可以考虑换个岗位、换个行业,但换也是有技巧的。一般而言,在原单位内部转岗是成本最低风险最小的,其次是换家公司同类型岗位,再次是换个行业。

特别强调一点,千万不要岗位、公司、行业全部一起换,指望一张白纸从头再来是不可取的。为什么?因为第一、白白浪费了自己这几年的行业经验积累,第二、企业招聘一定会优先录取应届小白,可塑性强,工作几年的已经半定型很难改,成本还高,自然拼不过应届生。

前面说过通信行业对码农是相当友好的,码农可以转型的范围相当广。面谈过的求职者中,从程序员晋级到技术管理、产品经理是水到渠成的,也有从开发转岗到售前、售后、运营、销售的都有,总有一个位置适合自己。

但是如果跨行就不一定了,不仅专业不适合也存在相当不可控的因素。举个不太恰当的例子,网络工程师除了去通信大厂还可以去运营商,可以从初级工程师一直做到网络架构师,因为网络是通信的基础,但网络工程师如果跨界到教育、金融等行业那最多就是个高级网管。

总而言之,普通人适合稳扎稳打,毕竟不同环境下成长形成的眼界、思路完全大相径庭,所以在一开始选择一个好平台还是有必要的,成长到瓶颈期的时候可以适当打破,可以从外打破也可以从内,这个就见仁见智因人而异了。但要注意,千万不要冲动,否则一手好牌打烂也是有可能的。

话说回来,开头提到的四位产品经理,各位能猜到最后录取的是哪一位吗?

其实是A,面谈后安排A参加了多次会议讨论甚至厂商交流,通过观察我们认为:A自身技术和能力都不算差,但其职业定位就一电子城小老板,产品运作采用小作坊模,快仿快销,渠道推广效果一般,当行情热度消退后就玩完。

还有差不多一个月就迎来了一年一度的金九银十跳槽季

如果你准备在金九银跳槽的话,那么作为一个C++开发者,该怎样用一个月的时间,为即将到来的面试做好充分的准备!

一、技术广度

技术广度,顾名思义,你作为一个合格的工程师在开发一个系统,完成一些具体的技术任务的时候,必然是要使用到很多的技术的,而且针对这些技术还需要掌握一些非常常见,各种不同的系统可能都会涉及到的一些技术架构/技术方案。

举个例子,假如这个互联网公司在招聘C++工程师的时候,他的招聘要求是什么?

是不是必须得要求候选人起码在C++多个技术领域,都有实际的生产项目使用经验,而且还对这些技术的各种特性以及落地项目的时候常见的技术架构/方案都比较熟悉,这样招聘这个人进来之后才能上手立马干活。

要求一个候选人对各种常见的技术以及相关架构都有实际的项目经验以及对技术本身也足够熟悉,这就是所谓的技术广度,站在招聘候选人的角度来分析一下,想必大家就理解这个“技术广度”考察项了。

实际上技术广度这个东西,都说了是技术广度了,所以肯定不仅仅只是上面提到的那点东西。

实际上,一个合格的适合互联网公司的工程师在技术广度上,还需要掌握其他很多东西。

比如集群、性能优化、SDK开发、分布式架构、区块链、数据库、网络IO等

越是大型的互联网公司,就越是会针对技术广度这块,考察的可能会越广泛,要求更高一些。

技术广度的快速准备

那么既然已经了解了这个技术广度是什么之后,现在针对这个技术广度,在短时间内应该如何来快速的复习和准备呢?

这个问题,我们分成两种情况来说。

假如说你是一个平时就很勤奋很努力,过去几年一直在不停的学习的人,那么恭喜你了,这块东西百分百难不住你,因为你过去几年持续的学习,可能已经自己把技术广度的每个点的一些东西都研究过,而且或多或少都有一些使用的经验。

对于你学习过或者实践过的东西,你肯定都记录了一些笔记。你最好的准备方式,就是快速的回顾自己的笔记,把各种常见技术的核心原理和项目实践都通过笔记回顾的方式快速的回忆起来,在大脑里形成一个知识网络。

如果你是一个不那么勤奋的工程师,或者是一个工作才两三年,涉世未深的小年轻,还那么多的积累,此时怎么办呢?

那也没关系,记住一句老话:临阵磨枪,不快也光。你虽然没啥积累,但是你都要面试了,怎么着也得临阵突击一下吧。

下面就是要教你的方法了:你可以自己把技术广度可能涉及到的各种点都罗列出来,然后上网百度一下各个技术点常见的一些面试问题,或者是基本的一些核心原理。

通过百度各个技术点,然后从各种技术博客中快速了解一个技术的方式,短时间内可以迅速建立起来对技术广度中涉及到的各个点的一些基本认知、核心原理,这样在面试的时候避免一问三不知。

当然,大家也清楚,技术这东西是没法速成的,你采用第二种方法来突击,跟你第一种情况下有几年的积累厚积薄发,最后落地到面试的时候,表现是截然不同的,也会直接决定不同的人会进入不同层次的公司。

第二种情况的同学可能面试的时候问到一个问题,就只能说个一两分钟,但是第一种情况的同学,功夫都在平时,只要复习到位,面试的时候问到一个问题往往可以举一反三,一下子给你说个十多分钟都可以。这就是区别所在。

不过,就算你只说一两分钟,总比一问三不知,和面试官大眼瞪小眼好,对吧?

最后还是给各位强调一下,成功无捷径,作为一个优秀的技术工程师,最重要的事情是一年365天,每天都不停的学习积累,坚持很多年。

吃得苦中苦,方为人上人,笔者早年进行技术积累的时候,也是这样过来的。每天晚上学习到凌晨一两点,周六周日全天学习,坚持了很多年。

只有通过几年的积累,你才能够厚积薄发,量变产生质变,菜鸟变成大牛。

二、技术深度

技术深度是指的什么呢?简单来说,假如你有了上面第一条说的技术广度,这不能说明你有多优秀,仅仅只能说满足了面试的最基本的要求,招聘进来过后立马就可以上手干活了,没太大的培养成本。

决定你未来技术的高度有多高,还有你能否成为团队里顶梁柱的,是你的技术深度。

技术深度的快速准备

如何为了即将到来的面试快速的做技术深度的准备呢?

其实也很简单,分为两种情况来讨论。

如果你在过去几年,自己就深入阅读过大量开源技术的源码,在阅读源码的过程中,自己还把源码的架构图、流程图,手工画了大量的图出来。

那么此时你完全就可以把过去几年的源码研究笔记翻出来,快速过一下,练习如何在面试现场在白板上纯手工把各种技术的源码架构图和流程图现场画出来。

或者在过去几年,你对某个技术领域,针对很高的技术难度做过什么复杂的系统,在那个技术领域扎下了很深的研究的话,那么此时你也可以针对过去的笔记快速的复习,在面试现场一定要现场画图把你做过的复杂系统以及技术难度都说清楚。

但是如果你过去几年没上述所说的任何积累,那咋办呢?

还是那句话:临阵磨枪,不快也光。

一般面试官在考察技术深度的时候,很可能会问你:你对哪个技术比较熟悉一些?

遇到这个问题的时候,希望大家头脑清醒一些,千万不要脑子发热随便乱说,因为你要做好一个心理准备,一旦你说出某个技术出来,比如你说你平时用dubbo用的比较多,接着面试官可能会开启深入源码级别的10连击模式。

比如说,面试官立马就会开始问你对你熟悉的某个技术,各种底层的机制和原理,让你说源码的理解,给你出各种技术挑战之下这个技术该如何应对,等等诸如此类的问题。

我见过太多没经验的同学随便说个熟悉的技术,其实他就仅仅只是会用罢了,但是一旦当我深入提问的时候,基本就进入一问十不知的情况了。

如果发生上述情况,会让面试官对你的印象和态度极其不好,大家一定切记切记!

所以,假如你要是确实没有过对什么技术的深入的积累,这里也教你一个临阵磨枪的办法:

你可以从简历中挑选出某个你相对来说用的比较多,熟悉一点点的技术,然后直接用万能的百度,搜索“XX技术源码分析”,“XX技术底层原理”。

通过几天的时间快速的 “ 死记硬背 + 软磨硬泡 ”,力争对某个技术相对有一些稍微底层一些的理解。

这样做,起码在面试的时候被要求问到一些技术深度的时候,能相对给出一些比普通工程师的回答更好一些的分析,起码能在面试的时候,让你拿到好点的offer概率会相对更大一些。

还是那句话,做,总比不做好。你能对底层做了准备,有一些了解,总是要胜过那些浮于表面,只会使用API的工程师吧!

同样笔者这里要说,回归技术的本质,对于技术深度的积累,那更是没有任何捷径可言,更不是几个月可以完成突击的。

因为真要有技术深度的话,你可能需要花费至少2年的时间,从底层开始研究一些基础性的技术。

在打通你的底层技术任督二脉之后,再去对常见的开源技术进行深入的源码研究。

有了几年的积累过后,最后你在面试的时候,技术深度的体现,其实都是厚积薄发的。

三、基础功底

这块其实没啥可多说的了,大家估计现在慢慢都感觉到了,社招的有经验的工程师去面试互联网大厂的时候,很多时候可是都要考察数据结构和算法的。

基础功底的快速准备

这块如何快速准备呢?

我的建议是,如果真的还有1个月要去面试了,那你最起码用几天的时间,网上搜三五十个最常见、最典型的算法题,反复练习、务必熟练。

熟练到什么程度呢?

你需要反复练习,最后自己能够在白纸上一遍就手写出没有bug的代码。

哪些题目是最常见、最典型的?举个例子,经典排序算法以及其时空复杂度分析,经典查找算法,栈、队列、链表、二叉树等常见数据结构的算法题,这些相关的基础题目都要熟练掌握。

这个时候有了足够的积累,起码面试是不用担心任何基础性手写算法之类的问题了,功夫其实还是在平时的。

社招对算法和数据结构的要求是低于校招的,校招是因为学生没有太多项目经验,只能考察你数据结构算法,看你聪不聪明。

那如何学习才能快速入门并精通呢?

当真正开始学习的时候难免不知道从哪入手,导致效率低下影响继续学习的信心。

最重要的是不知道哪些技术需要重点掌握,学习时频繁踩坑,最终浪费大量时间,所以有一套实用的视频课程用来跟着学习是非常有必要的。

今天给大家免费分享一套教学资源,帮助大家在面试的的道路上披荆斩棘。获取资料转发+关注+私信我“资料”即可免费获取

文章来源: https://twgreatdaily.com/zh-hans/M-ZcQ2wB8g2yegNDEg07.html