我如何不通过国旗采访

Three years ago there was an article titled “I interviewed at five top companies in Silicon Valley in five days, and luckily got five job offers” that went viral on Medium. While the author’s success story made nailing down a job offer appear to be a piece of cake, the reality for an average Joe like me was harsh: when I went out to interview at four of the famous companies in the Silicon Valley, a.k.a. the FLAG (Facebook, LinkedIn, Amazon and Google), I failed all of them. Receiving rejection emails one after another is not a pleasant experience. But looking back, I think the lessons I learned during these failures were equally valuable and may provide some insights for people especially those who are planning a mid-career transition as I was four years ago.

三年前,有一篇文章标题为“我在五天内采访了硅谷的五家顶级公司,幸运的是得到了五份工作机会” ,该文章在Medium上广为流传。 尽管作者的成功故事使工作机会难以置信,但像我这样的普通乔的现实却是严峻的:当我出外采访硅谷的四家著名公司(又名FLAG)时 (Facebook,LinkedIn,亚马逊和Google),我都失败了。 接连收到拒绝电子邮件不是一种愉快的经历。 但是回想起来,我认为我在这些失败中所汲取的教训同样有价值,并且可以为人们提供一些见识,尤其是那些像我四年前一样正计划进入职业中期过渡的人们。

走出舒适区 (Getting Out of Comfort Zone)

Like many software engineers in the Silicon Valley, shortly after I received my Ph.D. degree in computer engineering I joined one of the biggest companies in my field developing enterprise software for the semiconductor industry. I worked hard and climbed my career ladder to a mid-level engineering position in the company after a few years. At the time, I built up a deep understanding of the technical stack, had a good work-life balance and had no immediate urge to switch job.

就像我在获得博士学位后不久,硅谷的许多软件工程师一样。 我拥有计算机工程学士学位,并加入了该领域最大的公司之一,为半导体行业开发企业软件。 几年后,我努力工作,并将自己的职业阶梯提升到公司的中级工程职位。 当时,我对技术体系有了深入的了解,在工作与生活之间取得了良好的平衡,并且没有立即转换工作的冲动。

Then one day, a junior engineer in the team left for some social network company in the Valley and a few days later another colleague we frequently met at lunch also jumped ship. It was during the booming days of the Internet “shared economy” and the tech newspapers were full of successful IPOs and unicorns (pre-IPO company valued over one billion) stories.

一天,团队中的一名初级工程师前往硅谷的一家社交网络公司,几天后,我们经常在午餐时间见面的另一位同事也跳船了。 那是在互联网“共享经济”蓬勃发展的日子里,科技报纸充斥着成功的IPO和独角兽(估值超过10亿美元的IPO前公司)的故事。

Curiosity (or peer pressure) drove me to search for some job requirements in these hot internet companies. What startled me was that I found I lack many of the desired technical skills, some of which I haven’t even heard of.

好奇心(或同伴压力)驱使我寻找这些热门互联网公司的一些工作要求。 令我感到震惊的是,我发现我缺乏许多理想的技术技能,其中一些我甚至都没有听说过。

I felt something was not right: I am a software engineer but the software industry outside of my domain seems to be a foreign place. There were only a handful of companies in the EDA software industry and if I lost my current job one day I would end up with very limited choices given my skillset. On the positive side, I was pretty good at data structure and algorithms and these are the basic requirements to secure an interview at many software companies. So I thought to myself, it can’t be too bad because after all coding is what I do everyday.

我觉得有些不对劲:我是一名软件工程师,但是我所擅长的领域之外的软件行业似乎很陌生。 EDA软件行业中只有少数几家公司,如果有一天我失去目前的工作,鉴于我的技能,我最终只能做出非常有限的选择。 从积极的方面来说,我非常擅长数据结构和算法,这些是确保许多软件公司面试的基本要求。 所以我对自己想,这不是太糟糕,因为毕竟编码是我每天要做的。

滑铁卢战役 (Battle(s) of Waterloo)

After talking to recruiters from several companies, I secured four technical interviews at the four stellar companies at the time, namely Facebook, LinkedIn, Amazon and Google, known as the FLAG. The outcome couldn’t be worse: I literally failed ALL of them.

在与几家公司的招聘人员交谈之后,我在当时的四家一流公司(即Facebook,LinkedIn,亚马逊和Google)进行了四次技术面试,这些公司被称为FLAG 。 结果再好不过了:我在所有方面都失败了。

