为编码面试做准备的固执己见的指南

为编码面试做准备的固执己见的指南

原文:https://medium.com/hackernoon/an-opinionated-guide-to-preparing-for-coding-interviews-406f5275939e

亚马逊前 SDE 的沉思

同样的循环算法问题,一些谜题穿插其中,以及对你在面试中表现的过度强调。

许多人认为技术招聘已经破产

但你现在担心的不是这个,对吧?在校园实习前大约两个月,标准化的、陈旧的招聘过程是最容易被玩弄的。你可疑的 CGPA,你缺乏实习机会,微不足道的项目——所有这些对你的选择都没有什么影响。让我们开始吧。

竞争性编码。

在大多数产品公司的面试中,这将是一个非常重要的因素。亚马逊、微软、Directi、Flipkart 等都犯了一遍又一遍问同样问题的毛病。两个月的时间刚好够涵盖重要的主题。

这是你的圣经。它被分成几个类别,指导你什么时候做什么主题。每个问题的平均时间是一个很好的指标,表明你目前有多好。你会直接在 InterviewBit 平台上找到更具体的指导。这是我整个准备过程中唯一使用的编码平台。

  • 每个主题框解决一个问题,然后开始下一步。如果你有更多的时间,多做一些基于树、图和链表的问题。
  • 除非你有 C++的经验,否则最好选择 Java。大多数公司都是 Java 商店,在这里你会得到一些印象分。
  • 每个问题自己编码。不要只看答案,继续前进。这要花很多时间。恐慌和紧张会让你变得更糟。最初,不要给自己设定完成一个问题的最后期限。
  • 有些题需要 2 个小时甚至更久,这很正常。
  • 不要使用多个有竞争力的编码平台。坚持一个,这样你更有可能涵盖各种问题。

假设你是竞争性编码的新手,预计你的 60 天中至少有 45 天会完全投入到这方面。尽早利用这些时间,因为当你紧张时,很难在编码上花更多的时间。

理论

数据结构、算法、操作系统、数据库、网络。数学相关理论很少。找到大学讲座幻灯片,从那里修改;那就够了。你可以按照自己的速度浏览这些主题。每个话题不要花超过几个小时。总共需要大约3-4 天的时间。

第一步:浏览讲座幻灯片。 第二步:谷歌‘indiabix topic questions’,快速解决一些 mcq。 第三步:不要担心基于记忆的问题。注重概念。

项目

当招聘人员问你这个问题时,他们是想看看你是否真的喜欢编程。当你谈到你开发的应用程序以及你试图用它来解决的问题时,确保你的脸上有光。希望回答一些问题,比如你为什么选择一个特定的技术堆栈,以及你为什么以一种特定的方式设计它。

如果你有计算机科学学位,你应该已经完成了大学作业(PPL,编译器,计算机图形学),你可以把它们当作项目。PS-1 项目也可以添加到这里。

如果你没有计算机科学学位,只有很少的项目,强调你有上进心,可以自己学习新事物。你已经在没有老师的情况下通过了预赛。我的一个朋友在 PayPal 的一次个人面试中也是这么说的(而且真的有效!).

简历

那本身就是一整篇文章。就目前而言,就把它作为最后几天要做的事情吧。无论如何,你可能会因为太紧张而花几个小时在编码问题上。

过去几天

与朋友或在镜子前练习模拟面试。大声排练你的介绍,两个喜欢的项目和常见问题。在你参加面试之前,一定要对一家公司做一个快速的回顾(大约 10 分钟)!

一句忠告

放下一切,尽最大努力争取位置。公司的质量差异很大。在你选择的领域里,一份工作机会值得你为之付出努力。你应该每天至少能投入 6 个小时。

我犯了一个错误,没有足够认真地对待实习。当你因为一个标准的 DP 问题而错过成为数据工程团队的一员时,你会非常生自己的气。尽量不要让这种事情发生。

大多数人说他们在面试那天运气不错。不管你有多优秀,连续 4-5 次面试都是相当困难的。坚持住,不要因为搞砸了几次面试就丧失信心。

