查看: 18698| 回复: 36
跳转到指定楼层
上一主题 下一主题
收起左侧

[找工就业] 跳槽的成长

   
🔗
匿名用户-B8KKB  2021-11-27 14:59:00 |倒序浏览

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
长达5个月的职场首次跳槽终于尘埃落定,和地里各种10+以上offer,或者惊天大包的各路牛人相比,我的结果真是马马虎虎,拿了几个offer,也就只有一个比较满意就接了。不过整个过程中感觉自己成长了不少,这份成长的经验我觉得才是最宝贵的东西,遂想写出来跟大家分享,同时也是写给几年后再次跳槽的自己. Χ


【背景】. Χ
某二线大厂,大概两年经验。其实去年疫情刚开始的时候就开始断断续续刷题,期间经历了疫情,remote,搬家,办H1B,办绿卡,买房等等一系列重大事件;终于在今年6月份下定决心集中刷题,7月投简历 + HR talk,8月phone,9月onsite,10月收获offer。这里就是第一个经验教训战线不要拖太长太长只能是白白浪费时间。因为tech行业的面试有点现场竞技的意思,看的是当场的performance,或者说某一段短时间内的状态。. Χ



不免俗套的,先说说技术准备的两个部分:coding和系统设计
. ----
【coding】其实coding应该分为两个部分: LC刷题 + 面试实战.1point3acres
<LC刷题>
1. 其实这就是一个自行总结各类题型的过程。这里的“各类题型”往往需要自己总结,而不是leetcode已经为你弄好。比如蠡口-3和76这种two pointer/sliding window这类题,再比如蠡口560和325这类prefix sum的问题,再比如背包问题(蠡口279和322)。说白了,就是要会这一类类题的套路。
另外,对于array/tree/graph这种大分类更要总结其中的各类题型。拿graph为例,除了常规bfs套路,我个人认为至少还要掌握几个子类别:union find(undirected graph), topological sorting(directed graph/cycle, 最经典的就是course schedule的Kahn algorithm), Dijkstra's algorithm(weighted edge), 你看这些分类套路就涉及到对graph的connected, directed, cyclic, edge weight等等的深刻理解。
-baidu 1point3acres
另外,对于一些非常高频的单个题目,也需要烂熟于心,比如LRU, next permutation. 比如next permutation这种题,如果长期不做我是很难在面试现场把swap point + reverse的套路写的又快又准的(比如Facebook面试)。
当然了,一直到现在复杂DP, bit masking依然不太会。segment tree完全不懂。而binary indexing(蠡口315)长期不做还是忘记。

2. 不会?不熟?还是因为练的不够,功夫不到家。这一点我这次跳槽感受很深。对比new grad时期的刷题和面试,我明显感受到这次coding面试水平提高了很多。比如两年前我觉得LRU好复杂哦, 被各种prev next搞晕,但如今可以直接秒。除了更熟悉外,深层原因是我现在已经深刻理解了背后的机制,不就是doubly linkedlist呗。再比如蠡口706,两年前只懂hashmap表皮,如今懂得用array来implement而且知道如何处理collesion。所以只要好好练习,就一定会有提高。It takes time, 加油吧骚年!
我这几年来一共刷了>1200题,一半是一年内刷的。但回头看来绝对是overkill,白白做了很多无用功。仔细反思也是因为自己依然抱着new grad的心态,以为"面试==刷题"就够了。对于社招千万不要只一心扑在刷题上尤其越senior,刷题越不重要。而且, 刷的过多后, 拿到题目会产生stereotype,这对于大部分LC面经公司是有效的,但对于少数比如Google这种问题比较open-ended的反而有害. 1point 3acres

3. 水涨船高全民LC的大环境下, 大家的刷题能力都越来越高,所以面试官的期待值也可能越来越高。内卷呗。表现在两个方面: 第一,需要会偏难的题,比如monotonic stack, topological sorting, 常规DP, 如果放在两年前可能算plus, 但如今是必备技能。不过这也就差不多了。反正我面了N个公司,没有遇到一道下不了笔的超级难题;的确碰到了1-2道hard题,也现场写出来了。第二对optimal solution的追求比如蠡口78,经典的subset问题,如今的最优解可不是backtracking了,而是利用bitmasking的特性;再比如蠡口300,也是经典的LIS问题,我过去一直只会2d-DP, 但其实最优解是binary search。 ..

当然了特别难的难题,不要浪费时间因为性价比非常低。我为了Google, 准备了所有他们的高频hard题,如今看来纯粹浪费时间。

