编码 面试

Coding interviews are a love/hate relationship for most software engineers. There are radical vantage points on what is the right way to interview an incoming software engineer for a specific or general position. These interviews can be high-level conceptual conversations, screen-sharing interviews (i.e., Collabedit), whiteboarding, paired-coding, or a variety of other styles. There is not a consistent pattern or style of interview within the tech industry.

对于大多数软件工程师而言,编码访谈是一种爱恨交织的关系。 关于针对特定或一般职位面试即将到来的软件工程师的正确方法,存在一些根本性的优势。 这些采访可以是高级概念性对话,屏幕共享采访(即Collabedit),白板,配对编码或多种其他样式。 科技行业内没有统一的面试方式或面试方式。

What does that mean? It means that engineers and developers do not know how to properly prepare for every single interview. These interviews vary drastically different in topic and level of difficulty from company to company.

那是什么意思? 这意味着工程师和开发人员不知道如何为每次面试做好准备。 这些访谈的主题和难度因公司而异。

Common among clients in the past, these interviews center on writing code on a whiteboard while having the interviewee “think out loud” and explain themselves every step of the way. It’s an odd and somewhat dated process, but these interviews aren’t structured this way in order to optimize for modern implementation.

过去在客户中很常见,这些访谈的重点是在白板上编写代码,同时让受访者“大声思考”并向自己解释每一步。 这是一个奇怪且有些过时的过程,但是这些采访并不是为了优化现代实施而采用的这种结构。

为什么编码面试是标准的 (Why Coding Interviews Are Standard)

If you ask an engineer about their experience in a coding interview, every engineer’s answer is going to be drastically different depending on their background. It is a very sensitive and controversial topic. You do not want me to repeat some of the comments and stories that I’ve heard over the years. (You may end up with bloody ears or a sore stomach from laughing.) Most engineers believe that technical interviews are not relevant to the actual position, nor do they show the individual’s true technical competency.

如果您向工程师询问他们在编码面试中的经验,则每个工程师的答案都将因他们的背景而大不相同。 这是一个非常敏感和有争议的话题。 您不希望我重复多年来听到的一些评论和故事。 (您可能会因笑而流血或胃痛。)大多数工程师认为,技术面试与实际职位无关,也不表明个人的真正技术能力。

And these people have a point — these interviews don’t represent real work. Developers never really have to write in-depth code on a whiteboard during the day-to-day job. In addition, the majority of topics covered in coding interviews are never seen outside of interviews. How often, for example, will a front-end developer specializing in React have to traverse a B-Tree in a specific, algorithmic way? Never, unless they’re doing something deeply wrong.

这些人有观点-这些采访并不代表真正的工作。 在日常工作中,开发人员无需真正在白板上编写深入的代码。 此外,编码访谈中涵盖的大多数主题在访谈之外从未见过。 例如,专门从事React的前端开发人员多久必须以一种特定的算法方式遍历B树? 永远不要,除非他们做错了什么。

When a candidate does run into an interview that represents real-world problems that would need to be solved in the day-to-day of the actual position it’s mind-blowing. I have had candidates leave an interview with a coding assignment that they were actually excited to complete because they felt like they would understand the company’s problem and add real value.

当候选人确实遇到了代表实际问题的面试时,就需要在实际职位的日常工作中加以解决,这真是令人难以置信。 我曾让候选人带着编码作业离开面试,他们实际上很高兴完成这项工作,因为他们觉得自己会理解公司的问题并增加真正的价值。

Even more aggravating? Coding interviews are often entirely unfair. Even the creator of Brew — with tens of millions of installs — was invited to interview at Google and then rejected because he couldn’t solve a B-Tree problem.

还会加剧吗? 编码采访通常是完全不公平的。 甚至连具有数千万次安装的Brew的创建者也被邀请到Google进行采访,但由于他无法解决B-Tree问题而被拒绝。

Software engineers love to trick the interviewees and give extremely challenging questions. If you get the initial problem, it’s then common practice for an interviewer to throw a wrench in your solution, make the problem even harder, and create arguably unnecessary stress.

软件工程师喜欢欺骗被访者并提出极具挑战性的问题。 如果您遇到了最初的问题,那么面试官通常会在解决方案中投入一把扳手,使问题更加棘手,并产生不必要的压力。

So why are they given?

那么为什么给他们呢?

For all their faults, coding interviews prove three things:

