面试官告诉你,为什么一定要过手写算法这一关

  IT互联网公司的技术面试,一般都会有手写算法的这一关,有的简单,有的复杂,根据岗位的不同有所差异。面向业务的研发岗,算法要求不高,考察的算法不会太难。面向算法一类的研发岗,算法就比较难了。我主要关注的是面向业务的研发岗面试。

  

面试官告诉你,为什么一定要过手写算法这一关

  有人可能会说,基础类库已经封装了算法,直接调用即可。况且遇到不懂的可以问度娘,搜谷歌,只要一台连接互联网的电脑,没有解决不了的问题。这么原始的手写算法,是不是有点矫揉造作,多此一举呢?

  这样的论断比较有市场,身边的同事也跟我提起过,但就我本人来说,不敢苟同这样的论断。我面试的候选人,都要经过这一关的洗礼,才能通过技术面试。

  我主要有如下的几个考虑:手写算法能够考察候选人是否真的理解算法。通过口头交流是一方面,能够落在纸面上的,那才是真的理解。手写算法能够考察候选人的动手能力。把知道的、理解的业务,用代码实现,这是程序员的日常,动手能力是程序员必须具备的基础能力。手写算法能够考察候选人的编程习惯。括号的位置、函数的命名、参数的定义等等,在写算法的过程中,因为没有编辑器的格式化功能,能体现出候选人最真实的一面。

  有些工作经验比较丰富的工程师,会觉得手写代码有“被小瞧”的感觉,我遇到过这样的情况,不是很多。以我的经验来说,我首先会解释这是必须的考察,如果候选人不同意手游账号转让平台手写代码,那面试就到此结束了。在面试官看来,工作经验丰富不是豁免的资格,不同意代表着不会写,并且也代表了消极的工作态度。

  手写代码有哪些要求呢卷面整洁。参加过高考的同学都知道,作文的卷面整洁很重要,同样的内容,写的模糊潦草,可能就是几十分的差距。手写算法也一样,整洁的卷面更有助于表述逻辑。要想好了再开始写,可以打草稿,给面试官的那份最好不要有涂改的痕迹。逻辑清晰。能做到逻辑清晰的前提,当然是对算法有正确的理解。命名规范。函数、参数的命名,一定要规范。不要用i,j,str等这样的名字,用具有明确含义的英文单词命名。这点对于英文不太好的同学,要求有点高,但至少不要用中文拼音吧。

  在面试的开始,面试官就让写一段代码,大概率是面试官比较忙,不希望在面试中太浪费时间,通过手写算法刷掉一批候选者。如果在面试的结束,面试官让写一段代码,大概率是之前的回答都比较满意,这是最后的考验了。无论这个环节在哪个时间点,记住“手写算法很重要”就是了。很多的面试中,手写算法往往有一票否决权,占有很重的分量,一定要严肃对待。

  对于大多数人来说,能写出主要思路,但是有缺陷,这样的情况面试官如何评判?这样基本上是70分的水平,剩下的面试官给你提一些改进建议,如果能理解并且完善了算法,就弥补到了90分的水平。这就说明,良好的沟通也很关键,读懂别人想要什么。

  面试官让写的算法,确实不了解,有没有补救的措施呢?以我个人的经验来说,在要求候选人写算法的时候,会明确问他懂不懂,如果不懂,会找个更简单的继续沟通。当然要和岗位有个匹配,高级工程师还去写冒泡排序就有些不合时宜了。作为候选人,遇到这种状况,可以跟面试官开诚布公的交流,并提出能否写一个简单点的算法,一般都会同意的。

  总结一下,遇到手写算法的情况,不要有抵触的心里,认真的对待,认真的去做就好了。预祝面试成功。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值