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

  

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

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

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

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

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

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

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

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

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

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

  1. less面试_资深面试官告诉你:面试时千万不要说这七句话

    毕业季到了,即将走出校门的学生们一个个都面临着找工作这件人生大事.找工作除了靠实力,面试发挥也很重要.哪些话该说哪些话不该说,初出茅庐的年轻人可得搞清楚.资深面试官告诉你,下面这七句话是"面 ...

  2. 技术面试官告诉你面试应该怎么准备?

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:Java实现QQ登录和微博登录个人原创+1博客:点击前往,查看更多 作者:Java_JJ 链接:https:// ...

  3. 【程序员面试干货】资深面试官告诉你:测试工程师面试要注意什么?

    找工作,找更好的工作,永远是职场人士特别是IT/互联网这个人才流动性巨大行业的永恒话题.而提到找工作,又离不开对于面试的探讨. 网上虽然有诸多面试相关的文章攻略,不过站在面试官角度谈面试的却很少. 本 ...

  4. BAT面试官告诉你如何回答你的职业规划

    前言(Why) 在面试中不论是在一面二面三面这种技术面,还是在最后的hr面,经常会被人问及,"谈谈你的职业规划"这种问题,我们回答的很可能会给我们的面试表现加分,如果回答地不好,对 ...

  5. 大厂面试官告诉你,这些问题,你最好别在面试时候问

    和刚参与面试工作时的羞涩相比,现在的我也俨然成为一个老油条了,一边给应试者题目和提示,一边天马行空地想想"午饭吃什么". 哎,先别说我不负责任,该给的提示和要求我都会讲得明明白白. ...

  6. 简历包装要避开哪些坑,资深面试官告诉你!

    作者:Coody http://sina.lt/gkxT 前言 上到职场干将下到职场萌新,都会接触到包装简历这个词语.当你简历投到心仪的公司,公司内负责求职的工作人员是如何甄别简历的包装程度的? Co ...

  7. 简历要避开哪些坑,资深面试官告诉你!

    正文 在互联网极速膨胀的社会背景下,各行各业涌入互联网的IT民工日益增大. 早在2016年,我司发布了Java.Ios工程师的招聘信息,就Java工程师单个岗位而言,日收简历近200份,Ios日收简历 ...

  8. 前Facebook面试官告诉你如何才能顺利通过编程面试

    许多应聘者往往在简单的小事上遭遇滑铁卢,比如主观的假设,没有传达自己的想法,编写的测试用例不佳等等.本文将重点介绍作者在Facebook担任软件工程面试官期间所学到的经验教训. 作者 | Ish Ba ...

  9. 十年Java面试官告诉你如何介绍自己的项目经验

    虽时至年底,大多数小伙伴都知道,2018年是互联网行业最不平凡的一年.各类平台的倒闭.破产.清算,尤其是6.7月分全国大范围P2P集中爆雷跑路,再加上贸易战等,居多因素,裁员的.失业的大有人在,所以, ...

最新文章

  1. IOS网络篇1之截取本地URL请求(NSURLProtocol)
  2. python官方推荐的三本书-一个合格的python程序员,应该从这三本书入手
  3. linux 生成密码本,Linux下CentOS7使用OTPW实现双因子密码本登录
  4. [BUUCTF-pwn]——wdb_2018_2nd_easyfmt
  5. 【渝粤教育】国家开放大学2019年春季 0233-22T学前儿童语言教育 参考试题
  6. scala语言示例_标有示例的Scala关键字
  7. 用SublimeText当Unity Shader的编辑器
  8. 解决python使用happybase连接hbase报错thriftpy2.transport.base.TTransportException....TSocket read 0 bytes
  9. (转)mysql 无法设置外键的原因总结
  10. 对 React 组件进行单元测试(unit testing)
  11. Ubuntu离线安装subversion
  12. HDU1230 火星A+B【进制】
  13. 基于java高校教师管理系统_高校教师电子业务档案管理系统
  14. Python 标准库 API参考文档
  15. 2017计算机二级ms office高级应用成绩查询
  16. android车载无线充apple,绿联车载无线充电器,手机支架款安卓苹果双快充模式
  17. 家用无线TP-LINK路由器使用一段时间后,频繁断网解决办法之一
  18. ue4 Android打包示例
  19. iOS-进程、线程、锁
  20. ASP.NET Identity 三(转载)

热门文章

  1. Ceph日志分区占满及调试过程
  2. Java Virtual Machine(一)
  3. 无线通信经典文献导读
  4. 麦克风音频服务器未响应,无线话筒的故障现象分析与维修方法
  5. 基于高斯过程的贝叶斯优化
  6. 持久内存BTT实现及优化(一)
  7. ucore lab3实验报告
  8. PDManer[元数建模]-v4.0.0发布:一款简单好用的数据库建模平台
  9. 关于16进制的字符串转为整数的问题
  10. 路由与交换技术——静态路由