面试数十人有感

23,324 阅读5分钟
平时会接一些模拟面试的服务,几个月下来也面试几十个人了,来和大家聊聊面试了这些人的感想。

万丈高楼起于垒土

基础对于每个人都是很重要的一步。无论你做的是什么领域的东西,计算机科学中的必修课必须是要学好的。就前端而言,OS、数据结构与算法、网络这几块内容是必须要掌握的基础的,这些基础不扎实,你的天花板势必不高。但是其实在面试的过程中,我发现无论是社招的还是校招的,基本上基础都不大行。我认为,对于校招生来说,基础不好基本和大厂绝缘了;对于社招来说,基础不好虽然也同样能干活,但是天花板不高会导致你的技术成长会随着年龄增长变得越来越低,最后结果也基本是停留于二三线公司。

所以任何一个想要在技术这条路上走的更远的人,都应该好好学习计算机科学。如果你已经脱离学校了并且英语还行,我强烈推荐 CS61 系列,如果你能将这三门课完整的学习下来也基本有大部分科班本科的素养了。

说完计算机基础,那么来说说前端的基础吧。在面试的过程中,发现大部分人问基础知识点还是能够说出来的,但是仅限于知道。对于如何将多个知识点串联起来或者知识点的更深层次的问题就很少有人能够答好。

打个比方,跨域这种问烂的问题想必大家都能答出点东西。这个也是我常会问的一个问题,当然我还会配合几个问题去问。比如问什么浏览器要引入跨域这个机制;跨域请求到底有没有正常发出去并收到响应;是否了解跨域预检。对于以上三个问题,能够答出的人并不多,更多人只是知道我该如何去解决跨域,但是对于为什么要有跨域反而知道的并不多。这也侧面反应了大部分人并没有深入挖掘知识的意识,只是停留于表面。

对于基础而言,我认为所有人都应该好好夯实。如果你是转行的,那么首先应该把前端基础学好,然后有空的时候去补计算机基础;如果你是科班出来的,首先肯定是学好计算机基础,然后才是前端基础,这样你才能站得高,成长得快。

框架

现在框架已经是前端绕不开的话题了。很多人会纠结于我该挑选哪个框架或者哪个框架牛逼等等,首先在学习框架前,我觉得你应该先打好基础,而不是好高骛远的先使用框架。再者,几大热门的框架底层的思想都是一致的,并没有哪个好哪个差之分。

在面试的过程中,框架原理其实是绕不开的题目了。但是说实话,面试下来的结果却是很少有人熟悉框架原理,只是停留于会用框架。这其实是一个不好的现象,打个比方,一个机器建造出来可以通过说明书的方式让流水线工人去使用,就算一批工人走了,还可以再去招一批,你并没有什么核心竞争力。但是对于会修理机器的或者会造机器的人来说,找工作会很好找,因为这是核心技术人才。放到编程里也是一样的,单纯会使用 API 的人并不会成为稀缺人才,充其量一个中级开发。但是如果你熟悉 API 底层的原理,那么也许你就可以晋升成为高级开发,从而提高个人的核心竞争力。并且一旦你熟悉了底层原理,你的眼界也会高于别人,不会纠结于我该选择什么框架,不会担心个人的经验是否会很大程度影响找工作。

所以,在这里我想讲的是:学习一件事物,熟练使用它是基本,在熟练使用以后,应该转而去学习他底层的原理机制,甚至自己去实现一个类似的东西。当你这样去做的时候,永远不需要担心自己是否会淘汰,因为你已经领先所有只会用 API 的人了,这部分绝对是最多的。

最后,对于每个想在面试中获得好的结果的人来说,都应该做到以下几点:

  • 夯实自己的基础,基础决定了大楼的高度
  • 有深入挖掘知识的思想,对于每个知识点都应该考虑一下这玩意怎么实现的,为什么要有这玩意
  • 不要做框架 API 的熟练工,尽量去了解框架底层的原理机制

如果你能做到以上几点,你差不多就领先百分之 90 的人,路已经给各位指好了,就看各位走不走了。

评论区反正也没啥好说的,各种没仔细看文章就开始蹦出来喷了

  1. 我面试到很多都是 3 年经验左右的人,只会用用 API,对于这部分想要继续精进的人,难道不应该多学习底层相关的东西?
  2. 别把原理想的好像很难的样子,多去了解下现在校招的环境,没写多少代码就开始问框架原理了,别看着人家工资好像比你社招的都高,那是因为人家本来就比你牛逼。不要低估别人,高估自己。
  3. 还是想说要仔细看文章,我开头说了模拟面试。人家是花钱的,我是给人家建议的,当然往好的地方给人家去建议了。