我在面试中一直失败,建议吗?[关闭]


13

因此,我的投资组合中有几个软件/站点。他们赚钱,但不是很多。

因此,我决定获得一些工作经验,主要是在Java / PHP初级开发职位上应聘。

问题是我正确回答了所有技术问题,我们计划进行编码“测试”,即面试的最后阶段。我永远无法放松,过分思考,最终做得很慢。有时,我只是碰了个障碍,觉得很难思考。

我不明白这一点,因为我写的其他东西正在解决更复杂的问题,而“测试”实际上却很简单,例如编写和测试回文。

有时,他们会给我一个逻辑测试,涉及到数学运算的流程,同样,我将无法在他们分配的时间内进行测试。

我知道我可以编写可销售的软件/网站,这些软件/网站可以产生很小的收入并找到解决问题的方法,但是在面试中使用简单的编码测试很难。

有什么建议么?



显然,至少你觉得面试测试可能很简单,但似乎你不是一个人在具有茨艾伦测试的麻烦:infoworld.com/d/application-development/...
有些程序员花花公子

2
我不得不不同意这个链接。考虑到优秀开发者与劣质开发者之间的差异,您真的想冒险掠夺一些优秀候选人而不是获得劣质候选人。
deadalnix

7
@deadalnix我不同意您的不同意见。:-)我已经看到足够多的优秀程序员无法通过测试,而糟糕的程序员则通过了测试,我认为测试没有用,而且往往适得其反。海事组织,他们所做的就是使面试官/人力资源专员感觉良好。
Brian Knoblauch

2
@BJoachim和所有:如果您阅读了该链接的第一段,那么对于保持测试的相关性和实用性实际上是一个很好的建议:它并不是说测试是无用的。
MarkJ 2011年

Answers:


18

继续参加面试。您最终会找到一个可以提出更适合您的优点的问题的地方。您也将更好,更轻松地进行面试,这只会有所帮助。将其视为游戏,因为它确实是它。继续比赛,最终你会赢。


2
我认为这不是问题的优点/内容,而只是答案的条件。我写得很烂,bool isPalindrome(string)因为我要在一个时限内(15分钟?)把它写在纸上。只要有文本编辑器且没有时间限制,我相信我在一分钟内就能做到完美。
SF。

9
@SF:面试后您尝试过吗?你花了多长时间?
凯文·克莱恩

2
也要继续练习自己的弱点。在这种情况下,请发现类似的小问题,然后花时间在纸上解决这些问题。练习先使某些东西工作(即使它是错误的),然后再反复进行以使其正确。这样,您可以在面试中展示自己的思维过程。看来,这是您目前(现在)所缺乏的最大技能,现在只能获得最低限度的交付,然后随着时间的推移进行改进。许多企业都是这样:-)
Al Biglan

刚刚看到这与slashdot相关;有点相关:infoworld.com/d/application-development/…–
Kevin Hsu

如果问题是您不能在纸上编程,那么我认为这是一个真正的问题。“ isPalindrome”不需要任何晦涩的API调用或语言功能;您应该能够编写没有Intellisense或IDE好处的类似可编译程序。
伊恩·卡洛尔

12

这是很常见的。大多数程序员在自己的舒适区中都能有效地进行编程。例如,我只能在带有vim的Ubuntu上工作,如果我没有那个工作区,我不会喜欢编程。我还要求 Google在某种程度上进行研究。

我确定您已经为编程开发了一些舒适区。我建议您适应一个有人在后面等待他们的代码完成的环境。习惯它的最好方法是继续面试。

您可能会认为它没有太大影响,也可能没有太大影响。但是对于我们当中的某些人来说,使用音乐进行编程或不进行音乐编程,使用IDE或简单的文本编辑器,使用木椅或坐在沙发上,黑暗的房间或明亮的房间里……对我们的发展都产生了巨大的影响。速度。

请注意,一旦获得工作,通常可以在他们给您的办公空间中创建自己的舒适区。