4. 一定要保持连续刷题。过去好几年的经验告诉我,如果好几个月不刷题,然后突然高强度捡起来,很不划算。最高效最节能的方式,还是长期保持刷题手感,保持连续性,哪怕一周只刷一道easy题。


<面试实战>:面试 != 刷题面了这么多场后相信大家都清楚面试的套路:对问题的clarify -> 简单描述自己的idea -> 写代码/边写边说-> 口头跑或者compile test case -> Time/Space complexity -> 面试官要求optimal solution或者followup问题。所以除了coding外,面试里考察的东西太多了,反应能力,交流能力,corner case处理能力,对时间的把控能力, etc. (尤其是要跑test case! 跑test case! 跑test case! 重要的事情说三遍,哪怕面试官没提,你也要主动提出跑test). 所以训练interview水平, 我个人的对策就是: 第一对于经典/高频/面经题,要按照上述面试流程精心准备, 比如上面也提到过的optimal solution;第二就是自己平常写code的时候要规定时间,同时边写边说, talk loud.

我个人体验,大部分面试,其实也就是面的经典/高频/面经题,面试官心里也清楚都是刷过题的,所以这时候面试官就会对题目进行深挖,对candidate全方位考量。而少数情况下碰到很难的hard题,这时候能有思路,写一个大概其实就差不多了,面试官也不会深挖什么optimal solution。
. 1point 3 acres
另外,我反思的自己一个重大不足是: 没有坚持leetcode contest,换句话说就是对新题的临场模拟训练远远不够。其实leetcode contest才是反应一个人刷题临场水平的金指标,尤其对于类似Google这种的新题公司。所以想在coding interview上所向披靡,还是要搞LC contest,向残酷刷题群的牛人们看齐。当然了,以我个人这次体验,按照我自己的路子,大部分公司的题目也都能横扫。

另另外,个人体会,有经验社招面试拿到手软,尤其在market如此火热的情况下。phone screen也很简单,所以可以拿到一大堆onsite。可onsite很难,想转化成offer很不容易。所以在如今的火热背景下,总体hiring bar应该说也只降低了一点点,拿好公司大包依然不易。

.google  и


【系统设计】
还是先说经验结论,再说反思。我个人大概的流程是: 通过grokking上的案例迅速上手搞清楚sys design面试套路(nonfunctional requirement, database, API, architecture, scalability/reliablity/performance, etc), 然后认真阅读DDIA + 经典paper(dynamodb, kafka etc) + 各大tech的engineering blog, 能读多少是多少;最后呢可以看看各种youtube视频,网上视频非常多,良莠不齐, 个人觉得质量最高的还是Scott Shi的视频,和亚麻东欧大叔的视频(很多人说他是俄罗斯人,但貌似他其实是乌克兰的?)
反思:
1. Sys design其实也是有套路的, 本质跟刷题一样!刷题刷的再好,如果运气不好遇到超级hard题也不会;但sys design的题目往往更加融会贯通。尤其随着级别增高,design才是senior engineer重点考察内容是我们赚高薪,拿大包的根本技能, 只会越来越重要。(当然了对于manager岗, 或许BQ才是最核心技能)

2. 如今回头看, 自己对design的准备严重严重严重不足。DDIA只看了那么几个chapter, 经典paper也没有深挖, engineering blog更是临时抱佛脚,真真是书到用时方恨少。虽然对于我2年yoe的人来说,或许design要求不高,但我很确定好几个onsite的确是design没面好才fail的。所以这次很大的一个成长就是: 以后要说拿出准备leetcode的热情和精力来准备design, 现在开始认认真真的仔细阅读DDIA + paper + blog。

3. design跟真实工程能力息息相关的。我目前在一个偏product的组做backend, 整体技术很落后, 自己积累了不少business domain的知识,但tech水平完全没长进。通过这次跳槽我才认清: 第一自己的技术水平真是落后,  比如No-SQL, messaging比如Kafka都没真正实践过,基本没接触过真正的distributed system,导致我特别心虚,只能嘴巴上说理论,面试官随便深入一点,没有真实经验的我就原形毕露了。第二, 我目前没有一个清晰明确的技术方向或者领域,比如Cloud, AI/ML, infra/platform, database, 甚至devops, 而我到现在还只是个backend generalist。. 1point 3acres
举两个例子,比如面试官问我Kafka在某某情境下的traffic是多少?我就支支吾吾了。再比如我有一轮设计API, 按照grokking的流程,API随便写写很简单嘛,但面试官一定要深究有没有考虑malicious attack;如果考虑了attack,我的这个API就非常vulnerable,需要重新设计。我觉得这种东西就真是平常工程能力的表现,只有真正real world里实践过才行,光纸上谈兵完全不行。

