Gather ye rosebuds while ye may

最近的面试


最近又开始面实习同学,都挂了。

我觉得好的面试应该能由浅入深层层递进,在三十分钟里尽可能多的考察面试者的能力和知识储备。最近的面试开场问题是共享屏幕给我,写一个简单的组件。

编程语言绝大多数虽说是高级语言,其实也没有那么高级。用于表述逻辑的工具种,能用的基础语法并不比俄罗斯方块多几种,程序员就是拿俄罗斯方块建楼。高级语言的高级大多体现于预装了俄罗斯方块组装的泥头车、塔吊和挖挖机,大幅提升了建楼效率。上文组件在这种建楼的比喻里,大约就是能直接拼装的精装公寓套间。下文中的框架,大约就是铁建和交建的存在。

最近这位,问他什么熟悉什么框架,他回答说 React 之前在用现在不怎么写了,Vue 因为版本迭代也不太熟悉。最后说想用原生 js 写。

现在想来他的意思应该是俺最近不怎么写,别问这些,换八股问。

结果是俄罗斯方块都玩不转。其实到这个时候基本上是挂了,但我还是抱着侥幸心理问了算法题。

写代码可以暴力分为两个步骤,一是找方法,确保自己的思路是正确的。二是把写代码,清晰地表述你的解决过程。有些算法题真的很难,第一步没有思路的也很常见。但如果第一步没有问题,那把思路转换成代码的过程就是机械的、标准的、没有什么创造性的简单。

这次抛出来的代码题真的不难:输入数字 n,输出以 2 开始的 n 个质数。例如 n = 5,输出 2, 3, 5, 7, 11。
面试者做不上来,所以就拆解到了更简单的:输入数字 m,输出这个数字是否为质数。有了这个简单方法,就可以在此之上加个循环,以回答之前的问题。
面试者做不上来,无奈拆解到了更简单的:你是如何判断 23 是否是一个质数的。
答曰:23 是质数,因为 23 只能被他自己和 1 整除。
又问:那 223 是否是一个质数,你是如何判断的。
答曰:223 是质数,因为 223 只能被他自己和 1 整除。
后来问到了 2223

再之后就毫无悬念的挂了:感谢你抽时间参加面试,我们会尽快通知你结果。

最近这几位都期待我问八股问题。甚至有个姐们儿期待我只问八股问题,「这样的话我也不浪费您时间了,我没有准备笔试」。

有个桌面壁纸是 (G)IDLE 的老姐在最后回问面试官的环节里有点懊恼,问我,如果她答上来(她没做出来的题),还要问她写什么。

就有点像是打血战剩下来最后一家,非要把还没翻出来的麻将抬起来看看,是不是早摸两张就可以割了。我也一五一十的回答她还有一个算法的变体,如果算法的变体也答上来,还有两个 css 的变体。

确实还是挺难过的,还有不到半年就毕业了,准备了几个月的腾讯阿里面试题,背了三次握手四次挥手、什么是粘包什么是跨域,this 指向哪里,闭包又是什么。

但这个老几就问了两个笔试题,什么玩意儿。

对不起,我只有三十分钟,我要在半小时内,找一个理论上,实践能力上,态度上,可塑性上都合适的同学,我没有时间问这些有唯一答案的八股。我要尽可能在这三十分钟内模拟你未来可能的工作状态,我希望你是能够独立思考的,我希望你是能够解决问题的,我希望你能一点就通。

问怎么提高前端能力,我觉得多写就对了。