编辑:这个问题使我想起一个销售人员,问如何使自己适应和更好地应对冷遇。最好的答案是继续打冷电话,并反思每个电话。一段时间后,销售人员提高了他们的技能和舒适度。我认为程序员在参加面试时没有什么不同,毕竟重点是要把自己卖给面试官


谁是索菲?索菲的漂亮双胞胎?
uɐɪ

@Rick:不幸的是,作为一名面试官,我不能只说一个人是一个有效的程序员。我需要看到他们可以实际编程。报告的经验,GPA或认证或代码示例都不能告诉我这一点。我需要看候选人做一些编程。
凯文·克莱恩

@kevincline我同意,这就是为什么我建议他继续面试并与诸如您这样的面试官相处融洽的原因。
瑞克·罗兹

6

这只是我的建议,为什么不尝试成为一名企业家。可能会有很多人面临类似的问题。如果您可以写一些赚钱少的网站,那么肯定可以从中赚钱。


1
+1,企业家精神可以看作是一种非常积极的品质。
maple_shaft

5

您已经确定了您的问题所在-在压力下解决问题(例如,有人在看着您时,即表示问题)。是因为您缺乏信心或没有足够的经验,还是在压力下挣扎?

进行大量采访以获得一些经验和实践可能是一个好主意,但也会产生反作用。面试不断失败会进一步动摇您的信心,所以要当心。

我建议您尝试对等编程,这样当有人看着您时,您可以轻松解决问题。另外,尝试找出导致您无法承受压力的原因(是实际测试本身带来的压力,在严密监督下的压力,在特定时间限制内的压力等)。


1
您还应该用谷歌搜索这些类型的测试问题。打印出他们在面试中解决问题的方式。坐在桌子旁而不是电脑旁。您需要尝试重新创建面试的压力。
Bill Leeper

3

听起来您像在压力下窒息。由于您必须在面试过程中做一些定时的示例,因此您必须学习如何克服这一点。这一切都是关于管理恐惧的,而不是关于编程技能的。

一种选择是练习编写示例问题并安排自己的时间。一旦知道可以在十分钟之内完成操作,您可能会担心计时时间会减少。

另一种选择是想出一种技术来缓解恐惧,并用它来抑制自己。学习冥想技巧可能会有所帮助。或记住一连串对抗恐惧的事物(来自Dune)。学习一些技巧来减少恐惧的反应。


3

我很惊讶没有人问过这个问题,但是您如何处理编程任务呢?

如果您只是跳入代码中,那么您很可能会迷失自己,最终犯下简单的错误并感到慌张。一次迈出一步:

  1. 收集要求:面试官问的是什么。在编码之前,请确保所有问题都为零。例如,如果遇到古老的“ isPalindrome”问题,请问“字符串是否具有特殊字符?”之类的问题。或“奇数长度的字符串(例如'ada')算作回文吗?”。在设计算法之前,您需要了解如何弄清需求。
  2. 设计算法:如果有必要,将其分为逻辑部分。谈论它。如果正在白板上,也许写一些伪代码。引导面试官完成您的步骤。尝试使用几个不同的输入(有效和无效)来遍历它,以确保获得所需的结果。
  3. 现在开始编码:至此,您应该对要编写的内容很有信心。本质上,您应该使用自己熟悉的任何语言来进行动作。在这一点上,是否存在语法错误并不重要,因为面值一毛钱的面试官会原谅那些参加白板会议的人(如果给您PC / IDE来解决问题,那就另当别论了)。

确实,在解决编码问题时,面试官并不需要太多寻找优秀的代码。.更多的是看您如何解决给定的问题。直接进入代码是不好的事情。

您还会发现,在谈论问题(需求收集和设计)时,您会更加自在,并且在编码部分不太可能犯傻的错误。


3

欧拉计划

在我看来,您没有通过fizzbuz测试。头脑麻木的简单算法通常不会有任何实际目的,除非能识别您是否了解编程的核心概念。

复习基础知识

我建议您重温基础知识。

http://projecteuler.net/

注册并开始练习,您会发现通过遍历这些示例,您将对核心编程概念有更深入的了解。我认为您会在其中找到回文问题,以及斐波那契数列和其他数学概念(听起来很熟悉)。


