AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

工作十年后面试华为,60 分钟现场编程能测出我的实力吗?

  • 2019-05-16
  • 本文字数:3497 字

    阅读完需:约 11 分钟

工作十年后面试华为,60分钟现场编程能测出我的实力吗?

从华为技术岗面试改革说开去,程序员的实力究竟应该被什么标准所定义?是技术上的深度与广度,还是大型项目的实战经验,还是对架构、趋势的把握程度?亦或是熟练的手写代码能力?

程序员面试,一个玄学问题

程序员的面试问题一直是个玄学。有的公司认为应该考量应聘者的技术深度与视野,有的公司则认为起码的白板手写代码是基本要求。而在面试者们看来,都是拧螺丝的 Crud Boy,你让我瞎造什么核弹。


前不久,华为宣布面试改革,将增加编程环节,充分考察程序员实际动手编程能力。改革中有几个要点:1.应聘人员要先在网上进行 90 分钟的网上编程,符合要求之后才能进入到面试环节;2.应聘人员须选择一种编程语言进行两轮面试,每轮约 45 分钟,30 分钟编程、15 分钟提问讨论。面试官独立进行面试考察,并根据岗位要求设计编程考察题目,应聘者需通过当面或视频编程的方式完成题目。


对于程序员来说,把需求转化为代码实现,并写出健壮程序是最基础也是最重要的能力。华为此举优化了软件类人才的面试流程,面试更以考察软件工程能力与编码能力为核心。


事实上,对此做法表示赞同的不在少数:


  • 作为 IT 行业的资深 HR,我表示认可;

  • 作为一个面试无数次被拒的程序员,我表示认可;

  • 实际操作能力是得考察一下;

  • 不编程怎么招聘程序猿?二十多年前我自己应聘,后来我负责招聘,都是要上机写程序的。


但是也有一些不同的声音,认为这样的考核标准太过严厉:


不说别的,就把华为最牛逼的人,最优秀的人拉出来,看看他徒手能写几行,用相同的方式去把华为程序员过一遍,估计 80%需要淘汰,大家同一个圈子,何必为难同胞。


这样的抱怨,也经常发生在一些“功成名就”的优秀老程序员身上:


“我现在接近 40 岁了。去年 12 月,我离开了我的创业公司,不再担任该公司的 CTO 职位。自那之后,我至少经历了 10 次失败的面试,这些面试都有编程测试环节。我有近 20 年的开发经验,包括早期电子工程开发和完整的分布式 Web 应用程序开发等。我创建的软件可以在全球大批量的专业生产工厂中实现完整的产品追溯。然而现在,我甚至找不到一个开发的职位,因为我通不过这些编程测试。”


同样的事情在大龄程序员不那么受“歧视”的国外也依旧存在。一位具有 10 年工作经验的计算机专业博士,不停地用网上题库进行练习,想加快编程速度。在此之前,他屡次被一些 IT 巨头公司拒绝。


这样的面试要求,不仅会淘汰很多不合格的软件人员,也为很多高级开发工程师敲响了警钟。如果想进大厂,面对这样的面试要求,你慌不慌?

对于面试现场编程,BAT 未必赞同华为做法

现场编程是最能直观体现程序员编程水平的一种方式,也是程序员证明自己的最好方式。我们也曾在报道中看到过程序员大佬现场编程拿到高薪职位的各种版本。


比如某位程序员去京东面试前端岗位,在技术面这一轮直接用 JavaScript 写了个魔方特效,通过终面,拿到高薪;


再比如某位去腾讯面试的程序员,现场用原生 JS+canvas 开发出了一款五子棋游戏,成功拿下该岗位…


华为面试改革后增加了现场编程的环节,那么 BAT 等 IT 大厂面试是否有现场编程这个环节呢?我们分别询问了阿里、腾讯和百度的同学。


根据反馈:阿里有笔试手写代码的环节,但没有现场编程的环节;腾讯各个团队的面试不一样,有的团队需要上机写代码和编译提交;百度没有现场编程环节,甚至有的团队连手写代码的环节都不需要。


这样来看,BAT 都不做的事儿,华为为什么要做呢?


对于华为来说,以前用大规模招聘来快速补充业务发展所需的人力压力,所以他们的面试步骤也是因为这个诉求而逐步建立起来的。在面试改革的文件里,他们提到“HR 看简历面试又不深刻,导致大规模进人、大规模走人”,这样来看,编程环节可以极大简化 HR 检查和审核的过程。


看来应聘华为的程序员同学应该是数量庞大,针对大批量申请者,这样的现场编程面试虽然会漏掉个别优秀的人,但是不会影响华为招聘的节奏。


