面试题字符集和编码区别
A recruiter calls you for a position with your dream company. You get extremely excited and ask about their recruiting process. He replies saying “Its nothing big, you will have 5 coding rounds with our senior tech team, just the standard whiteboard coding round”. You blatantly lie and end the conversation by saying you love your current job and will try again at a later point in time. If you can relate to this situation please keep reading.
招聘人员给您打电话,要求您在理想公司任职。 您会非常兴奋,并询问他们的招聘过程。 他回答说:“没什么大不了的,您将与我们的高级技术团队进行5轮编码,只有标准的白板编码轮”。 您大胆地说谎并结束谈话,说您爱自己当前的工作,并且稍后会再试一次。 如果您可以解决这种情况,请继续阅读。
I have met so many top class software developers who are smart, resourceful, reliable and know the knack of getting the job done despite a lot of dependencies. But the mere thought of whiteboard coding interviews strikes fear in their hearts. Most of these people believe that they can never crack such type of interviews and it is only for the rockstar kids who do competitive programming from age 12. Nothing is farther from the truth. I would like to bust such myths and show you a clear path to clearing these interviews.
我遇到了这么多顶级软件开发人员,他们聪明,足智多谋,可靠,并且尽管有很多依赖性,却知道完成工作的诀窍。 但是白板编码面试的想法在他们的心中引起了恐惧。 这些人中的大多数人都认为,他们永远也无法完成这种类型的采访,而且仅适用于从12岁开始进行竞争性编程的摇滚明星孩子。 我想破掉这些神话,并向您展示清除这些采访的明确途径。
为什么呢 (Why ?)
First, we need to understand why companies conduct these types of interviews.
首先,我们需要了解为什么公司进行此类采访。
Strong Filter to get good employees — The people who clear coding interviews can be of two types. 1. The extremely smart people who do not need any preparation and can clear such interviews on the fly. The people who take time to prepare and practice DS and algorithms and clear the interviews. The former is an extremely smart person and the latter is a person who can get the job done through perseverance and both of these are the hallmarks of a good employee.
获得优秀员工的强大过滤器-清除编码面试的人员可以分为两种。 1.非常聪明的人,不需要任何准备,可以即时清除此类采访。 花时间准备和练习DS和算法并清除面试的人员。 前者是一个非常聪明的人,而后者是一个能够通过毅力完成工作的人,而这两者都是优秀员工的标志。
Clear Signals—Knowledge based interviews are notorious for giving ambiguous signals. It is very hard to judge a candidate based on his knowledge of an obscure feature of some technology. But in coding interviews, in 1 hour you get a clear signal regarding the candidate. Based on the performance in the coding round, you can easily make a hire/no-hire call.
基于清晰的信号-知识面试是臭名昭著的给予模棱两可的信号。 很难根据候选人对某种技术的晦涩特征的了解来判断候选人。 但是在编码面试中,在1小时内您会清楚地了解候选人。 根据编码回合的表现,您可以轻松进行录用/不录用呼叫。
Indicator of skills — Most of the companies which conduct these interviews need people who can work on any tech stack and cutting-edge problems. So they need an objective way to determine the skills of a candidate irrespective of the stellar resume(most people who apply to such companies have a stellar resume). Coding interviews test the problem-solving skills of a candidate which arguably indicates his ability to tackle new problems.
技能指标-进行这些采访的大多数公司都需要能够处理任何技术堆栈和前沿问题的人员。 因此,他们需要一种客观的方法来确定候选人的技能,而不论其履历表如何(大多数申请此类公司的人都拥有履历表)。 编码面试测试了候选人的解决问题的能力,可以说这表明了他解决新问题的能力。
Experience independent — Coding interviews suits people of all experience levels. Anyone who wants to join such companies is expected to have a working knowledge of data structures and algorithms and thus it can be used as an objective measure to judge the candidates across levels.
独立的经验-编码访谈适合所有经验水平的人。 希望加入此类公司的任何人都具有数据结构和算法的工作知识,因此可以用作客观判断各个级别候选人的方法。
怎么样? (How?)
Let’s see how to go about preparing for these interviews.
让我们看看如何准备这些面试。
选择一种语言 (Pick a language)
The language you choose does not matter! As long as you are comfortable with coding in the chosen language and it has support for data structures and algos(STL, Collections) you are good to go.
您选择的语言没关系! 只要您对使用所选语言进行编码感到满意,并且它支持数据结构和算法(STL,Collections),那么您就很好了。
Gotcha — The biggest mistake I see people make here is picking a fancy language to impress the interviewer and struggle with implementation. It is like digging your own grave. The only thing that matters is how you can implement a solution using the language of your choice and not the fanciness of the language.
陷阱–我看到人们在这里犯下的最大错误是,选择了一种奇特的语言来打动面试官,并为实施而挣扎。 这就像在挖自己的坟墓。 唯一重要的是如何使用所选语言而不是该语言的奇特性来实现解决方案。
利用您选择的语言 (Exploit the language you picked)
You need to be extremely comfortable using the inbuilt DS and Algos in the language you picked. It can be STL or Collections or anything else. Command over these allows you to focus on solving the problem by picking and using the right constructs and churn out code fast in an interview setting.
您需要以选择的语言使用内置的DS和Algos时要非常舒适。 它可以是STL或Collections或其他任何东西。 通过使用这些命令,您可以通过选择和使用正确的结构来集中精力解决问题,并在面试环境中快速编写代码。
Timeline: 1 week.
时间表:1周。
熟悉理论 (Get familiar with theory)
There are only a handful of things you need to know for coding interviews.
编写采访采访时,您只需要了解几件事。
- DS — Array, Stack, Queue, Linked List, Tree, Hash, Graph DS —数组,堆栈,队列,链接列表,树,哈希,图
- Algos — Searching, sorting, BFS, DFS, Topological sort 算法-搜索,排序,BFS,DFS,拓扑排序
The things you need to understand are the different implementations, time and space complexities and when to/not-to use them. I would highly recommend The algorithm design manual for this purpose.
您需要了解的是不同的实现,时间和空间的复杂性以及何时使用/不使用它们。 为此,我强烈推荐算法设计手册 。
Timeline : 2-3 weeks based on previous knowledge.
时间表:根据先前的知识需要2-3周。
Gotcha — Do not skip time and space complexities. This is one of the biggest expectations in a coding interview. You are expected to analyse and consider tradeoffs between different implementations and to do that you need to understand the time/space complexities for all the things.
注意-不要跳过时间和空间的复杂性。 这是编程采访中最大的期望之一。 您将需要分析和考虑不同实现之间的权衡,并且需要了解所有事物的时间/空间复杂性。
动手实践 (Get Hands-on)
Now that you have a solid foundation of DS and algos you can jump into solving problems. You can use Leetcode and InterviewBit for this purpose. They both allow you to solve problems grouped by type and have a wide array of problems. Do not concentrate on quantity but quality. Try to solve the problem on your own and if you notice patterns among different problems note in down and use these notes to refer again later. If you prefer a book for problems you can use Cracking the coding interview or Data Structures and Algorithms Made Easy.
既然您已经拥有DS和算法的坚实基础,就可以跳入解决问题的过程。 为此 ,您可以使用Leetcode和InterviewBit 。 它们都可以让您解决按类型分组的问题,并且有各种各样的问题。 不要只关注数量,而要关注质量 。 尝试自己解决问题,如果您注意到不同问题之间的模式,请记下这些注释,并在以后再次使用这些注释。 如果您喜欢一本有问题的书,则可以使用《 破解编码面试》或《轻松实现数据结构和算法》 。
Timeline : 8–12 weeks.
时间表:8-12周。
Gotcha — The worst thing you can do here is trying to learn the problems by reading from somewhere else once you hit a roadblock. However tempting it may be, please avoid it. Do it only after trying for more than 2 hours. It gives you the satisfaction of learning something but, in reality, you cannot solve it when you encounter it somewhere.
陷阱–在这里遇到的最糟糕的事情是,一旦遇到障碍,便要通过从其他地方阅读来学习问题。 不管有多诱人,请避免使用它。 仅在尝试2小时以上后再进行操作。 它使您满意地学习某些东西,但实际上,当您在某处遇到它时无法解决它。
模拟面试 (Mock interviews)
If you had followed the above steps correctly, you would be familiar with major types of problems and would be able to solve most problems you encounter in the interview. But whatever you have done till now and the interview setting is totally different. So to get familiar with the interview setting try practicing mock interviews. You can use Pramp for free mock interviews with peers. If you want to have a mock interview by professional and detailed feedback please get in touch.
如果您正确地遵循了上述步骤,您将熟悉主要类型的问题,并且能够解决您在面试中遇到的大多数问题。 但是,到目前为止您所做的一切以及面试的设置都完全不同。 因此,要熟悉采访设置,请尝试练习模拟采访。 您可以使用Pramp与同行进行免费的模拟采访。 如果您想通过专业且详细的反馈进行模拟面试,请与我们取得联系 。
This is basically a step by step recipe to crack the interviews. I followed the same path and most of the people I know also have done the same. Its just hard work and has nothing to do with previous knowledge or smartness.
从根本上讲,这是破解面试的逐步方法。 我走了同样的路,我认识的大多数人也都做过同样的事情。 它只是艰苦的工作,与以前的知识或聪明程度无关。
下一步 (Next steps)
I am planning to write a series of posts discussing various topics like Stack, Queue, Trees, etc. one by one and dissecting the various types of problems in each of those. Please follow me to get notified as soon as they are published.
我打算撰写一系列文章,逐个讨论各种主题,例如堆栈,队列,树等,并逐一剖析各种类型的问题。 请关注我,以便它们发布后立即得到通知。
If you liked this story, feel free to reach out to me at https://kaizencoder.com/contact.
如果您喜欢这个故事,请随时通过 https://kaizencoder.com/contact 与我联系 。
翻译自: https://www.freecodecamp.org/news/the-one-thing-between-you-and-your-dream-job-coding-interview/
面试题字符集和编码区别