Skip to content

使用哪种编程语言编写面试代码

原文:https://www.techinterviewhandbook.org/programming-languages-for-coding-interviews/

你用来编写面试代码的编程语言重要吗?答案是肯定的。

大多数公司让你用任何你想要的语言编码——我知道的唯一例外是谷歌,他们只允许候选人在他们的算法编码面试中选择 Java、C++、JavaScript 或 Python。

然而,你所做的选择对你的表现的影响比你想象的要大得多——这就是为什么在你准备编码面试的早期选择一种合适的编程语言是很重要的——并在实践中经常使用。

在决定使用哪种编程语言时,有 3 个考虑因素:

  1. 适合面试
  2. 你对这门语言的熟悉程度
  3. 例外

1.是否适合面试

有些语言更适合面试——像 Python 或 Java 这样的高级语言提供了标准的库函数和数据结构,可以让你更容易地将解决方案转换成代码。

从我面试的经验来看,大部分应聘者都会选择 Python 或者 Java。其他常见的语言包括 JavaScript、Ruby 和 C++。我绝对会避免像 C 或 Go 这样的低级语言,原因很简单,因为它们缺乏许多标准的库函数和数据结构,有些可能需要手动内存管理。

就我个人而言,Python 是我在算法编码面试中事实上的选择,因为它简洁并且有一个巨大的函数库和数据结构。Python 还使用一致的 API 来操作不同的数据结构,比如len()for ... in ...和序列上的切片符号(字符串/列表/元组)。获取序列中的最后一个元素是arr[-1],反转它只是arr[::-1]。用 Python 中最少的语法可以完成很多事情。

Java 也是一个不错的选择,但是必须不断地在代码中声明类型意味着额外的击键,这会导致更多的输入,这不会带来任何好处(在面试环境中)。当你在现场面试中不得不在白板上书写时,这个问题会更加明显。选择/不选择 C++的理由和 Java 差不多。最终,Python、Java 和 C++是不错的语言选择。

  • 推荐:Python,C++,Java,JavaScript
  • 可接受(但如果你熟悉的话更倾向于推荐):Go、Ruby、PHP、C#、Swift、Kotlin
  • 避免:Haskell,Erlang,Perl,C,Matlab
  • 你一定是疯了:脑残,集会

2.你对语言的熟悉程度

大多数时候,建议你使用一门你非常熟悉的语言,而不是仅仅为了在面试中使用而学习一门新的语言。

如果你有时间限制,仅仅为了面试而学习一门新语言并不是一个好主意。语言需要时间来掌握,如果你已经把大部分时间和精力花在修改/掌握算法上,就几乎没有多余的精力来掌握一门新语言了。如果你熟悉使用一种主流语言,就没有理由仅仅为了面试而学习一种新的语言。

如果你已经在工作中使用 Java 有一段时间了,但没有时间熟悉另一种语言,我建议你坚持使用 Java,而不是为了面试而从头开始学习 Python。这样做,你可以避免在工作和面试时不得不在不同语言间切换。大多数时候,瓶颈在于思考,而不是写作。在一个人能够流利地使用一种语言之前,需要一些时间来适应它。

学习一门新语言的正当理由:

  • 面试要求使用该语言(特定领域的角色,如移动/前端/数据科学)
  • 你并不急于开始面试

学习一门新语言的糟糕理由:

  • 你面试的公司大量使用这种语言,你想给面试官留下深刻印象/显示你很适合
  • 你想展示你是时尚的

3.异常

允许你“选择任何你想要的编程语言”的惯例的一个例外是当你面试一个特定领域的职位时,比如前端/iOS/Android 工程师角色,你需要分别熟悉 JavaScript、Objective-C/Swift 和 Java 的编码。如果你需要使用一种语言不支持的数据结构,比如 JavaScript 中的队列或堆,也许可以试着问面试官你是否可以假设你有一种数据结构,它实现了特定时间复杂度的特定方法。如果数据结构的实现对解决问题并不重要,面试官通常会同意。实际上,了解现有的数据结构并选择合适的数据结构来解决手头的问题比了解复杂的实现细节更重要。



回到顶部