对于所有的缺点,编码采访证明了三件事:

  • The candidate really wants the job and has put significant effort into preparation. If an interviewee hasn’t spent the time to get good at the process, it’s quite obvious. Companies want to hire people who put in the effort.候选人真的很想要这份工作,并已投入大量精力进行准备。 如果受访者没有花时间去完善这个过程,那就很明显了。 公司想聘请付出努力的人。
  • The software engineer can solve problems and actually code. Engineers who have to copy/paste scripts other people made or who don’t have enough experience with a language will often make big mistakes while problem-solving and coding up solutions.软件工程师可以解决问题并进行实际编码。 不得不复制/粘贴他人编写的脚本或没有足够的语言经验的工程师在解决问题和编写解决方案时常常会犯重大错误。
  • The software engineer can effectively articulate their problem-solving. Engineers often will fail to solve the problem, only to find that they actually passed the interview. How? The interviewer decided their thought process was good enough.软件工程师可以有效地阐明他们的问题解决方案。 工程师常常无法解决问题,只是发现他们确实通过了面试。 怎么样? 面试官认为他们的思考过程足够好。

编码面试如何在各公司间变化 (How Coding Interviews Vary Across Companies)

How a company interviews people is a direct correlation with the quality of talent they attract. The best companies optimize their recruiting processes to reduce false positives. A bad hire that made it through the process will hurt the company much more than rejecting a potentially good hire. The best companies tend to have the hardest interviewing process.

公司如何面试人与他们吸引的人才素质直接相关。 最好的公司会优化其招聘流程,以减少误报。 导致整个过程失败的糟糕员工,比拒绝潜在的优秀员工,对公司的伤害更大。 最好的公司往往面试过程最困难。

Therefore, when you find that a hiring process especially easy, it’s likely the company has weaker engineering. This isn’t always true, of course, but it’s certainly something to keep in mind.

因此,当您发现招聘过程特别容易时,很可能是该公司的工程能力较弱。 当然,并非总是如此,但是一定要记住这一点。

Since it’s extraordinarily tough to guess which topics will be covered in an interview, the keenest strategy to prepare is to literally prepare for everything. That is, if you really want a great job. Otherwise, ask the recruiters or hiring managers for something to study/prepare prior to the interview. If you need time to prepare, be direct and honest.

由于很难猜测采访中将涵盖哪些主题,因此最敏锐的准备策略是为所有事情做好准备。 也就是说,如果您真的想要出色的工作。 否则,在面试之前请招聘人员或招聘经理提供一些学习/准备的内容。 如果您需要时间进行准备,请保持坦诚。

准备就是一切! 但是如何? (Preparation Is Everything! But How?)

It takes time to be proficient at interviews. They are a completely new muscle in your body that needs exercise and training. If you don’t continuously touch base with the fundamentals, you’ll eventually be the fat cat that can’t waddle its way to the bathroom anymore. You don’t want that! Don’t piss on yourself when you go to the interview! When people begin the process of preparation, it feels like you’re running a mile again after five years of zero cardio.

精通面​​试需要时间。 它们是您体内需要锻炼和训练的全新肌肉。 如果您不持续接触基本知识,您最终将成为无法再步入浴室的肥猫。 你不要那个! 去面试时不要生气! 当人们开始准备过程时,感觉到五年有氧运动后,您又跑了一英里。

You have to have faith in research, studying, and practice. Run some practice laps once in a while.

您必须对研究,学习和实践充满信心。 偶尔跑一些练习圈。

If you want to work at a top tech firm, like Google or Facebook, we recommend you practice for:

如果您想在像Google或Facebook这样的顶级高科技公司工作,我们建议您练习:

  • Experienced engineer: four to six weeks, two hours a day

    经验丰富的工程师:每天四到六周,每天两小时

  • New engineer: six to eight weeks, three hours a day

    新工程师:六到八周,每天三小时

For more mid-range companies, like Series A/B startups, you can usually get away with less preparation:

对于更多的中型公司,例如A / B系列初创公司,通常可以通过较少的准备就摆脱困境:

  • Experienced engineer: two to four weeks, two hours a day

    经验丰富的工程师:每天两到四个星期,每天两个小时

  • Bootcamp graduate: four to six weeks, two or three hours a day

    训练营毕业生:每天四到六周,每天两到三个小时

Yes, it is a lot of time, and you may be thinking, “do I really need to prepare that much?”

是的,时间很长,您可能会想,“我真的需要准备那么多吗?”

And our answer is to look back up at that 10% number. You need to prepare this much if you actually want job offers. Even with this preparation, you should still expect to fail half of your interviews. (Sorry, but not sorry if you didn’t prepare.)

