大半年水货码农跳槽总结

avatar 65633
lcwyc
34119
60
最近交了辞呈了,闲着没事,由于之前在地里获益良多,就来分享一下自己的经验,顺便吐槽一下这大半年经历吧
====================================分割线==========================================
首先是经验分享,可能很多经验地里的大牛们已经说过了,我就再说一遍帮大家加深印象,希望对大家有帮助吧。
先简单介绍下自己的背景,本科ee,硕士转cs,基本算是水货一个,学校时期没什么亮眼的经历和成绩,现在做的是前端,2年半经验,目前薪资在湾区码农中应该算是偏低的吧,然后今年投了好些大公司,给电面的基本都有onsite, 除了卖力公司,先电面然后让我2天内做了一个blog的前端,然后过了三周说挂了。一开始onsite了3家,全挂,分别是丢盒子,脸熟和也铺,之后调整了一下,拿下了m和g,最后选了g

刷题:
去年10月-12月把leetcode前400题里比较难的100题刷了4-5遍,但是事后感觉这么做效率不高,因为刷了这么多遍虽然熟练度有明显上升,但是一个没能刷到能直接背答案的境界(当然这个未必重要),一个bug率没有下降多少。
所以事后反思觉得还是应该
1. 把题分类总结,对每一类题进行集中强化训练;
比如可以分成bfs, dfs, df, string,。。。。听说有些算法课提供这些分类训练,你们可以去搜搜看;
2. 写题目的时候不要为了多刷而着急,要慢下来,尽量做到bug free。方法是
1.写之前要想清楚怎么写,各种edge case考虑到;
2.写的过程尽量一气呵成,不要边写边想,写完后面的发现前面不好,又去改前面的,因为这样很容易有bug;
3.写完再检查一遍。
4.代码结构尽量简洁,好的代码结构有利于减少bug
5.如果一个function 太大,可以把它割成几个小的function,分别实现
当然绝对的bug free肯定是做不到的,只能说通过这样的训练,养成良好的编程习惯;
3. 训练自己见到陌生又比较tricky 的题慢慢找到思路的能力;
毕竟现在lc已经有600多题了,肯定是刷不完的,而比如g的面试又总有没见过的题,所以要做这种训练,对于一些来不及刷的题,可以先自己想一会儿,寻找思路,实在想不出再看答案,然后再从答案中找
到自己思维的盲区;
其实这种主要还是靠积累,尽量做,但是不要强求,因为算法题就像是奥数,永远有你做不出的题;

最后是面试:
我的面经很多发在地里了,大家有兴趣的可以去搜搜看;

码农面试基本可以分成四部分:
1. 概念;比如rest api有啥特点,web framework 有啥优缺点;
这些概念很可能你工作中都遇到过,但是被问到时却不一定说得清楚,至少我是这样的。。。
我觉得答题的关键还是在于要答到某个特别的点,或者某个特别的术语,比较投机取巧的方法是直接去谷歌搜索 “database interview questions”, "rest api interview questions" 基本能找到常见概念
题的答案,然后记住答题点就行了;

2. 算法题
如何训练之前已经说了,这里就说说面试技巧吧。
目前看到地里关于算法题的面试技巧主要有两种说法:
1. 装傻,多问题,让面试官一步步引导
2. 也有人说有些面试官不喜欢装傻的,就喜欢一步到位的。
我觉得出现以上分歧是因为每个面试官的面试技巧也不是完美,或者不同的公司培训面试时的要求是不一样的。但是无论是遇到哪种面试官,我觉得以下流程还是有必要的:
1. 问清楚各种requirement 和clarification,讨论清楚各种edge case
2. 简单阐述解题思路
3. 尽量bug free得写出
其中第一点尤其重要,至少对我来说是这样的,因为我经常会先入为主脑补各种requirement,或者理解错requirement啥的;比如也铺,由于前三轮自我感觉还不错,最后一轮有些松懈,他问了一道好象是
找附近餐馆的,然后给了我一张a4纸上面写了车站,公交线路,公交时间等信息,我一开始以为就是简单的问我用什么方法,于是反复和他说用geohashing,但其实他想问的是如何利用a4纸上的数据建立数据结构然后解决这个问题,有点像ood + 算法那种,但由于之前我先入为主,没理解清题目,浪费了很多时间,后面代码来不及写,感觉很有可能挂这一轮。
所以千万要小心谨慎,尽量避免想当然,多问。