The fiasco stories were very similar. The interviewer gave me a set of problems to solve within 20~30 minutes. None of the problems is like the one I solve during my day-to-day work. I tried to come up with a solution on the spot. However, it either took too long to finalize the algorithm that I didn’t have enough time to finish the coding, or the algorithm I came up with did not have the best runtime or memory complexity. After the first interview, I was actually feeling a little bit optimistic because I thought I managed to solve the problem albeit with some missing pieces. But this optimism faded away soon after I received the rejection emails from recruiters one after another .

惨败的故事非常相似。 面试官给了我一系列问题,要在20到30分钟内解决。 这些问题都没有我在日常工作中解决的问题。 我试图当场提出解决方案。 但是,要么花很长时间才能完成我没有足够时间来完成编码的算法,要么我想出的算法没有最佳的运行时或内存复杂性。 第一次面试后,我实际上感到有点乐观,因为我认为尽管有一些遗漏,但我设法解决了这个问题。 但是当我接连收到招聘者的拒绝邮件后,这种乐观情绪消失了。

得到教训 (Lessons Learned)

After a round of unsuccessful interviews, I decided to stop to look back and summarize the lessons I learned from these failures.

经过一轮不成功的采访之后,我决定停下来回顾并总结从这些失败中学到的教训。

#1: Technical interview is not (only) about technical experience from work. What you know at work does not guarantee you can perform well in an interview even if the job requirement is very similar to your background. Preparation is always necessary. On the other hand, some considered good practice at work may not apply to coding interviews. For example, at work we may prefer a heuristic algorithm with better readability to an optimal but complicated algorithm for some non-timing-critical segments of the code. This practice, however, is not wanted in a coding interview. The interviewers would expect you to come up with the most runtime/memory efficient algorithm, if possible.

#1:技术面试并非(仅)关于工作中的技术经验。 即使工作要求与您的背景非常相似,您所知道的也不能保证您在面试中表现良好。 准备总是必要的。 另一方面,一些公认的工作良好实践可能不适用于编码面试。 例如,在工作中,对于某些非时序关键的代码段,我们可能更喜欢具有更好可读性的启发式算法,而不是最优但复杂的算法。 但是,在编码采访中不需要这种做法。 面试官希望您尽可能提出运行时间/内存效率最高的算法。

#2: Interviewers do not assume you know technology XYZ just because you had been working on it for a long time. This is especially true for mid-level engineers. The interviewers sometimes may have even less experience than you do. Do not assume that they know what you know. Always speak out and tell the interviewers your thoughts to some problems even if something seems quite obvious from your perspective.

#2:面试官不认为您知道XYZ技术就是因为您已经从事了很长时间。 对于中级工程师而言尤其如此。 面试官有时的经验可能比您少。 不要以为他们知道您所知道的。 始终说出来,并告诉面试官您对一些问题的想法,即使从您的角度看似乎很明显。

#3: Do not over complicate your solution. An interview is an interview. Most of the coding interviews require you to complete within 30 minutes or less. Do not treat them as real-world problems you solve at work. If you found you need to apply some very complicated data structure or algorithm, rethink about your solution.

#3:不要过度复杂化您的解决方案。 面试是面试。 大多数编码面试要求您在30分钟或更短的时间内完成。 不要将它们视为您在工作中解决的现实问题。 如果发现需要应用一些非常复杂的数据结构或算法,请重新考虑您的解决方案。

#4: Coding interview is very different from coding at work. Coding even under a tight deadline at your work is very different from coding in a 30- minute interview session. No matter how hard it is, the former gives you the opportunity to concentrate and carry on your thoughts in a deep state; the latter is very dynamic and distracting and requires you to work within a fragmented time period.

#4:编码面试与工作编码大不相同。 甚至在紧迫的工作期限内进行编码也不同于在30分钟的采访中进行编码。 无论前者有多艰辛,前者都使您有机会集中精力并深入思考。 后者非常动态且分散注意力,需要您在零散的时间内工作。

#5: If you find yourself know almost everything at work, be alert. This final lesson is the most alarming but often overlooked one for mid-level software engineers. The technology world is moving fast. A software engineer’s job is not like a surgeon. If you feel you can handle most problems with ease at work, it does not mean you become the master in the domain; most of time, it means it’s time to get out of the comfort zone and expand your horizon.