我们的答案是回头看那个10%的数字。 如果您确实需要工作机会,则需要准备很多。 即使进行了这种准备,您仍然应该期望会通过一半的面试。 (对不起,如果您不准备的话,请对不起。)

一些共同的主题 (Some of the common topics)

  • Trees树木
  • Hash tables哈希表
  • OOP, systemsOOP,系统
  • Big O大O
  • Recursion递归
  • Stacks/queues堆栈/队列
  • Arrays数组
  • Linked lists链表
  • Algorithms: BFS, DFS, binary search, merge sort, quick sort算法:BFS,DFS,二进制搜索,合并排序,快速排序
  • Bit manipulation (few interviewers give these, but cover them anyway)操纵位(很少面试官会讲这些,但无论如何都要掩盖)

Expect questions relating to your experience as well: technologies, languages, frameworks, etc. SQL challenges and questions are very common.

还要期待与您的经验有关的问题:技术,语言,框架等。SQL挑战和问题非常普遍。

准备方法 (Methods to Prepare)

Some online training systems are fantastic. There are both paid and free training systems on the internet.

一些在线培训系统很棒。 互联网上有付费和免费的培训系统。

Some of these sites include:

这些网站包括:

  • Geeks for Geeks — Free — One-stop shop for a high-level overview of most technical interviews, from basic- to expert-level assignments. In addition, a lot of the top name brands have their interview prep requirements posted here.

    Geeks for Geeks —免费—一站式商店,对从基础级到专家级的大多数技术面试进行了高层概述。 此外,许多顶级品牌的面试准备要求都在此处发布。

  • Triplebyte — Free — Take a quick online coding quiz instead of providing a resume. The company will start to auto-match you with companies whose basic coding requirements you meet. Fast track interviews!

    三字节 —免费—进行快速在线编码测验,而不要提供简历。 公司将开始自动将您与满足基本编码要求的公司进行匹配。 快速采访!

  • Pramp — Free — Tell them when and what you want to practice and they’ll pair you with an optimal peer. They provide interview questions (and answers) you will both use to interview each other. Coding interviews are live video sessions with a collaborative code editor. You and your peer interview one another for 30 minutes each. After the interview, you both rate the other’s performance. Learn from peers’ feedback, gain confidence, and master the art of interviewing. Keep practicing until you interview like a rock star. Impress recruiters and land awesome job offers.

    Pramp-免费-告诉他们您什么时候想要练习什么,他们会为您与最佳同伴配对。 他们提供面试问题(和答案),您将使用它们分别进行面试。 编码采访是通过协作代码编辑器进行的实时视频会议。 您和您的同伴彼此面试30分钟。 面试后,你们俩都评价对方的表现。 从同龄人的反馈中学习,获得信心,并掌握面试的技巧。 继续练习,直到像摇滚明星一样面试为止。 给招聘人员留下深刻的印象,并提供出色的工作机会。

  • Interviewing.io — Free — Free, anonymous technical interview practice with engineers from Google, Facebook, and more. Get actionable feedback, get awesome at interviewing, get fast-tracked at top companies.

    Interviewing.io —免费—与Google,Facebook等公司的工程师免费,匿名进行技术面试。 获得切实可行的反馈,在面试中表现出色,在顶尖公司中获得快速发展。

  • Codefights — Free — There is an arcade to solve problems and advance your skills in an interactive environment like a videogame, interview practices, head-to-head coding competitions with peers or strangers, tournaments, and company bots.

    Codefights (免费)—在诸如视频游戏,面试实践,与同龄人或陌生人进行的头对头编码竞赛,锦标赛和公司机器人等交互式环境中,可以使用街机游戏解决问题并提高技能。

  • My Code School — Research a topic and ensure you understand it holistically.

    我的代码学校 -研究一个主题,并确保您全面地理解它。

  • Getboost.io — Tackle ~three easy practice problems and two hard practice problems, and review solutions until you understand them completely.

    Getboost.io —解决三个简单的练习题和两个困难的练习题,并查看解决方案,直到您完全理解它们为止。

As you complete each topic, realize that you’ll want to revisit it two or three times every week subsequently to keep it fresh in your mind. These things are easy to forget, and when you get a problem in an interview, you want the type of problem to be instantly recognizable.

完成每个主题后,请意识到您将需要每周重新访问两次或三遍,以使它保持新思想。 这些事情很容易忘记,当您在面试中遇到问题时,您希望问题的类型能够立即被识别。