所以我觉得,自己工程能力不够强,resume上的技术细节不够出彩,也是跳槽结果没那么好的原因之一吧。总之,通过design的学习和面试,启发我对自己tech水平和未来领域选择的思考,也是这次跳槽重大的成长收获之一。所以以后真是要多多出去面试,自己才不会stagnant。



但其实,我觉得决定结果的更多的是非技术的部分:. 1point3acres.com

【自己到底追求什么?】.1point3acres
人生大事上我们有这种灵魂拷问,其实我感觉职场上也是如此。职场上的自己,到底追求什么呢
两年前的我会毫不犹豫的回答,当然是Google/Facebook啊,或者比G/F逼格更高的hedge fund比如2S啥的。其实这都是不知道自己追求什么缺少智慧的表现。我这次跳槽之初,依然是如此状态,一直到现在跳槽结束才多了那么一点点“搞明白自己追求什么”的智慧。

比如我是继续去prestigious的大厂呢?还是去有潜力的pre-IPO呢?自己目前的技术储备足够去pre-IPO挑大梁么?需要stable大厂搞定绿卡吗?
比如我到底是追求high TC呢,还是追求工作本身的成就感幸福感?remote work是不是更能增加幸福感?Google lowball自己可以接受吗?
比如我是追求职场growth所以更适合去Facebook/Uber拼一把呢,还是追求美好的wlb去更养老的公司呢?wlb好同时pay又高的公司有哪些?
比如我到底喜欢什么技术/领域/方向?我是继续做目前的方向,还是换一个方向从而学更多东西 + 未来更有前景呢?. Waral dи,

每个人的需求和选择都不同,一开始的motivation其实就很大程度决定了最后的结果。其实人生也是如此。
其实一个工程师不同成长阶段需求和选择也不同,每一次跳槽其实都会问问自己要什么。


【公司】
我自己这次的选择还是偏stable的大厂。可以来点评下自己的感受。. 1point 3acres
Airbnb/Pinterest/Lyft 投了没反应,可能是他们招人不多,貌似只要5年经验的。Snap,包裹大,有HR联系但我没去面,因为听说特别难,就不浪费时间了。
Google: 过程漫长,大部分人貌似都是medium-easy题 (但也有人抽到hard的),但可能对表现要求高(corner case/要了多少hints等),HC也比较迷。今年downlevel/lowball也很多。不过绿卡政策很良心。
Facebook/Meta: 过程很快,coding偏容易,难在design,design面试也分system vs product,包裹大,peer压力大,但据说PSC改成一年一次了,或许会有改进。绿卡perm的问题已经解决,但据说还是有audit风险。
Linkedin: 跟Facebook比较像,coding相对容易,难在design,也分application, infra好几个track,包裹大,同时wlb据说很好。.--
Apple: 很奇怪的保密文化。每个team都要做一次完整的onsite,很多很多轮,coding都很常见,bar也很迷,感觉不够标准化, 貌似很看重背景的fit。AI/ML/Siri目前招人很多。果家的TC应该很有竞争力,refresh非常多。
. From 1point 3acres bbsTwitter: 允许fully remote,印象最深的还是manager在BQ环节会问过去每一段经历的team lead/manager的名字,很多人会觉得隐私被侵犯。. .и
Dropbox: 也允许fully remote,不过关掉了tuck shop招来员工抱怨;亲测他们也很缺人。不过感觉前景不太好。
Uber: 在扩招,给很高TC,而且据说新CEO来了后Uber culture/wlb变好了不少?不过去年layoff对声誉打击不小。
Salesforce: 是按组招的,所以不太容易准备,不知道会问什么。wlb好。不过我至今没深刻理解他们是做啥的?
Waymo/Verily/Wing: 狗家的姐妹公司,貌似也很缺人,IPO感觉遥遥无期。
Stripe/Square/Robinhood: 都给了面试,但各种原因最后都放弃了。不过至少现在搞清楚了Stripe vs Square的大致区别:Stripe TC更高但更忙;Square wlb极好但TC要低点。
2S/Citadel/HRT: 也很招人的样子,不过hiring bar一如既往的高。同时个人觉得tech发展前景 >>> top hedge fund.
Microsoft:很缺人,但pay太低。
Amazon:Linkedin上疯狂被骚扰 + 超多BQ所以请准备好两大缸白开水润喉
. .и
还面了很多,推了很多,具体细节都不记得了。回头看来在全职工作的情况下面了这么多,真是很艰辛,很夸张,也很没必要。但我的初心可能还是想更多了解这个行业里各大top company吧,因为不知道以后会不会再碰到,积累经验总是好的。同时也是圆了两年前new grad时期面遍各大公司的心愿,因为那时候不容易拿到面试。. check 1point3acres for more.