对于华为这一面试做法,如果 BAT 都持保留意见,那么中小型公司是不是就更没必要了?


我们采访了一位 30 余人技术团队的负责人,他表示:“在我们这样体量的团队中,让程序员在面试时现场编程是完全没必要的,通过笔试题目和现场问答,完全可以了解到应聘程序员的实力。”

除了动手编程,还能如何了解程序员的软硬实力?

写代码是程序员的生命力所在,无论是现场编程还是手写代码,面试官总是试图从这些代码中看出应聘者的代码水平和习惯,例如代码的可读性、可维护性如何;界面、功能的设计能力如何;思维、代码结构是否清晰等等。


但是有时候面试官的水平和眼光也决定着这种做法是否真的那么禁得起考验。


Facet 的 CEO 曾抱怨自己在 Netflix 时,不小心拒绝掉了亚马逊Prime Air的创始人。另一位从业 30 多年的业内人士看到这个消息,也感慨自己的一位同事,一位公司内排名 Top 5 的程序员,在面试其他公司时,首轮就被刷掉了。这说明不仅程序员本身拥有过硬的实力很重要,招聘者是否具备伯乐的眼光更重要。


招聘新思路——建立工作样本测试

“如何在短时间内了解程序员的软硬实力”是每个招聘者的必修课。诺贝尔奖得主 Daniel Kahneman 因其在判断和决策方面的成绩而闻名,他在早些时候接受采访时表示,面谈对于选择最佳岗位候选人来说是非常糟糕的,但遗憾的是他并没有提出替代方案。不过,著名的工程师兼评论员 Thomas Ptacek 在发表的招聘方法论的文章中提出了这样一个招聘方法——建立工作样本测试。相比于询问应聘者的工作内容,让应聘者实际操作是更好的一个方式。


工作样本测试需要具备以下特征:


  • 尽可能地反映出应聘者在未来将要完成的实际工作;

  • 要是标准化的,每个应聘者都要进行同样的测试;

  • 最终生成数据和评分,而不是简单的及格或不及格。


Thomas Ptacek 曾尝试使用工作样本测试,他们在一个单文件 Sinatra 项目中构建了一个电子交易系统,接口为定制的二进制协议,同时构建了 web 接口来驱动协议。应聘者需要找出这个交易体系中的缺陷。


“这样一个小测试需要应聘者在几小时内编写出几百行代码,比其它任何面试都更有预测力”。Thomas Ptacek 表示:“相比于传统的面试方法,应聘者似乎更喜欢这样的测试。另外,在工作样本中做的评估越多,面谈中需要谈的内容就越少。”


这样的工作样本测试也适用于纯开发任务,例如面试官可以实际构建和部署一个应用程序,并从应用程序中划分出一些功能区域,删去某些功能,让应聘者重新添加。

招聘常规思路——历史项目描述及笔试题目

如何才能快速了解到程序员的软硬实力?“交流历史项目是一个很好的方式”。某位技术团队负责人表示:“我一般的面试时间是 40 分钟到 1 个小时左右。从历史项目的描述中,我可以验证他是否曾真正参与到该项目中,也能很快地了解到他之前在团队中扮演的角色、做的事情,同时还可以就该项目发散到其它技术细节。另外,这样的描述也顺带考察了应聘者的表达能力和对技术细节的关注和处理能力。”


某公司 HR 表示:“HR 面试程序员的时间大概在 25 分钟左右,来公司以后先做一套题,简单粗暴有效。笔试题目除了考察基础的技术功底之外,也会增加一些场景题,考察应聘者的应对能力。”

面试高级岗位,还需要进行技术细节笔试吗?

前几日,一篇题为《我是技术总监,你干嘛问我技术细节?》的文章在技术圈火了,文章的起源是猎头妻子向作者抱怨,“现在的客户真难伺候,招的是 VP,问的全是与细节相关的问题,最终,候选人抱怨企业小瞧了他,企业则吐槽这哥们很水。”这一话题也引发了大家对于面试高级岗位是否还需要进行技术细节笔试的讨论。


针对这一话题,我们也咨询了专业猎头,他表示:“如果你在沟通中已经获知了应聘者有非常好的编程底子,或者招聘的是高级技术总监这样级别的岗位,一般是不需要进行现场编程或笔试题目考察的。我们会通过他在行业中的影响力、之前的项目经历、对于问题的解决思路和前瞻考虑等方面来考察面试者能力。”