2

在面试时或面试后要求反馈。他们喜欢什么?他们不喜欢什么?您可能会对答案感到惊讶。

当然,不同的人会寻找不同的东西,但是解决问题的方法通常比编写100%正确的解决方案更为重要。您可能会担心所有错误的事情。

变得更好的最好方法是练习。尝试写下一个简短的问题列表。然后,针对列表中的每个项目,编写一个解决该问题的小程序。从非常简单的问题开始,例如FizzBu​​zz,然后逐步解决难题。您能解决您之前采访中遇到的问题吗?找到两个字符串共有的最大子字符串?计算n !?的素因式分解。

这样做的目的不是要学习解决您可能遇到的每个问题的解决方案,而是要给自己一些练习,以快速编写小型程序,并弄清楚自己的弱点在哪里,以便您可以改进。使用正确的数据结构可以轻松解决许多问题,否则就很难解决许多问题,因此请确保您在数据结构上有坚实的基础。


2

练习并找到某人来帮助您指导您如何通过它。可能需要尝试几次,但是如果您可以得到一些反馈和实践,可能会发现令人惊讶的发现。我有一个招聘人员向我介绍了一次如何处理白板问题,该问题似乎与您在此处遇到的问题类似。

我不建议记住太多的答案,因为它具有解决此类问题时该怎么办以及如何解决的蓝图。看起来像什么?您是否看到过类似的问题?就算法而言,一些简单的方法会产生什么?至少那是我对你的建议。


2

当要求软件开发人员参加编码测试或在面试中写一小段代码时,软件开发人员通常会感到沮丧。正如某人已经提到的那样,这是因为我们大多数人只有在我们处于“舒适区”并坐在一个由2-5名访问员包围的小房间中时,才可以真正地增加很多舒适感。

答案有三点:

  • 多练习,多练习。尝试一个月用纸和笔进行30-40分钟的编程,您会感到惊讶,它变得如此容易。在练习时-尝试在面试编码会议上要求您进行的编程任务-例如实现单例,反转字符串等。“阅读那段垃圾代码并找出错误的地方”甚至更容易。 “-尝试打印,他们会分析这些打印结果两周,您将大大提高该技能。

  • 了解如何控制恐惧。如果您认为测试太难了,并且只能完成20%的测试-做到那20%,则不必担心其余的测试。可能是因为测试所需的时间过大(例如,面试的人应该给您20分钟才能完成测试,但由于生产量激增,他们需要在5分钟内完成面试,等等) 。其他候选人也有可能仅完成了10%的考试,因此,如果完成20%的考试,您仍将领先于其他候选人。

  • 在面试中编写代码时-不要在第一遍就使代码完美。只需实施“首先是最常见的情况的快乐路径”,然后再进行错误处理即可。如果您时间不够用-只需在工作表的底部概述一下即可-如果您有更多的时间可以改善代码。

[必须运行,稍后会编辑/改善我的答案]


1

正如许多人已经说过的那样,练习是最重要的事情之一。如果您已经做过类似的问题,则可以快速提出解决方案。

如果您很难解决自己想解决的问题,请尝试使用Google搜索为您的语言或选择编程面试问题。

此外,您还可以挑选专为教授较低级别的CS课程而设计的书籍。这些书大多数都充斥着很小的编程任务,可以在家中快速完成。它们可以用于练习。


0

我的考试成绩也很差,而且一直如此。我一辈子都想不通为什么为什么要给我上铅笔和纸的测试课。我从来不擅长。但是,我所做的是向面试官解释我有这个问题并知道这一点。我还设法采访了那些没有给我带来愚蠢考验的公司。

我的建议是在进入面试之前告诉公司,您不会进行此类测试,但是您很乐意使用X。(找出一个可行的替代方法,您会感到很自在。)对于我自己,我愿意向他们发送代码,有一次我建议他们给我一个简单的程序来编写,然后将其带到面试时间在3天之内。

根据您在哪里寻找工作,这可能对您不起作用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.