我相信下次跳槽,我不再会如此大面积面试,应该会focus在若干跟自己更fit,同时我进行了深入研究的公司,比如一个公司的某个level给出的TC达不到自己的要求,那么压根就不要浪费时间来面。说的更具体点,未来的面试策略应该是: 平常就保持一定的coding + design的竞技状态(可以偏低但不能为0),同时关注少数几家自己喜欢去的公司/组,一旦有了机会可以迅速高强度准备,然后出去面试。面不上拉倒,能拿到offer再来比较,这种"无求"的心态反而更利于发挥。
. 1point3acres.com
另外,可能下次跳槽也会开始考虑hot startup (btw, startup拿大包的很好的总结:https://www.1point3acres.com/bbs/thread-802273-1-1.html)


【资讯】
资讯太重要了。各大公司,整个industry,股市,我们的人生际遇,或者说整个世界都是瞬息万变的。落后的资讯让自己产生stereotype或者各种偏见。我感觉自己每天很大一部分时间都在看一亩三分地 + leetcode + Blind + Linkedin里的各种资讯。除了技术版面,各种经验,内推,公司评价etc都极端重要。
最简单的例子,看看地里“抖包袱” 或者 “内推” 版面就可以判断出最近XX公司是否在招人,招多少人,或者某个org/team在招人。


【性格】
性格很大程度决定命运,也决定我们的职场表现。我对自己的认知是,自己勤勤恳恳,努力好强,注重细节,每一个HR的phone talk我都会想办法安排在optimal的时间,所以全职上班跳槽的痛苦之一就是how to put time on calender。不过自己也过于保守,自信心严重缺失,瞻前顾后,重大决策时刻不够果断。跳槽早期,我一直很怀疑自己能拿到多少面试,所以只要有HR勾搭就来者不拒,其实这是很愚蠢的,因为浪费大量时间在不值得的公司上。后来的结果也看到了,只要有1-2年大厂工作经验,各大top tech面试拿到手软。另外,我记得我当时延期了好几个onsite,不是因为准备不足,而是信心不足。现在回头看,其实对于临时抱佛脚的,多1-2周来准备没啥区别,实力不会有改变,有改变的是运气。实力积累关键还是看平时。.--


【身体 & 心理素质】
跳槽也是体力活,需要吃好睡好规划好,不过说的容易,实际却很难,因为一边工作却一边刷题跳槽真是无解的,因为时间就那么多。另外,很多公司onsite动辄6-7轮,一面就面一天,对体力也是要求。不过我个人这方面自我感觉不错,从上午9点面到下午4点也没觉得太累。.--

但其实更大的考验还是心理素质,整个跳槽过程对心理的折磨最大。因为首先跳槽就是偷偷的。很担心现在公司的老板和同事察觉出来。还要想着如何安排自己的PTO去onsite,有时候还要编点理由。不过如今因为都是VO,加上wfh,真是方便多了。过去还要做飞机亲自onsite,太浪费时间了。
其次,interview本身就是心理战,尤其对于码农面试这种现场竞技风格的。遇到不会的hard题如何稳住自己?第一轮面崩了如何稳定情绪面好后面的?遇到突发情况,比如面试官蛮不讲理,故意刁难怎么办?或者是停电,断网这种stupid的突发情况?. .и
另外跳槽持久战中,很容易患得患失,比如面完一家dream company就开始猜测结果如何啦,然后影响下一个面试,这都是对心理素质的考验。不过顺便说下自己的感受:除了极端positive或者极端negative的面试表现,我们永远猜不出面试官心里到底在想什么,或者什么评价。人家可能脸上笑嘻嘻,跟你谈笑风生,内心直接一个no-hire,脸上笑嘻嘻只不过是职业操守。或者人家一脸麻木哭丧,结果给了strong hire。既然如此,一颗平常心就好了。

其实患得患失的背后,还是expect too much, 有了欲望,才会患失,才会痛苦。所以我未来争取做到:偶尔出来面一个公司,就当做切磋技艺,了解自身差距,而不是志在必得拿offer。有为却无求,没了心障,反而可以更好发挥;人生无常,得不到才是正常,得到了反而是生活的恩赐。其实仔细想想,我最后拿到的几个offer,都是完全没有expect太多的,反而拿到了。


【运气】
其实,很理智的想想,运气才是最重要的我们能做的就是尽人事,安天命
最简单的例子,这次几十年才出现一次的火热的就业市场。谁又能想到有生之年碰到如此严重的疫情?疫情持续如此之久?疫情后股市大涨?当然了,看到火热市场后决定是否跳槽,是我们可以控制的。另外一个最明显的例子,面同一家公司,面试官出什么类型什么难度的coding题,很大程度决定了结果;或者面试官就是不喜欢你;或者你面的很糟糕,但hiring manager跟你看对了眼;或者你通过了onsite,却match不到team,etc。
. 1point3acres
哪怕resume上一个小小的改动,或者分配给你的是哪个HR,或者linkedin上勾搭到的是哪个内推人,这些小小的细节都会产生蝴蝶效应。最后选offer的时候,一次选择可能就很大决定未来,的确,很大多时候,选择比努力更重要。

当然有实力绝对强大的人,可以把运气成分降到最低,但我们大部分人都是普通人。

-baidu 1point3acres
【End】
不知道自己1 or 2 or 3年后再次跳槽的时候,看到这篇心得时又会有啥不同的体会?一如我现在回望过去的种种经历也有新的感受。
最后,求大米!


评分

参与人数 91大米 +193 收起 理由
柳穗 + 1 赞一个
zhan1252 + 1 赞一个
nextNewMe + 1 赞一个
yayun9341 + 1 赞一个
zyzyzy666 + 1 赞一个

查看全部评分


上一篇:JP Morgan Summer Analyst 2022终面后疑问
下一篇:不写代码可以润吗

本帖被以下淘专辑推荐:

地里匿名用户
推荐
匿名用户-DE0TY  2021-11-28 08:29:31
楼主说的这些才是普通人跳槽的经历吧,我也是前前后后搞了3个多月,虽然接了几个offer 但是都不满意,想去的还面挂了,感觉不错拿到offer了又被low ball 找理由降level,真的感觉很难,本打算过节前拿个满意的offer开开心心打打游戏吃吃喝喝的,现在还是默默的准备把后面难的几家面完。。。。

我是毕业后第一次正经找工作onsite,之前都是return offer 水进来的,很多楼主说的都感同身受!共勉!

评分

参与人数 2大米 +2 收起 理由
joezie + 1 赞一个
qianggustc + 1 赞一个

查看全部评分

回复

使用道具 举报

推荐
youziwry 2021-11-28 09:20:14 | 只看该作者
全局:
追求那段写的很好,跳槽也是帮助自己总结和反思职业发展的一个手段,要是楼主能加入自己的思考结果 并结合对各个公司的看法和选择就更有启发作用了!
回复

使用道具 举报

地里匿名用户
推荐
匿名用户-MTSBK  2021-11-28 08:12:22
楼主幸苦,写的非常好,不管是技术方面的分享,还是心态,追求方面的分享。受益颇多。楼主两年经验就有这种理解,相信前途光明。
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-B8KKB  2021-11-28 05:45:17 来自APP
本帖最后由 匿名 于 2021-11-27 13:47 编辑 . 1point3acres
. Waral dи,
顶一下!!!zszszszszs
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-QFATY  2021-11-28 06:32:49 来自APP
谢谢分享,但怎么动不动就上升到哲学高度,哈哈哈哈。
回复

使用道具 举报

🔗
kevinkozj 2021-11-28 07:03:21 | 只看该作者
全局:
加油加油 我们都是为了生活而努力的人
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-IQMXI  2021-11-28 08:06:03 来自APP
很棒的文章,内容既充实又没废话!赞一个
回复

使用道具 举报

全局:
楼主辛苦了,请问楼主既然拿了这么多offer,中间有跟HR谈判过包裹吗?还是说包裹不错就可以直接接了
回复

使用道具 举报

🔗
yyz20002008 2021-11-28 08:42:49 | 只看该作者
全局:
所以如果现在工作确实没有scope能接触distributed system 那如何能过系统设计面呢?如果光读paper blog也不够的话
回复

使用道具 举报

全局:
拿了哪些offer 哪些悲剧啊 实在太长了 没仔细看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表