3. 系统设计
这个上面我也没什么成功的经验,也是我这次跳槽面试唯一比较遗憾的地方,以后还是应该继续多练习。。。这次就来分享一下失败的经验吧。。。
其实在这波面试中,我也就面了1.5此system design吧,0.5次是m的,就是在那里和我讨论search trie large scale的架构,虽然最后过了,但自我感觉那轮面的不是很好,主要是智商有限,对那个也没啥经验,交流也一般,不过感觉也没什么提高的空间,所以就不展开讨论了。
1次比较重要的是f的,后来hr说就挂那一轮了,当时hr说不愿透露更多细节,其实当时我应该多旁敲侧击一下,比如问是因为交流还是解法不好。。。;
题目是localization的design,事后分析挂点可能有三:
1. 还是没有问清requirement和想当然太多;其实localization我是有工作经验的,但可能就是因为有工作经验,所以对requirement有很多先入为主的假想,而且工作里做的未必就是最好的。事后再来刷地里时看到一个人转载的system design 的评审标准,从好到坏分别是:
1. 问清要求,给出完美解法的;
2. 问清要求,给出的解法有瑕疵的;
3. 要求没问清,给出的解法有瑕疵的;
4. 没怎么问要求,解法是瞎扯的;
所以我觉得提升方法是:
1. 遇到熟悉的题目,要更加小心,问清需求
2. 工作中要时常反思自己或者自己组的设计,看看有什么更好的方法,或者有什么方法能满足更加general的case
2. 交流可能有问题,我记得有一个小问题他反复问了几次;提升方法是在面试中要更多得交流,以揣测面试官的想法、意图、以及他对你给的答案的理解是什么样的
3. leadership不够;面试刚开始时,面试官就说是看 如果我是一个团队的leader能否把设计和下面的人讲清楚;从小到大没做过班干部、老师、很少presentation的我表示汗颜。。。;不过也是需要加强的地方,就是要学会如何教别人,如何把一个复杂的东西在尽量短的时间内给别人讲清楚。

4. behavior question
丢盒子很可能挂在这个,然后我去加强了,f的hr说这个fine 说明有效果;有以下一些经验:
1. 故事尽量真实,因为面试官经验丰富,通过多问一些细节就能看出你说的真还是假,当然迫不得已只能编吧,因为很多问题确实没怎么经历过,最好是那种半真半假的。。。
2. 一位美国it业快退休的长辈知道我说 要尽量表现你善于帮助同事,善于将你的知识传授给同事,因为公司最怕的是一个人走了,没人能接下他留下的摊子,所以希望每个人都有一个备份;
3. 一些问题的followup好像地里不是很多,我就来分享一下吧:
a. 你的缺点是什么 -> 你是怎么知道你的缺点的 –> 你有没有试图去改进缺点,成效如何,请举例
b. 你最失败的事情是什么 –> 事后你是如何反思提高的,请举例
c. 你和同事有过什么矛盾,如何处理 -> 你有没有改进,后来有没有发生类似的事情,你是怎么处理的。。。

以上就是我想分享的这次跳槽的经验,微不足道,希望对大家有帮助。
====================================分割线==========================================
以下是我对这次跳槽经历的吐槽,可能负能量的东西比较多,不想看的可以跳过。。。
跳槽的缘起最初是两年前刚入职时,从同学处得知湾区码农的平均工资水平,和自己一比差很多,所以一则不爽二则怕经济危机很容易被淘汰,于是想跳槽,不过一直有些懒,没花多大经历准备,不过也没怎么休假和回国,一是觉得没脸回去,一是想着攒假期以供面试。。。;
然后是去年年底的一些聚会看到小伙伴们都去到大公司了,而且听说去年g的面试都很简单,所以刺激到我了,于是去年年底刷了好多遍题。然后花了一个月写简历。。。然后就是各种投简历和找内推,海投的大部分都石沉大海,就也铺和丢盒子鸟了我,这两家似乎年初招人挺多的,因为那段时间地里好多面经。G今年的情况大家都了解,所以我2月底就找了内推了,结果一直拖到5月中旬完成onsite,然后6月中旬拿到offer。3,4月陆续onsite了也铺,盒子和f,都挂了,后来听说m的event招人多,于是去试了一下,算是第一个offer吧,然后就是g的offer了。

以上是大概的时间线。说说心路历程吧。。。感觉这次跳槽付出的努力尤其是精神上的努力比高考时候多多了,高考时候只是个天真的少年,对未来没有太多想法,只是想考个好点的学校。但这次感觉成熟了,对未来的想法多了,心理的压力也就更大了。所以这次真的是竭尽了全力,f和g的onsite前我都请了一周假做准备,记得那三家挂了之后那时正好h1b的pp也被停了,还有很多h1b的改革的传言,那时爸妈劝我不要跳了,等政策稳定了再说。我当时在电话里怒吼:“一定要跳!”。。。。然后是m的event onsite,他家这类onsite一般是第二天中午有口头offer结果第二天没收到,伤心欲绝,那天晚上睡到一半突然伤心得醒过来,因为当时觉得那样的面试表现已经是极限了,mock interview也做了,技巧也提高了,交流也不错,算法题之前也演练了无数遍了,system design的知识点也都掌握了,若还是没offer,那真的是对自己的未来绝望了。不过幸好第三天中午来了口头offer,真是喜极而泣啊。。。然后第四天去了g的onsite;话说那天g的onsite也有些奇葩,第一个面试官迟到1小时,第二个面试官中午没空挪到下午晚些,当中的空档有多加了一轮。。。然后最后还换了一个面试的房间。。。说到这还有个小细节是其实去年4月g的recruiter就来找过我让我去面试,但是没准备好,就借口h1b刚抽中拖到10月,结果他竟然准时得又来找我,可我还是没准备好,就情商很低得没鸟他。。。谁知去年g好进而今年特难进。。。。