#5:如果发现自己几乎了解工作中的所有内容,请保持警惕。 对于中级软件工程师而言,这最后一课是最令人震惊的,但常常被忽略。 技术世界发展Swift。 软件工程师的工作不像外科医生。 如果您认为自己可以轻松地处理大多数问题,并不表示您已成为该领域的专家。 大多数时候,这意味着是时候离开舒适区域并扩大视野了。

后视 (Hindsights)

Due to the recent recession in the technology job market, I see many of my friends with abundant work experience are starting to look for new jobs in the Valley. I feel obligatory to share some of my hindsights regarding interview and career transition. Nonetheless, these are only my personal insights and may differ from person to person so I hesitate to call them advices.

由于最近技术工作市场的衰退,我看到许多有丰富工作经验的朋友开始在硅谷寻找新工作。 我有义务分享我关于面试和职业过渡的一些见解。 尽管如此,这些只是我的个人见解,可能因人而异,因此我不愿意将其称为建议。

#1: Practice your coding within a time window shorter than a real interview. Technical interview is a very intellectually demanding yet highly ad-hoc process. We are often put under very high pressure to solve problems that we may be able to handle during our normal routine. It is arguable the current coding interview is the best process to judge a candidate’s capability but it’s also unavoidable in most software companies. I found the best way to tackle coding interview is to encounter it many times in a real scenario. Timebox your coding practice with even more stringent time than a real interview gives you higher (artificial) pressure and it may help you get extra slack during a real interview under the real pressure. You may also try practicing interview with real people at some website such as interviewing.io

#1:在比真实面试短的时间范围内练习编码。 技术面试是一个智力要求很高但非常特殊的过程。 我们通常承受很大的压力来解决我们在正常例行程序中可能能够解决的问题。 可以说,当前的编码面试是判断候选人能力的最佳过程,但这在大多数软件公司中也是不可避免的。 我发现解决编码面试的最佳方法是在实际场景中多次遇到。 与真正的面试相比,用更严格的时间来安排编码实践的时间会给您带来更高的(人为)压力,并且可能会帮助您在真正的面试中承受更大的压力。 您也可以尝试在某些网站上与真实的人进行面试,例如: viewings.io

#2: Wear the interviewers’ hat. When possible, try to be an interviewer at your current company. It not only helps the hiring at your company but also helps yourself to understand what an interviewer is looking for and avoid those mistakes that you identified from your interviewees. You may even ask questions that you failed to answer at other places and see how your interviewee is approaching them (given that you’ve already found out the solution yourself).

#2:戴上面试官的帽子。 如果可能,尝试成为您当前公司的面试官。 它不仅可以帮助您的公司招聘员工,还可以帮助您了解面试官在寻找什么,并避免您从面试官中发现的那些错误。 您甚至可能会问其他地方未能回答的问题,并查看受访者如何与他们联系(假设您已经自己找到了解决方案)。

#3: Rehearse your story and prepare for a good question. Too often we may focus much attention on preparing for the technical interviews but less time on marketing oneself. After many rounds of interviews, I realized a well-prepared personal statement can help you succeed even in a technical interview for two reasons: (1) It helps you build up your confidence when you can smoothly talk about your projects and technical experience before moving to the coding round (2) it helps to give interviewer a positive bias when you can clearly and logically describe your work experience or ask a few smart questions. After all, there is a large portion of subjective judgement even in a technical interview.

#3:演练您的故事并准备一个好问题。 我们经常会把很多注意力集中在为技术面试做准备上,而将很少的时间花在营销自己上。 经过多轮采访,我意识到准备充分的个人陈述即使在技术面试中也能帮助您成功,原因有两个:(1)当您在搬家之前能够顺利地谈论您的项目和技术经验时,它可以帮助您树立信心对于编码回合(2),当您可以清晰,逻辑地描述您的工作经验或提出一些巧妙的问题时,它有助于使面试官具有积极的偏见。 毕竟,即使在技术面试中,也有很大一部分主观判断。

#4: Read technology blogs from other companies and/or develop a small project outside of work. When working in a big company, there are often many well built tools and foundations. Although this creates a lot of convenience and boosts individual productivity, we often become too complacent using these tools without understanding the technical stacks behind them. This becomes troublesome when we start interviewing outside of the company. To overcome or mitigate such pitfall, I found it helpful to regularly read technology blogs from other companies or even the competitors. If time permitting, starting a toy project from scratch will quickly make yourself aware of the necessary new skills to learn.

