先说一下本人的背景吧。我毕业于一家二三流的美国高校,三年前获得博士学位,专业是石油类。但是由于油价持续低迷,再加上我不擅交际,再加上我专业能力薄弱,收到的都是石油公司的闭门羹。转战纽约后,经家里亲戚介绍,入职了一家PE,以为踏上的是一条通往光明“钱途”的康庄大道。殊不知,跳进了一个无比巨大的深坑。最后及时醒悟,转码退出。
期间也想过转Data Scientist/ Data Analyst,交巨款(几千刀)上过某培训机构,梦想着自己就是那个挖掘数据、分析数据的“Scientist”。后来发现,鄙人不才,实在无法在短时间内精通统计学、ML、数据商业分析等技能。而且,从投简历的过程中发现,Data Scientist的坑并不多,并且那些科班出身的统计PhD、master各种秒杀我们这些业余选手,最后还是转了码。决定转码之后,刷题、做项目、投简历,面过三家大厂,两家银行,两家Startup,N家Recruiter/Contractors。
这里还要特别感谢我的家人们,特别是我媳妇儿,在我最困难的时候提供了各种无条件的支持!还有几位提供无私帮助的大哥。跟我同岁,但是已经是大厂里非常Senior的码工了。我能在异乡遇到同胞,并且同胞非常热情的提供帮助,非常幸运。我自己以后也要多帮助同胞。同时感谢地里提供的面试信息,让我不断成长!
开贴总结转码面试经验,希望对大家有用,少走弯路,祝大家Offer多多!仅供参考!
亚麻面经:
面试官:国人?烙印?
关于面试官是国人还是烙印的问题,地里大家争论已久,我在这里谈一下自己的体会。 总结下来就是:遇到烙印不一定是坏事,遇到同胞不一定是好事。我在面试过程中,遇到大概5-6个国人面试官,6-7个烙印面试官。最后选择挂我的国人和烙印都是因为题目没答好,有硬伤,并非被黑。所以建议大家在面试的时候不要指望国人同胞对你大发慈悲,也不要怕烙印对你种族仇视。我们既然不能改变别人的想法,那我们就努力完善自己、做好自己吧。
1. 遇到国人同胞,别窃喜,很多国人同胞受过专业面试培训,他们很公正,所以咱们也要专业点:
a. Easy题,国人同胞念你同文同种准备对你放水。BUT,咱得对得起国人同胞的帮协,要把Easy题妥妥的做成一个Presentation!由简单到复杂,给他多重解法、多重优化手段,他在写feedback的时候将有理有据,HC时候也能帮你一把
b. Medium,一般是较高频题。注意沟通,一般的面试流程,注意一些Corner case
c. Hard,别慌,国人面试官也纯粹是想 稍微稍微 难为难为你,但是也绝对会引导你解出来(这里我讲的是你从来没刷过这个题),这个就非常考验Candidate的基本功了。首先,以我做Leetcode 难题的经验,我觉得解难题一般都是思路不好想。Brute Force不行的话,停1-2分钟,假装“不好意思的”要一些Hint,国人面试官一般都会尝试给你一些Hint,骚的就是这个Hint很有可能是解题方法。Hard题瞬间降为Medium,甚至Easy!比如,“请你试试能用Two pointers / Merge Sort / TreeMap / DFS解么?”(敢说市面上的Candidate,谁遇到Hard题且是没耍过的题都得想半天。没Hint,在30-35分钟解出Hard题,面试官那里都是Super Strong Hire)
2. 烙印面试官:别怕,大部分不会黑你,但是前提是你准备的够充分
a. Easy题,一般不可能,有的话肯定是有Follow up,升级为Medium,或者还有一道其他medium题
b. Medium题,正常的面试流程即可,多交流
c. Hard题,如果非常难解,比如需要些很长的Code,有可能三哥/三姐要黑你。就尝试要一些Hint吧,试着解,看你的造化了。但是如果刷过,必须秒它。正常的Hard题,就正常的交流解吧。
LC刷题
关于刷多少题够用的问题,仁者见仁智者见智。作为一个非CS科班出身的人,我的策略是多刷题。我不觉得刷题越多会提高我coding的能力,但是他起码给了我一把能够打开科技公司大门的钥匙
1. 刷多少够?
我的刷题量在LC 630左右:Hard – 120, Medium – 340,Easy – 170 。我不是科班出身,基本功不是很扎实,只能多刷题目,保证每一个难度,每一类题目都接近50%。这样我在面试的时候至少有50%的机率遇到原题或者与原题相近的题目,这样很快就会有思路。如果面试官是比较Senior的面试官,他出的题目大概率不会超过题号800或900,因为他们刷题那还是几年前的事了。这样咱们在面试中遇到原题的概率进一步提高。除非他准备跳槽去别的公司,他也在刷题。这就看到Linkedin的好处了,如果有面试官的名字,查查近几年的跳槽习惯,是每隔2-3年跳一次还是一直不动。
2. 刷什么题?
到了后期就基本不刷Easy题目了,除非想鼓舞一下自己,可以Bug free,也可以全部过Test case。
3. 大厂题目越来越难,但是我想进怎么办?看到Hard题就怵
Hard题在LC大概有三类:1. 需要巨长(超过40行的code)或者复杂思路解决的。我觉得基本不会考,因为面试官考你之前,他/她起码应该很熟这个题目吧。如果面试官自己都不是很清楚,你在那解题,他岂不很慌,因为摸不清你的思路他没法写Feedback啊;2. 脑筋急转弯,比如LC那道猪喝水测试有毒的题目,思路有了,码起来非常简单。但是这个面试官也要自问下,这个题目怎么考察Coding能力啊?解出来怎么写feedback啊,解不出来怎么引导他啊,给什么样的Hint可以让其吸收啊。除非你很不幸,就是遇到一个森精病,就是考你脑筋急转弯;3. Hard题目其难点在解题切入点,这类我认为是最容易考的,Code并非很长,但是只要知道解题思路,就可以实现。比如Serialize and Deserialize 各种Tree,本质就是两个DFS。
以Google为例。我是在Google电面因为一道Hard题目被挂掉之后,发奋图强,刷了一些Hard题目。最近看帖发现大家觉得Google面试难度大增,觉得Google题库摸不清楚。但是我感觉,还是LC刷的不够多,大部分题目还是在LC范围里的。碰到一个Googler,拿自己想出来的新题去考,这个概率比较低。大部分Googler还是要干本职工作的吧,不是在Google专门出LC题的。如果你定下目标就是要去Google,何不多刷一下LC hard题。当然,要跳过那些变态题目(比如脑筋急转弯)
4. 临近面试了,题目还没刷多少?
这个时候就多刷高频吧。Leetcode就买个会员或者合伙买个会员吧,投资肯定有回报的。
Behavior Questions
真的感谢亚麻得14条,准备了亚麻得14条,其他所有的公司的BQ都不怕了。建议大家是不是面亚麻,都好好看看他的14条。地里的大神们都总结的头头是道,可以参考过来人的经验,还有Youtube上有个叫Dan的人总结的如何回答亚麻14条。
|