摄像头设计工程师面试技巧
System design interview questions separate junior and senior engineering roles. They’re difficult to prepare for because, unlike algorithm questions, they don’t boil down to a handful of prescribed patterns. Instead, they draw upon a vast ocean of technical knowledge and experience. Couple that with the stress of a high pressure interview, and it’s not surprising that many of us have watched a dream job die upon the dreaded whiteboard.
系统设计面试问题由初级和高级工程职位分开。 它们很难准备,因为与算法问题不同,它们没有归结为少数规定的模式。 相反,他们利用了广阔的技术知识和经验。 再加上高压面试的压力,不足为奇的是,我们当中许多人都看到梦 a 以求的工作在可怕的白板上死亡。
Last summer I struggled with system design, and it cost me job opportunities at companies like Amazon and Google. Finally, I landed a job at a promising startup, only to lose it less than a year later when Covid hit. However, this time I was determined to prevail. Here are five concrete tips I found that will prepare you for your next design session.
去年夏天,我在系统设计方面苦苦挣扎,这使我失去了在亚马逊和谷歌等公司的工作机会。 最终,我在一家有前途的初创公司找到了一份工作,但在Covid成立不到一年后,我就失去了工作。 但是,这次我决心胜出。 我发现了以下五个具体技巧,这些技巧将为您的下一个设计会议做好准备。
1.收集在线资源 (1. Gather Online Resources)
Algorithm prep resources outnumber those of system design, but the balance is shifting. Dedicated programs have popped up in the last two years and have replaced the need to endlessly troll through YouTube clips.
算法准备资源超过了系统设计的资源,但是这种平衡正在发生变化。 在过去的两年中,出现了专用程序,并取代了无休止地浏览YouTube剪辑的需求。
付费程序 (Paid Programs)
- Systems Expert is the paid resource I’ve used. It’s made by an ex-Googler and focuses on video content within a mock-interview format. The program also teaches fundamental concepts like caching, sharding and consensus protocols. To get a flavor of Systems Expert, check out this free video from one of the lessons. 系统专家是我使用过的有偿资源。 它由前Googler制作,专注于模拟面试格式的视频内容。 该程序还教授基本概念,例如缓存,分片和共识协议。 要了解Systems Expert的风格,请从其中一堂课中观看此免费视频。
2. Grokking the System Design Interview is another course I often hear about. It has more free lessons than Systems Expert and is cheaper, but seems to put an emphasis on text-based lessons rather than videos.
2. 讨论系统设计面试是我经常听到的另一门课程。 它比Systems Expert提供更多的免费课程 ,并且价格便宜,但似乎强调基于文本的课程而不是视频。
3. Finally, consider paying for a professional mock interview. Resources here are harder to come by, but Pramp offers it, and its coming soon to InterviewBit.
3.最后,考虑支付专业模拟面试的费用。 这里的资源很难获得,但是Pramp提供了它,并且很快就将它提供给InterviewBit 。
Pro Tip: Coupon codes for these programs are usually available.
专家提示:通常可以使用这些程序的优惠券代码。
免费资源 (Free Resources)
There are some incredibly solid YouTube channels devoted to system design. My favorite channel is TechDummies. Watch a few minutes of the video below just to get a flavor. This guy pumps out dozens of high quality videos that, honestly, I would pay good money for.
有一些不可思议的YouTube频道致力于系统设计。 我最喜欢的频道是TechDummies 。 观看下面的几分钟视频只是为了尝一尝。 这个家伙抽出了几十个高质量的视频,说实话,我会为此花钱。
Other really high quality channels include: Guarav Sen, and Success in Tech.
其他真正优质的渠道包括: Guarav Sen和Tech in Success 。
If you prefer to get your hands dirty, try out the free System Design tracks on LeetCode and InterviewBit.
如果您想弄脏手,请尝试在LeetCode和InterviewBit上进行免费的系统设计。
Pro Tip: Watch videos on 1.5 or even 2X speed to save time.
专家提示:以1.5甚至2倍的速度观看视频,以节省时间。
2.使用Miro这样的在线白板 (2. Use an Online Whiteboard like Miro)
For a long time I studied using pencil and paper. Technically I am a doctor, so my handwriting obviously sucks. Revisiting such notes proved difficult, as it’s nearly impossible to cram system diagrams onto standard 8.5' x 11' paper.
很长一段时间我都在学习用铅笔和纸。 从技术上讲,我是一名医生,所以我的笔迹显然很烂。 事实证明,重新访问这些注释非常困难,因为几乎不可能将系统图填充到标准的8.5'x 11'纸上。
Instead, try out Miro , a free white boarding site for individuals and small teams. Miro is great because you can paste images, for example screenshots from aforementioned YouTube videos, and easily annotate them.
相反,可以尝试Miro ,这是一个免费的供个人和小型团队使用的白板网站。 Miro很棒,因为您可以粘贴图像,例如上述YouTube视频的屏幕截图,并轻松对其进行注释。
3.寻找面试好友 (3. Find an Interview Buddy)
A buddy of mine was also in the job market recently and by happenstance we had both purchased Systems Expert. We’d only started to use the program, so there were plenty of problems the other hadn’t seen. We decided to each study a separate problem and then mock interview the other person. This proved tremendously helpful. Playing the role of interviewer means being prepared for anticipated pitfalls and clarifying questions, which requires focused preparation. Meanwhile, the interviewee doesn’t feel the same pressure and stress found in the actual interview. It’s relieving to be able to say “man I have no freaking idea” without bricking the entire interview!
我的一个伙伴最近也进入了就业市场,并且碰巧我们都购买了Systems Expert。 我们只是开始使用该程序,因此存在许多其他未曾见过的问题。 我们决定分别研究一个单独的问题,然后模拟面试另一个人。 事实证明,这很有帮助。 扮演面试官的角色意味着要为预期的陷阱做好准备并澄清问题,这需要有针对性的准备。 同时,受访者不会感受到实际采访中遇到的压力和压力。 可以不说整个采访就说“老兄,我不怕老婆”真是令人欣慰!
If no peers are available, consider paid interview services like Pramp. Additionally, a handful of Twitch streamers solve software problems collaboratively and could form the basis for such a relationship.
如果没有同龄人,请考虑使用Pramp之类的付费面试服务。 另外,少数Twitch流媒体可以协作解决软件问题,并且可以构成这种关系的基础。
4.坚持模板 (4. Stick to a Template)
A great way to start a system design question is by referencing a script or template. Here is one I’ve built in Miro:
引发系统设计问题的一种好方法是引用脚本或模板。 这是我在Miro中建立的一个:
There are seven sections:
共有七个部分:
Clarifying Questions
澄清问题
Functional Requirements: ie. what does the app do?
功能要求:即 该应用程序做什么?
Non-Functional Requirements: scalability, latency, availability etc…
非功能需求 :可伸缩性,延迟,可用性等…
API/Entities/Data Model
API /实体/数据模型
Flow List: step by step of how features work
流程清单 :逐步介绍功能的工作方式
Architecture: draw system components
体系结构 :绘制系统组件
Todos: anything that comes up that we might come back to later
待办事项 :发生的任何事情,我们可能稍后再讲
I’ve literally copied this into CodePair during actual job interviews (with my interviewer’s permission), and it helps tremendously. Foremost, it will gauge what is important to the interviewer. They may say “let’s focus on the API first” or “don’t worry about scale just yet”. Furthermore, it gives you a moment to breathe and remember the big picture. For example, did you ask enough clarifying questions? Did you think about the data model carefully? It may not be necessary to use all of these sections, but just having them handy demonstrates a level of preparedness and provides a backstop.
我已经在实际的工作面试中(经我的面试官许可)将其字面意义上复制到了CodePair中,这很有帮助。 首先,它将衡量对面试官重要的事情。 他们可能会说“让我们先关注API”或“现在不必担心扩展”。 此外,它使您有时间喘口气并记住大局。 例如,您是否提出了足够的澄清问题? 您是否仔细考虑过数据模型? 可能没有必要使用所有这些部分,而仅使它们方便就说明了准备水平并提供了支持。
Pro Tip: Most interview platforms disallow for copy/paste, so be ready to transcribe the template.
专家提示:大多数采访平台都不允许复制/粘贴,因此请准备转录模板。
5.拥有面试平台 (5. Own the Interview Platform)
One of the few benefits of the Covid world is that system design interviews no longer happen on actual whiteboards. Instead they’re conducted online through platforms like CodePair and Google Docs (sigh). This actually gives the interviewee more ways to come to the interview prepared.
Covid世界的少数好处之一是系统设计访谈不再发生在实际的白板上。 相反,它们是通过CodePair和Google Docs等平台在线进行的(叹气)。 这实际上为受访者提供了更多的方式来准备采访。
First, ask the hiring manager about the platform and question format. Try to glean as much possible — for example, how many questions to expect? How much time is allotted? etc… Next, go onto the platform ahead of time and solve some actual problems. The whiteboard tooling on these platforms usually sucks, so getting familiar with it is essential; otherwise half of the interview will be fumbling around.
首先,向招聘经理询问平台和问题格式。 尝试收集尽可能多的信息-例如,期望多少个问题? 分配了多少时间? 等等...接下来,提前进入平台并解决一些实际问题。 这些平台上的白板工具通常很烂,因此熟悉它是必不可少的。 否则,一半的采访将变得混乱。
Login to the interview a few minutes early and copy over your template (see last section). If the interviewer has a problem with this, they can simply erase it. Have your Miro scratchpad up and ready for reference. It’s better to ask if using reference materials is allowed, but frankly they can’t stop you.
请在几分钟前登录到采访并复制您的模板(请参阅最后一部分)。 如果面试官对此有疑问,他们可以简单地将其删除。 准备好Miro暂存器,以备参考。 最好询问是否允许使用参考资料,但坦率地说,它们不能阻止您。
Being prepared and comfortable with the platform is essential. I even had the experience where the CodePair session failed, but I was able to salvage the interview by sharing my Miro board and solving the problem there instead. Having this contingency in place surely left a favorable impression on my interviewer, and you never know which small detail may ultimately tip the scales in your favor.
准备并适应平台至关重要。 我什至有在CodePair会话失败的经历,但是我可以通过分享我的Miro董事会并在那里解决问题来挽救这次采访。 有了这种偶然性,肯定会给我的面试官以良好的印象,而且您永远都不知道哪个小细节最终会使您的青睐变得更小。
Pro Tip: Invest in a decent webcam (I use this one) and avoid a bad first impression replete with mic issues and grainy video.
专家提示:投资一个像样的网络摄像头( 我使用了这个 摄像头 ),避免出现充斥着麦克风问题和颗粒状视频的不良第一印象。
Have any tips or suggestions? Leave a comment.
有什么提示或建议吗? 发表评论。
翻译自: https://levelup.gitconnected.com/5-tips-for-system-design-interview-preparation-90df3616fe2
摄像头设计工程师面试技巧