然后论述下人品守恒定律吧。。。就我个人而言,貌似每次有好事发生之前都会先有坏是发生,比如去年抽中h1b前挂了条轮胎;这次虽然拿到了两个offer但是不幸的事情也挺多的,先是车dead battery 打不着,估计是因为我躲车里不发动和recruiter“私通”得太多了。。。。然后一个美女同事离职farewell lunch,我在走去吃饭路上被玻璃扎到肉里,流了不少血。。。那个美女同事是个东南亚后裔,做的是scrum master就是开会的组织协调,性格挺活泼的,我一直有点暗恋。。。本来想跳到大公司向她炫耀顺便勾搭,结果她先跳走了。。。割了脚后一瘸一拐得去了m的onsite,然后offer,然后g的onsite回来手指被门重重夹了一下,又流了不少血。要知道今年之前的整个人生时光里我基本没怎么受过外伤,没骨折过,伤到肉里的也就两次,然后今年就伤了两次,真是一份offer一个口子啊。。。今年还有一大不幸是我的奶奶和外公故去了,虽然一个97岁一个99岁也算是高寿,不过我原本想的是跳完槽回去见二老最后一面,结果心愿无法实现。。。其实去年圣诞的时候我曾经萌生过真是开始跳槽前回去看看二老的想法,当时外公给我的信中已经有道别的意思了,不过很快就自己否决了,结果年初奶奶去世,然后最近外公去世。我从小到大都是和外公住一起的,每日起床和出门时都要向他问安,刚知道他去世时我并没有太悲伤,但当我给他写告别词时就特别想哭,虽然忍住没哭出来,但眼泪还是控制不了得刷刷得往外流,淌满整个脸颊,也是我人生的第一次。不过好在我外公死前已知道我收到了g,也很为我高兴。于是现在我的爷爷奶奶外公外婆都不在了,虽然我只有late 20s 但感觉已经进入了中年。。。因为小时候那些和他们在一起的熟悉的时光再也回不来了。。。。不过以上这些不幸未必是为了我的俩offer攒了人品,我觉得貌似更加直接有影响的是一些可以赞rp的小举动,比如多给小费啦,多主动清理公共区域啦。。。等等,至少目前来说我是比较相信了这些小善举是会对rp有帮助的。

最后我想说走到这一步其实人生很多都是随缘的,这最早可以追溯到高考,当时我其实一心是想考上海的工科老大的,而且还参加了他家自主招生,拿到了过分数线加10分资格, 当时我又对机械特别感兴趣,于是他家的志愿和专业都是我亲自认真填得和机械相关的,然后第二志愿是上海的工科老二,专业都是我妈填的。。。(因为当时上海高考新出了一项叫平行志愿的政策,导致就是你第一志愿没考上,只要过了第二志愿分数线,依旧能去第二志愿),然后高考平时最烂的语文超乎预期,因为整个高三我基本都在备战语文。。。不过数学物理却出了差池,导致去了工科老二校,专业是我妈比较喜欢的ee。。。(后来四年后再回顾,发现数学最后一道大题但是看错题了才导致不会做。。。)不过ee里上了一些和cs有关的课也算是打下基础,然后就是出国到了洛杉矶某水校的ee,为了确保能赚回学费我毅然转了cs,也因为他家ee转cs比较容易。。。然后不自量力的选了machine learning的课,各种数学推导好难啊。。。虽然这门课成绩不是很好,不过靠它通过了某local startup的简历筛选和面试,于是拿到唯一一个实习offer,然后因为性格太包子,不主动,于是被动得被分配去做了前端。。。然后秋季校招时投了现在的公司,后来据说当时收我简历的是我的同乡,所以就被推荐去了他家的前端岗,他家面试不难,后来拿了他家的offer,也是我毕业时拿到的唯一正式offer。。。然后就是这次正好一个和我一起刷题的小伙伴被m的recruiter骚扰然后拿offer,于是我才知道了m的event比较简单,于是也去试了一下,拿到offer,base比g的标准包稍高了些,g也match了,于是我的base也就比年初传言的h1b新的码农最低工资标准稍高了一丁点,进入了“安全区”。然后今年g的情况是general难match组,但frontend 容易match,所以很幸运得靠着前端背景很快match到了组,最后拿到offer,从高考一步步走来,感觉真的很多就是冥冥之中的缘分啊。。。。

最最后想说的是虽然我不是个迷信的人,但至少对于我个人来说,通过实践我觉得还是多做好事吧,做好事是会有好报的,不过这种好报是基于客观条件(比如你的实力)已经达到了那个层次,只需要一些运气的时候。比如某奖得主,大好人,但最后不得好死,是因为环境太邪恶,客观条件没达到。。。。
  • 184
60条回复