亚马逊这样的公司有 14 项领导原则 。他们不想仅仅雇佣一个数据科学家或软件工程师。对于许多只进行一次或两次面试的面试者来讲,这可能没有那么明显,由于你太专一于回答面试的技术部分。可是,在你进行技术面试时,咱们但愿提供一些提示,帮助你更好地为将来作好准备。程序员
我回忆起我在 FAANG ( Facebook、Apple、Amazon、Netflix 和 Google ) 的第一次面试。面试
在技术面试以后,有一轮技术项目经理的面试。他们开始问我过去的经历和项目。起初,状况还不错。而后他们开始问我在该项目中担任的角色对项目起哪些做用。算法
在我回答以后,他问了我一个在那以前从未想过的问题。编程
“你为这个项目节省了多少时间?”数据结构
我之前从未想过这个问题。在个人职业生涯中,我几乎一直在作别人告诉个人事情。然而对项目的做用和节省时间这样的大局概念,我历来没有想过。终究,我只是一个年轻的开发人员,我只考虑过编程和如何知足项目的需求。数据结构和算法
其他的对话遵循相似的模式,他们在寻找个人自主权和独立思考能力,但老实说,在我目前的工做中,我并无花太多时间去作相似的事。oop
个人建议是准备好数字指标,像亚马逊这样的公司是很是标准的。他们须要的是开发人员和工程师,而不只仅是编程。这意味着你须要作好准备。当你要去面试时,准备好你所作的不只仅是一两件小事。确保准备清楚你在项目中起了哪些重要的做用。学习
想一想你过去的项目,即便你的公司没有直接计算你为项目节省了多少时间,可是你仍然应该花点时间本身估计一下。spa
准备好一些指标代表你从项目的全局考虑,并拥有独立思考的能力,这会让你脱颖而出。设计
大多数人的前几回笔试都不好。你可能会很迷茫,由于你想在你面试开始以前获得完美的答案。或者你仅仅是写答案,而没有与面试官沟通你的想法是什么。
因此提早几分钟把你的回答放到面试官面前,概述你使用什么方法、数据结构和算法来得到解决方案,这不只有助于你解决问题,并且还能让面试官了解你的思惟过程。
即便你没有用最好的答案回答问题,但这依然有利于你。沟通是很是重要的,在过程交谈中也能够证实你有能力提供解决方案。
此外,若是面试官很优秀,他们会常常指导你找到答案。并非说他们会给你详细解释,但他们可能会问一些问题,以确保你能够考虑到一些边缘状况,并避免主要的陷阱。
老实说,我以为最好的面试之一就是那种感受根本不像面试的面试,反而就像两个工程师在一块儿解决一个问题。固然,有一些面试官站在另外一边,根本帮不上你。
这多是个老生常谈的建议,但对于一个没有任何工做上的问题的面试者来讲,这有点让人不快。然而,对于你的第一份工做,你可能只是想要这份工做,但并不在意这份工做。所以,提出真正的问题是困难的。
但这并不意味着你不该该准备一些问题来表现出对这个工做的兴趣。
我不建议你问太普遍的问题,由于这些问题你能够经过谷歌搜索。相反,集中精力向面试官提问他们的工做。例如:
这些问题代表你对工做水平很感兴趣。它们还能够帮助你与面试官创建更多的联系。
我会问这些问题,是由于我知道这不只仅是工资问题,我须要了解公司面临的具备挑战性又有做用的问题。
固然,研究最酷的技术是颇有趣的。但新技术老是很酷的。比起所使用的技术栈,我更关心项目的做用。
读这篇文章的人有的可能还在上大学。对于在校学生,有的学校可能会提供实习面试服务。然而对于那些不在学校的人,应该找个朋友一块儿练习。
若是你有计算机科学领域的朋友,或者已经在技术公司工做的朋友,你能够向他们寻求帮助。若是你能在笔试中解决问题,而不是在电脑上,你就会显得脱颖而出。
面试者一般认为他们擅长编程,因此他们一样也擅长面试。然而,编程与面试可不大相同。
因此必定要练习!
面试一般有好几轮,每一轮的面试可能不尽相同,你有可能在面试中顺利进行,也有可能在一轮又一轮的面试中变得更糟糕。
你可能会在一个问题上陷入一个困境,由于技术领域很广,因此很难了解一切。在面试中遇到你没有准备好的问题,这很正常。
关键是不要让一轮糟糕的面试影响你剩下的面试。即便你心里深处知道你在那一轮面试中失败了,你仍然要保持积极的态度。缘由有如下两点:
即便你在这一轮面试中失败了,你也要保持积极的态度。
你永远不知道面试时会被问什么类型的问题,因此不妨问问你的招聘人员。大部分 FAANG ( Facebook、Apple、Amazon、Netflix 和 Google ) 公司会提供一些学习材料。这些公司很是注重数据结构和算法。其余人把它与面向对象和系统设计问题混合在一块儿。你最但愿作的事情就是成为一个处理决策树的数据科学家,而且涉及到反转链表或遍历树的问题。
这既尴尬又使人沮丧。事实上,每一个人的时间都被浪费了,若是公司没有为你准备好这些问题……那么我将大部分责任推到他们身上。
当你去面试时,你须要展现更多的优点。
有些人有一个坏习惯,就是过分致力于解决问题。当你在讨论一个问题时,面试官可能会试图提供一些提示,以确保你继续朝着正确的方向前进。
然而,当咱们处在一个思考问题的区域时,咱们经常只走这一条路。即便它显然是错误的。
若是你在 15 分钟内对同一问题没有更好地进展,考虑深呼吸,并努力确保你的解决方向是正确的。可是若是你在更长的一段时间内没有找到正确的解决方案,而且你还有其它三到四个问题须要回答,那么你应该考虑换一种思路。
你喜欢 Hadoop 、 Go 语言,或者其余技术,并且你可能讨厌其余技术栈。
这并不意味着你须要让你对一种特定语言的全部仇恨都被知道。它经常被认为是精英主义者。就像你比其余人更了解,由于你的语言显然是最好的,其余人都在石器时代编程。
团队和公司使用各类语言,假若你正在谈论某一技术栈的劣势,可是恰巧这正是他们所用的技术栈,这很是不友好。记住,若是你有你喜欢的语言,那么你能够自由地提出这个问题。但总的来讲,持一些否认意见可能会很糟糕。
这听起来有点像”别让一轮面试影响其它轮面试“。咱们中的许多人将经历屡次面试,但屡次面试都失败了。
当咱们收到一封电子邮件或一个电话对咱们说:
“对不起,你不够优秀”
这感受糟透了。
可是,你不能让一两次糟糕的面试战胜你。有的人在同一年里屡次接受同一家公司的面试,直到他们获得这份工做。让一次面试定义其他的面试这是很是不正确的。咱们想对全部面试的人说的就是不要放弃。
有太多东西须要学习,咱们可能没法一时完成。可是不要紧。只要保持乐观,总有一扇门会为你打开。
技术面试很难,由于面试官寻找的是对项目和工做有着独立的思考的人,而不只仅是在寻找程序员。但不管如何,请不要放弃!
原文连接 本文为云栖社区原创内容,未经容许不得转载。