上善伐谋,次善伐交,下善伐城。由于国内很多科技公司尚处于发展阶段,所以类似 CTO、技术 VP 等职位可能仍需要在前线“攻城略地”。但是无论是否要冲在一线,技术管理者的工作优先级,肯定是要放在对前瞻技术的预判、对团队的管理、与业务线的协作上。如果这些事情占据他们绝大部分精力,他们是不会有时间去写代码的,很多大厂 CTO 也坦言”自己现在不写代码了“,当然这并不意味着他不会写代码。


此前我们在采访蚂蚁金服 CTO 程立(鲁肃)的时候他曾经表示:“虽然我不碰代码了,但支付宝到底有多少个系统,当用户第一次点击这个系统会呈现什么样的状态,整个过程我都非常清楚。所以如果支付宝出任何故障,我会第一时间知道哪里可能会有问题,哪个关键点会出问题。”


如果是你,工作十年之后再次求职,你还愿意和刚毕业的求职者一起,做一份动手编程题吗?


2019-05-16 18:1410164
用户头像

发布了 497 篇内容, 共 333.7 次阅读, 收获喜欢 1925 次。

关注

评论

发布
暂无评论
发现更多内容

Pg数据库日常维护操作指南

查拉图斯特拉说

数据库 postgresql PgSQL

这88道阿里高级岗面试题,刷掉了80%以上的Java程序员

钟奕礼

编程 程序员 Java 面试 Java、

打造全链数据营销服务,华为云助力车企业务增值

科技之光

「复享光学」用深度光谱技术推动光与电的变革

硬科技星球

建木v2.6.2发布

Jianmu

开源 DevOps 持续集成 低代码 CI/CD

Flink Shuffle 3.0: Vision, Roadmap and Progress

Apache Flink

大数据 flink 实时计算

【12.23-12.30】写作社区优秀技术博文回顾

InfoQ写作社区官方

热门活动

打破工业发展瓶颈,华为云赋能工业企业转型成效显著!

科技之光

暴雪、迪士尼大佬用什么画画?RayLink远控软件助力解锁远程创作

RayLink远程工具

远程控制软件 远程办公软件 远控软件 RayLink

AI for Science的上半场:人工智能如何重新定义科学研究新范式?

脑极体

刷完200+大厂Java真题手册,成功拿到阿里,京东,美团的offer

钟奕礼

程序员 Java 面试 Java、 java 编程

企业数字化转型难?华为云大数据BI帮你一站式上云

科技之光

2022,我们追逐群星,也在追逐AIGC的无尽可能

脑极体

公司刚来的阿里p8,看完我构建的springboot框架,甩给我一份文档

钟奕礼

程序员 Java 面试 Java、 java 编程

备受企业青睐的华为云CDN优势到底在哪?

路过的憨憨

华为云CDN提升网站响应速度,让下载快人一步

路过的憨憨

2022年最全大厂面试真题解析:java集合+spring+并发编程+MyBatis

钟奕礼

程序员 Java 面试 Java、 java 编程

华为云大数据-助力数据价值化,释放企业发展潜能

科技之光

数字化转型如何更方便?华为云大数据BI解决方案来了!

科技之光

墨菲安全软件供应链安全产品v3.0正式公测之产品特性简介及用户升级说明

墨菲安全

软件成分分析 开源安全 墨菲安全 软件供应链安全

启科量子部署工具 Runtime 正式开源

启科量子开发者官方号

部署 量子

云原生、20.3k Star......时序数据库 TDengine 的 2022 年精彩纷呈

TDengine

数据库 tdengine 开源 时序数据库

华为云CDN加速服务,引领企业数字化发展潮流!

路过的憨憨

接口自动化测试不想写代码?这款工具强烈推荐

叶小柒

测试 Postman

华为云CDN,助力安全企业下载服务,更好提升用户体验

路过的憨憨

既要速度与激情,也要稳定和安全,华为云CDN让你速度和安全兼得

路过的憨憨

10 万字节Spring Boot +redis详细面试笔记(带完整目录)免费分享

钟奕礼

程序员 Java 面试 Java、 java 编程

我坦白→低代码功能我有,SQL练习题、数据可视化、数据填充助你高效

非喵鱼

sql 低代码 可视化 eCharts 数据库·

如何快速建立商业智能系统?华为云告诉您!

科技之光

Dubbo 3 之 Triple 流控反压原理解析

Apache Dubbo

Java 开源 微服务 gRPC dubbo

蚂蚁金服Java研发岗二面:说说HashMap 中的容量与扩容实现

钟奕礼

程序员 Java 面试 Java、 java 编程

工作十年后面试华为,60分钟现场编程能测出我的实力吗?_技术管理_田晓旭_InfoQ精选文章