程序员的三大难题:秃顶、面试、找女朋友

简介: 如果说女朋友是程序员会遇到的第一大难题的话,那么白板面试应该是当之无愧的排行让程序员最头疼的第二大难题,秃顶勉强排在第三。多数程序员都不太喜欢跟外行解释程序员到底是干什么的,但是因为白板面试太遭程序员恨了,以至于多数也不得不跟外行吐槽什么是白板面试,可见白板面试到底有多让人头疼。

如果说女朋友是程序员会遇到的第一大难题的话,那么白板面试应该是当之无愧的排行让程序员最头疼的第二大难题,秃顶勉强排在第三。

多数程序员都不太喜欢跟外行解释程序员到底是干什么的,但是因为白板面试太遭程序员恨了,以至于多数也不得不跟外行吐槽什么是白板面试,可见白板面试到底有多让人头疼。

img_fc06e3cbdf8f6d860478d179ff62c85f.jpe

很多人都觉得白板面试饱受诟病,但是不论国内外,白板面试反倒是越来越火。也许是被谷歌这种大公司带的头,到现在白板面试倒发展成为程序员面试的行业入门标准。

什么是白板面试?

白板面试指面试时,面试官要求不借助 IDE,互联网等工具,直接在白板或者纸上手写代码以实现某块功能。跟上学的时候闭卷考试那种感觉差不多。

不论是在墙内还是墙外,各种平台上都少不了程序员们发泄自己愤怒,狂怼白板面试的例子。其中最最最为著名的例子当然非 Max Howell 莫属了。

都说拥有一个好的 Github 是面试一份好工作的敲门砖,然后 Max Howell 著名的开源项目 Homebrew 却不能敲开谷歌的大门。

img_010c3996f47767e3eebcaff7527c5a80.png

被谷歌拒绝的原因很简单,就是因为 Max Howell 无法在白板上写出翻转二叉树的算法。之后不久,LeetCode 上就出了这道题,并且难度被定义为简单。

img_bda0ce9445282c7ef59e7413bcbfb740.jpe

然而大牛居然解决不了一道基础的算法题倒是让大家惊讶,具体原因 Max Howell 也没说。后来只是发个推吐槽了谷歌的白板面试。

img_f08ccc076fbfb0ce400df0176e3561cd.jpe

但是毕竟是大牛,有实力的大牛因为一个小问题没被谷歌录取,当然在互联网上被程序员们热议。甚至因为这件事,不少程序员开始纷纷响应,开始各自站队,互联网上还兴起了一次取消白板面试的抗议。

说到这里,也给大家推荐一个架构交流学习群:614478470,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,相信对于已经工作和遇到技术瓶颈的码友,在这个群里会有你需要的内容。

那么目前的白板面试到底有哪些弊端?

程序员平时都是用 IDE 写代码,而且多数情况下还需要面向搜索引擎编程,突然冷不丁地让你用墨水写代码,一下子肯定不习惯。再加上面试的时候本来就紧张,还有面试官一直盯着你,面试者肯定感到不安。

img_02bbd1aa0e241853f0874f31561fd8f7.jpe

那个时候的心情,估计比考试监考老师一直站你旁边看你卷子还复杂。

img_3d74b7d7b52df2e4d165ebf63511e916.jpe

而且再加上现在白板面试被越来越多的公司效仿,很多公司只一味的跟风,觉得别人面试都要用白板面试,为什么我们不用,导致最后只是为了用白板面试而白板面试。而用白板面试真正的原因是什么,却又没有学到。

举个糟糕的白板面试的例子,面试过程中,问的问题过于刁钻困难,以至于这些问题在以后工作中根本涉及不到。这样搞根本不能筛选人才,或许刚毕业在学校期间有过一些算法经验,然而并没实战多少的大学生更能适应这样的面试。

而且白板面试的过程中还要严格要求写代码的时间,加上面试官也特别不友善,面试的时候函数名记不住了不跟你说,需要第三方的api的时候也不给你提供,最后还要求写完了的代码要一次能编译过。

这样下来,有能力的面试者反而被淘汰了。

img_738dae7323cd0eba09939f9df6dca6c4.jpe

正是因为白板面试过于泛滥,也出现了一种面试前面试者们都去刷题的现象,也就只是为了适应白板面试,这样子搞下去,就跟应试考试没多少差别了。甚至有的面试者为了一个面试要准备几年时间,在LeetCode等网站上刷一大堆5天高考3天模拟。

img_9ccd514eae69a6e514ddc030057500a2.jpe

其实我觉得,白板面试并没有错,错误的是白板面试的方法。白板面试更注重的应该是解决问题的思路,如果函数名记不住了,或者需要api,面试官应该提醒。如果写出来的代码编译不过,面试官应该与面试者进一步讨论如何解决问题。

想要学习Java高架构、分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师视频免费获取 架构群:614478470

点击链接加入群聊【JAVA高级架构】:https://jq.qq.com/?_wv=1027&k=5gMDouY

当然,如果不跟风的话,给面试者提供一台电脑,最好给面试者提供他熟悉的开发环境,让他有充足的时间测试,如果还能面向互联网编程,或许更能更好地反应出面试者的真正实力。

相关文章
|
3月前
|
存储 算法 程序员
【Leetcode 程序员面试金典 01.01】判定字符是否唯一 —— 位运算|哈希表
可以使用哈希表或位运算来解决此问题:由题可知s[i]仅包含小写字母,int[26]即能表示字符的出现次数;
|
3月前
|
算法 程序员 索引
【Leetcode 程序员面试金典 02.08】 —— 环路检测 |双指针
我们可以使用双指针解决本题,由数学推导可知:a 的距离为(环长度的倍数 - b),即 tmp 指针从头节点走到环开头节点等于 slow 指针走到环开头节点的距离
|
3月前
|
Java 程序员
【Leetcode 程序员面试金典 05.01】插入 —— 位运算
位运算问题,只需要把 N 的 i 到 j 位都置 0 后再和 M 左移 i 位的结果进行按位或即可
|
3月前
|
NoSQL Java MongoDB
程序员的50大MongoDB面试问题及答案
程序员的50大MongoDB面试问题及答案
|
3月前
|
网络协议 Linux 程序员
程序员的50大Linux面试问题及答案(二)
程序员的50大Linux面试问题及答案(二)
|
3月前
|
算法 架构师 安全
10年Java面试总结:Java程序员面试必备的面试技巧
作为一名资深10年Java技术专家,我参与了无数次的面试,无论是作为面试者还是面试官。在这里,我将分享我的一些面试经历和面试技巧,希望能帮助即将面临面试的Java程序员们。回顾我的Java职业生涯,我清晰地记得一次特别的面试经历。那是我申请一家知名科技公司的Java开发岗位。为了这次面试,我花了几周的时间准备,这不仅包括Java的基础和高级知识,还有关于公司产品的研究。
138 0
|
2月前
|
运维 算法 程序员
程序员去国企:长城资产IT岗位秋招面试记录
【2月更文挑战第7天】本文介绍2024届秋招中,中国长城资产管理股份有限公司的信息技术岗岗位一面的面试基本情况、提问问题等~
|
3月前
|
SQL 缓存 Java
程序员的30大Mybatis面试问题及答案
程序员的30大Mybatis面试问题及答案
|
3月前
|
Java 程序员 应用服务中间件
程序员的31大Maven面试问题及答案
程序员的31大Maven面试问题及答案
|
3月前
|
存储 Unix Shell
程序员的50大Linux面试问题及答案(一)
程序员的50大Linux面试问题及答案(一)