#4:阅读其他公司的技术博客和/或在工作之外开发一个小项目。 在大公司工作时,通常会有许多精心构建的工具和基础。 尽管这会带来很多便利,并提高了个人生产率,但是我们经常在使用这些工具时过于自满,而不了解其背后的技术堆栈。 当我们开始在公司外部面试时,这变得很麻烦。 为了克服或减轻这种陷阱,我发现定期阅读其他公司甚至竞争对手的技术博客很有帮助。 如果时间允许,从头开始玩具项目将使您很快意识到要学习的必要新技能。

#6: Interview every two years. I took this advice from an insightful podcast on career strategy given by James Whittaker. This advice by no means suggests one to switch jobs every two years; instead it helps you realize the value of the skillsets you gain at your current job and your real value to your current employer. At times, it can even help you to increase your compensation or career level at your current employer.

#6:每两年面试一次。 我从詹姆斯·惠特克 ( James Whittaker)关于职业战略的有见地的播客中采纳了这一建议。 这一建议绝非建议每两年换一次工作。 相反,它可以帮助您实现在当前工作中获得的技能集的价值以及对当前雇主的实际价值。 有时,它甚至可以帮助您提高当前雇主的薪酬或职业水平。

#7: Re-invest your career capital to guide your next career search. This insight comes from a book So Good They Can’t Ignore You that I read recently. In the book, the author argues that career searching based on one’s passion is very deceiving; instead, you should think about your career capital, i.e. skills that people will pay you for them, and invest your career capital to help you move to your dream job. In my case, I gained a lot of experience in semiconductor design and automation, so I realized that my new career should be able to leverage these skills as much as possible. After some attempts, I therefore decided to turn my career towards the area of deep learning framework and accelerators where the performance requirement of ML/AI is nicely fit with compiler technology and hardware-software codesign.

#7:重新投资您的职业资本,以指导您的下一个职业搜寻。 这个见解来自我最近读的一本书《好人,他们不能忽略你》 。 在书中,作者认为,基于一个人的激情进行的职业搜索非常具有欺骗性。 相反,您应该考虑自己的职业资本,即人们会为您付钱的技能,并投资您的职业资本来帮助您迈向理想的工作。 就我而言,我在半导体设计和自动化方面积累了很多经验,因此我意识到我的新职业应该能够尽可能地利用这些技能。 经过一些尝试,因此我决定将我的职业转向深度学习框架和加速器领域,在该领域中ML / AI的性能要求非常适合编译器技术和硬件软件代码签名。

有志者,事竟成 (Where there is a will there is a way)

Getting out of one’s comfort zone is never easy. Looking back, I was once very frustrated after failing all the FLAG interviews. My self-esteem reached an all-time low and it even impacted my performance and judgement at work.

走出舒适区绝非易事。 回顾过去,所有FLAG面试都没有通过,我曾经感到非常沮丧。 我的自尊心跌至历史最低点,甚至影响了我的工作表现和判断力。

However, once out of the comfort zone, the career prospects become much clearer to me. I feel I learned a lot more during the time I was busy preparing for interviews and working a full-time job than I was comfortably handling my daily routine work; on the other hand, I also learned better time management and became more efficient at work.

但是,一旦离开舒适区,我的职业前景就变得更加清晰。 我感到自己在忙于准备面试和全职工作期间学到了很多东西,而不是轻松地处理日常工作。 另一方面,我还学会了更好的时间管理,并提高了工作效率。

Keeping pace at work and preparing for interviews is already tough enough. So be proud of yourself even if you failed once or twice or even more. Keep learning and being open minded, your career life can be longer and very exciting.

保持工作节奏并准备面试已经足够艰难。 因此,即使一次或两次甚至更多次失败,也要为自己感到骄傲。 继续学习并保持开放的态度,您的职业生涯可能会更长且非常令人兴奋。

升级编码 (Level Up Coding)

Thanks for being a part of our community! Subscribe to our YouTube channel or join the Skilled.dev coding interview course.

感谢您加入我们的社区! 订阅我们的YouTube频道或参加Skilled.dev编码面试课程

翻译自: https://levelup.gitconnected.com/how-i-failed-the-flag-interviews-7c81cc6a82e0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值