一些常见问题

  1. 该用什么语言? Java 和 C++都是坚实的选择。大多数公司使用大量的 Java,所以他们可能会对精通 Java 的人更满意一些。另外,你很可能在工作中使用 Java,所以你最好现在就精通它。有竞争力的程序员更喜欢 C++,所以你会在 C++中找到大多数算法解决方案。它也不太冗长。根据你已经熟悉的语言选择 C++或 Java。C 没有 STL,这是一个非常糟糕的选择。 有些公司不允许使用 Ruby 或 Python。
  2. STL 是什么? c++中的标准模板库(STL)已经预建了栈、队列、哈希映射和迭代器等实现。在这个过程中,你需要这些来快速编码。集合在 Java 中大致相当。一旦你开始编码,你会很快学会这些。
  3. 通常的面试流程是怎样的? 第一轮 (a)能力倾向与理论 MCQs 或 (b)在线编码轮(在 Hackerrank 或同等工具上) 通常,两小时内解决 3 个问题。你不一定需要解决这三个问题才能进入下一轮。两个通常就够了。一个如果真的很难。问题趋于标准化。 第二轮 3 个人面试。这里是纸上的谜题和编码问题。可能还会问一些琐事理论。一旦你解决了问题,你的 PI 可能会问你不同的问题。很少有公司会举行正式的人力资源面试。你的技术面试官可能会要求你介绍你自己,你的项目,课外活动等等。
  4. 问题有多难? 问题和 InterviewBit 上的水平一样。很少会有一个真正新颖的问题。DP 问题很少出现(Directi 确实会问这些问题),当被问到时,他们倾向于简单的问题。
  5. 该不该练能力倾向题?如果你以前没有做过很多有竞争力的编码,最好先做这些。保持能力问题在你的优先级中很低。也许某一天花几个小时只是为了进入最佳状态。
  6. 我首先要做什么?将你正在做的事情按优先级降序排列。很有可能你不会完成所有的事情,所以先把重要的事情做完。 1。竞争性编码——每个公司都会测试你这方面的能力。这也是你需要做的所有事情中最耗时的。在做其他事情之前,先完成 InterviewBit 上的所有话题一次。 【第 1 天到第 45 天】 2。理论 —无法回答概念性 CS 题看起来不会太好。如果你来自一个非计算机科学的分支,他们会对你的理论更容易理解。 【第 45 天到第 50 天】 3。简历——公司通常根据 MCQs 或初步编码筛选出候选名单。你的简历在这里不那么重要。这在个人面试中更为重要,他们会用它作为谈话的开场白。如果你列出了一个项目,却不能很好地解释它,那就是一个危险信号。少列项目,多了解。把简历写在最后,并获得大量的反馈。 【第 50 天到第 55 天】 4。面试准备 —写好基本简历后再做这个。你的回答应该反映出你在简历中所说的内容。假设你的 GPA 很低,但你在简历中加入了很多项目。然后你应该介绍自己是一个热爱建筑的人。 如果你是非 CS 背景,项目很少的人怎么办?强调自己有上进心,可以自学。你能独自走到这一步。与其他人一起练习你的“推销”并获得反馈。 【第 50 天到第 55 天】 5。填补你的空白——如果有你不太喜欢的编码主题,再看一遍。理论也是如此。填补你认为你可能有的任何空白。 【第 55 天到第 60 天】
  7. 面试如何开始?你拿着纸和笔坐在面试官对面的桌子旁。它会延伸到 (a)你的面试官问你一个问题(谜题或代码),没有太多的介绍。你澄清了问题的所有方面。告诉他方法,然后开始在纸上写代码。在把代码交给他进行最终审查之前,要确保代码是完美的。在让你参加下一次面试之前,他可能会用类似的过程问另一个问题。你的面试官让你介绍自己。这是为了衡量你的沟通技巧,你的兴趣和任何你可能没有放在简历上的东西。你可以试着说“嗨,我是 X,我在这里学习 Y。我非常喜欢[人们使用的构建工具]/网络/自动化/[公司所处的利基]。我在上述领域做了几个项目,我真的很喜欢 X。我希望在工作中更多地了解你。”永远要给面试官空间来打断你的提问。停顿一下,判断他是否希望你继续。这是你有机会围绕你的优势编一个故事,并解释你的弱点。好好利用。从这里开始,它将很大程度上像(a)那样进行。

您可以使用其他工具/平台来学习。我特意为每个目的只提到一个。大多数人花太多时间担心什么是“最好的”方法。我相信没有人比之前破解过这个过程的人更适合指导你了。

这是给那些接受建议太少或太多的人的一篇固执己见的文章。这样你就可以花时间去准备,而不是过度思考这些事情。

关于作者


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除