As you train more and more, you will develop a level of intuition around new problems. The hardest part is getting started with preparation, so push through the difficulty.

随着培训的增加,您将对新问题有一定的直觉。 最困难的部分是开始准备,因此要克服困难。

如何知道何时准备好 (How to Know When You’re Ready)

You can’t know for sure. Even the most prepared people can freeze up and fail interviews, so at some point, you have to call it a day and jump into the deep end.

您不能确定。 即使是准备最充分的人也可能冻结并导致面试失败,因此在某些时候,您必须每天都这样称呼并跳入深渊。

Still, when do you jump?

不过,你什么时候跳?

If you can get a mock interview from someone at a top company, even if you have to pay for it, it’s worth it. They’ll both have a high bar and be able to give you specific feedback (as long as you’re outside of their company’s interview process). Maybe you have a buddy that will help you out.

如果您可以从顶级公司的某人那里进行模拟面试,即使您必须为此付费,那也是值得的。 他们俩都有很高的标准,并且能够为您提供具体的反馈(只要您不在他们公司的面试过程之内)。 也许您有一个可以帮助您的伙伴。

Finally, it’s worth stating that you can also treat your first interviews as initial groundwork. Simply apply to companies you’re less interested in, and use the interviews as practice. (I am sure some of the hiring managers reading this article are giving me the finger right now.) People will often take interviews they don’t actually care about in order to get live practice in front of companies.

最后,值得一提的是,您也可以将第一次面试视为最初的基础。 只需向您不感兴趣的公司提出申请,然后将面试作为练习即可。 (我确信某些正在阅读本文的招聘经理现在正在给我指头。)人们经常会接受他们实际上并不在意的面试,以便在公司面前进行现场实习。

Happy hunting and good luck!

狩猎愉快,祝你好运!

翻译自: https://medium.com/better-programming/i-failed-my-effing-coding-interview-648ffd355c30

编码 面试


http://www.taodudu.cc/news/show-4123286.html

相关文章:

  • 2020年开发人员的机器学习基础
  • 技术负责人 vs产品负责人_产品前的人
  • 【python】类型约束(类型提示的作用)
  • coco参考文档网址
  • python词云生成
  • python 词云生成
  • 08#wordcloud2包 词云生成器
  • python实战项目词云生成器(wordcloud+jieba+pyinstaller打包)——词云生成软件【Pyinstaller打包问题解决】
  • Python 实现用GUI设计有界面的词云生成器
  • python词云生成与设计实现_基于python的词云生成(二)
  • python词云生成与设计实现_python简单词云生成
  • 词云生成器
  • 手把手教你几种生成词云的方式
  • 关于 Cannot read property ‘length‘ of null 报错的解决办法
  • 如何将r语言结果 输出结果到WORD
  • 关于anaconda
  • html 制作人物模型,星际科幻人物模型材质教程 Stargazer Character Design Tutorial
  • 【LOJ2542】【PKUWC2018】—随机游走(Min-Max容斥+树形dp+FMT)
  • css学习记录第一天(选择器)
  • HTML学习记录
  • 【力扣】735. 行星碰撞
  • Java——面向对象(1)
  • 解决pycharm终端/cmd运行python脚本报错“ImportError/ModuleNotFoundError:No Module named ...”
  • 【CSP-S 2019模拟】题解
  • Pilosa文档翻译(二)入门指南
  • CodeForces 1305C-Kuroni and Impossible Calculation(抽屉原理)
  • R 导出回归结果
  • html5 dreamlive,DREAM LIVE 5th Tour Stargazer即将开演
  • r语言中trifit怎么用_R语言中的stargazer包的使用方法
  • 华南理工大学函授计算机考试答案,函授大专考试试卷题型具体是怎样的

