你不知道的程序员面试技巧

Posted Java每日一记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你不知道的程序员面试技巧相关的知识,希望对你有一定的参考价值。




闲聊

  在深入代码之前,大多数面试官喜欢聊聊你的背景。他们想知道:

 你对编码认知。你是否知道如何编写好代码? 个人能力/领导力。你是否经历过整个工作流程?你是否修复过并不怎么正确的东西,即使你并不需要这么去做? 沟通。和你交流技术问题是有用的还是痛苦的?  

  你应该至少说明以下中的一个:

 你曾解决的一个有趣的技术问题 你曾克服的一个人际冲突 显示领导力或个人能力的例子 你曾在以往项目中做出的贡献 最喜欢的语言的一些琐事,对这种语言你做了什么,以及你不喜欢它哪里 有关公司产品/业务的问题 关于该公司的工程策略(测试,Scrum,等等)  

  热爱技术

  表达你对你所做的一切感到骄傲,你对自己的选择充满自信,你对语言和工作流有着自己的看法。

  沟通

  涉及到编码问题的时候,沟通是关键。一个在工作时需要帮助却能和人正确沟通的求职者比那些能轻松解决问题的求职者甚至更好。

  了解这是哪种问题。有两种类型的问题:

 编码。面试官希望你能针对问题写出简洁高效的代码。 闲聊。面试官希望能和你聊一聊。话题通常是(1)高水平的系统设计(如何克隆 Twitter?)或(2)琐事(javascript 中的 hoisting 是什么意思?)。有时候这些琐事中也会引入实际问题,例如,如何迅速排序整数列?好的,如果不是整数,是其他类型的呢。  

  如果你开始编写代码,并且面试官并不想多说废话,只想尽快过渡到实际问题,那么如果你罗哩叭嗦太多的话,她可能会觉得厌烦。不妨直接问,是不是为这个问题写代码?

  让人感觉你有团队精神


  把自己的想法大声说出来

  不是开玩笑,比如说:我不知道这样做是否有效但请让我试一试。如果你不知道怎么办,不知道这个问题该如何解决,那么就说一说你现在的想法。说一说你认为怎么做可能会有效。说一说你认为哪些会有用,以及为什么没用的原因。这同样适用于琐碎的闲聊问题。当面试官要求你解释 Javascript 闭包的时候,这与范围有关,不妨把它放到一个函数中可能会让你得到 90% 的分数。

  不知为不知

  如果正在谈论的话题(例如,具体的语言事务,具体的琐事,运行时分析)的确是你不曾涉猎的内容,那么不要不懂装懂。相反,你可以直接说:我不知道,但我猜$thing,因为,因为后面可以通过分析排除其他选项,还可以拿其他语言或问题做例子。

  说话不要不经大脑

  不要自信地将答案脱口而出。如果是正确的,那么你还是需要时间来考虑如何解释,如果是错的,那会显得你冲动鲁莽。你不是在和人比速度,而且你这么做更有可能因为打断她的话或者妄下结论而惹恼她。

  摆脱困境

  有时候你会陷入僵局。放松。这并不意味着你已经失败了。请记住,面试官通常更在乎的,是你能否巧妙地从几个不同的角度去揭示问题,而不是一根筋走到底地坚持正确答案。

  画图

  不要浪费时间在脑袋里思考,可以画到板上。画出几个不同的测试输入。画出你如何手动如愿得到所需的输出。然后想想将你的方法转换成代码。

  解决问题的简单版本

  不知道如何找到集合中的第 4 大条目?那么想想如何找到第 1 大条目,然后试试能否沿用这种方法。

  写一个简洁低效的解决方案,然后对其进行优化。竭尽全力。尽一切可能的方法得到某种答案。

  讲讲自己的思路

  讲一讲你知道什么。讲一讲你认为什么可能工作以及为什么无效的原因。你可能突然会意识到它实际上是可以工作的,或修改版本是有效的。也有可能,你会得到提示。

  等待提示

  不要用期待的眼光盯着面试官,但可以有短暂的思考时间面试官或许已经决定给你个提示也说不定呢,等待她的提示以免打断她。

  考虑空间和运行时的界限

  如果你不知道你是否可以优化解决方案,那么就说出来。例如:

 

我必须至少看看所有的条目,我做不到时间复杂度比O(n)还好的了。

蛮力方法才能检验所有的可能性。

答案将包含n^2 数据项,所以我必须至少花费N^2 的时间。

 

  写下你的思路想法

  凭空地想很容易自我矛盾。把你的想法写下来,然后再去考虑细节。

  调用帮助函数,继续前进

  如果你不能或多或少地马上想出如何实现算法,那就跳过它。写一个命名合理的调用函数,例如:this will do X,然后继续下一步骤。如果帮助函数非常微不足道,你甚至可以将它忽略。

  不要担心语法

  不妨一笑而过。如果你非要考虑语法,那就还原到英语。只要向面试官说明稍后会回来整理即可。

  预备足够的空间

  你可能后面会想要在代码行之间添加代码或笔记。从白板的顶部开始写,并在每一行之间留一条空白。

  最后写一个重头检查的标志

  不要担心你写的 for 循环是否应该有或=。在代码的最后画个勾选提醒自己最后再检查一遍。先按自己的思路走。



最后,更多程序员面试题。


或者,扫下面的二维码,备注“2”,领取视频资料。让我们一起努力。、


以上是关于你不知道的程序员面试技巧的主要内容,如果未能解决你的问题,请参考以下文章

JAVA面试时,你不知道这些你就惨了!

SQL优化核心思想:或许你不知道的5条优化技巧

你不知道这份超详细JVM内存结构?Java面试真题精选

你不知道的基本数据类型和包装类 + 面试题

那些你不知道的js使用技巧

fiddler你不知道的小技巧