编码 面试_我的编码面试失败相关推荐

  1. 编码 面试_在学习编码面试时如何取得进步

    编码 面试 by Sam Gavis-Hughson 萨姆·加维斯·休森(Sam Gavis-Hughson) 在学习编码面试时如何取得进步 (How to make progress while s ...

  2. python字节跳动面试_字节跳动实习面试

    2019.03.06 生平第一次面试,献给了最想去的宇宙条.基础有点差,补了一个多星期,到面试前脑子还是一片空白,啥都没记住的赶脚,广度优先导致了啥都记不住,深度优先又怕问的都是没遍历的知识. 总体感 ...

  3. ncs java 成都 面试_成都java工程师面试一般都是哪些问题,基础难不难!

    了解了许多学员参加的Java面试,他们表示,面试官提出的基础性问题还是比较多.从这个突破口切入,Java新手想要成功通过面试,基础知识方面也需要准备,今天达内成都Java培训班小编就来给大家分享一些J ...

  4. 华为社招嵌入式软件面试_华为嵌入式软件开发面试经验

    面试过程: 本人是国内211,985高校的CS专业小硕,成绩还算凑合.去年十月份就感到临近毕业的焦虑,心里着急投了一堆简历,结果大部分都石沉大海.有几家公司给了反应,面试时才发现自己知识的薄弱.然后我 ...

  5. 华为技术面试编码题_最佳技术编码面试准备书

    华为技术面试编码题 Technical coding interviews are notoriously difficult - almost borderline quiz-like for th ...

  6. 怎样准备阿里技术面试_如何准备技术面试

    怎样准备阿里技术面试 In June 2020 I watched an inspiring talk by Anthony D. Mays, a technical coach and founde ...

  7. 2019年税务编码分类_正在学习编码每个人在2019年的工作方式吗?

    2019年税务编码分类 通过使用Google Chrome扩展程序关键字Everywhere ,我发现"学习编码"一词是Google每月的74,000次. 取决于您对大数的容忍度, ...

  8. 高德地图 python面试_【高德地图面试|面试题】-看准网

    大厂是有很多好处的,面试邀请除了邮件通知之外,还会在短信上通知.这些细节很人性化.赞一个面试约的是下午两点,进去的时候发现门还走错了,真是蜜汁尴尬.进入需要提供一个编码,然后才能进入的.到三楼前台等了 ...

  9. javaweb解决编码问题_停止尝试编码解决问题的方法

    javaweb解决编码问题 抽象 (Abstract) Here's the situation. I need to build a test harness to verify that when ...

  10. 网易内推java 面试_网易内推面试

    9月5日晚收到拒信,这是秋招以来最大的打击,感觉越想得到的东西越得不到,现在还没有满意的offer,真的好想留在杭州啊,,为什么这么难啊!!! 真的很想留下来,可是老大说至少要两个月后才有机会转正答辩 ...

最新文章

  1. #笔记:pta题笔记:注意:double不能直接比较大小!!!///////计算2个复数的和、差、积、商。
  2. 解决Git中的fatal: refusing to merge unrelated histories
  3. flink写入clickhouse遇到210错误故障排查思路
  4. 236.二叉树的最近公共祖先
  5. a标签隐藏真实地址_推荐软件:Clover(窗口标签化工具)
  6. 每天一个linux命令cd,Linux指令每日背诵(第一天)
  7. Windows核心编程_FS段寄存器
  8. 乱码插入mac mysql汉字乱码问题解决
  9. 调用接口登录禅道_干货,调用api获取禅道需求列表等
  10. gtx1050ti最稳定的驱动_【硬件资讯】持续霸榜经久不衰?四岁高龄的GTX1060仍为Steam最受欢迎显卡!...
  11. 乐高机器人投篮编程_乐高 EV3 高级编程 - 第二课:Hello World
  12. java jdom 包_org.jdom jar包下载
  13. 免费网站域名去哪找?免费域名靠谱吗?
  14. Windows7快捷方式图标丢失的解决方案
  15. 洛谷 P1919 【模板】A*B Problem升级版(FFT快速傅里叶)
  16. android环信3.0v回撤,环信Android消息回撤
  17. 3D游戏:三、空间与运动
  18. GitHub置顶半个月!78w字百亿级并发设计(全彩PDF),竟出自京东
  19. 复习计算机专业知识心得体会,2018考研经验:清计算机专业研友心得体会.doc
  20. 【JAVA程序设计】(C00046)javaweb图书借阅管理系统

热门文章

  1. 爬虫入门(1)——requests(1)
  2. 【数学问题2】空间惯量 The Spatial Inertia
  3. 16春季计算机应用基础,16春季福师《计算机应用基础》在线作业一.doc
  4. ios开发愤怒的小鸟的Lua语言:Wax框架详解
  5. C语言 转义符\t占用几个空格
  6. CHM文件的搜索功能帮助(摘自MSDN).
  7. 苹果cms新手快速入门常见问题汇总及解决教程
  8. 基因测序的云计算平台可能带来的变革与进步
  9. 屏蔽CSDN广告插件 - Chrome
  10. 编写吃c语言程序步骤,自己做的一个C语言小游戏——吃金子