2019上半年前端面经总结(前端开发实习生)

【2019.10.24更新,这是一篇最早在今年3月份就开始写的文章了,但是但是只写了一半不到就落在了草稿箱里==|,然后就一直没管了,趁着今天1024把这篇面经发出来,顺便蹭个徽章^_^】

 

笔者从今年2月下旬来到深圳开始投递简历进行前端开发实习岗位的应聘,直到3月初才慢慢找到了当前市场对于前端开发实习生的要求的规律和节奏,最终在3月10号之后收获了两个小公司的offer,当时也是结合自己的实际情况和职业规划没有进一步面试下去,而是选择了其中一家公司进行实习。

面试背景

在当时(2019.02),笔者的技能情况是:对Java语言基础掌握较好,对SSM框架比较熟悉,但是却不会SpringBoot,SpringCloud这些更加流行的框架技术;在上一家公司实习了5个月左右,虽然当时公司的前后端开发都有参与,但是由于公司使用的是很冷门的Grails (https://grails.org/) 框架(估计好多人都没有听过),后台开发中虽然有使用Java,但是大部分还是用Groovy进行开发(Spring + Hibernate),前端使用的是vue开发,相对来说技术普适性不高,也是因为这个原因笔者坚定了要离开上一家公司的观点——当时应聘实习时开发岗位上要求的明明是Java开发工程师,实际笔试面试时面试官问的也是Java相关的问题,(虽然现在看起来那些Java开发的笔试题面试题很有意思,这里顺便一提:当时笔者怀着忐忑的心情进入了一栋20岁以上的老式写字楼…第一印象其实很不好,但是还是硬着头皮上去了,根据房间号找到公司地址进去之后先给了笔者一份笔试题,题目不多,一张A4纸的容量,总共也就5道题。全部都是简答题类型的,因为时间也过去挺久了,当时笔者也没有刻意去记,只能大概的说说:有一道是考input标签的类型和form表单的,还有一道是要简述Hibernate的原理,有一道比较难的是数据库SQL查询的,其中涉及到了港币和人民币的汇率转换,还有两道是考察Java基础的……,但是在最后实际工作的内容和Java开发的交集十分之小——实际工作的主要内容是前端(vue.js) + 后端(Groovy) + SQL Server开发

【2019.10.24 更新,这就是因为工作经验不足导致的问题,一般我们如果去新公司上班,如果上了几天发现新公司的开发技术、工作内容或者模式和自己预期严重不符的话,完全可以直接卷铺盖走人】。

笔者在工作了一段时间之后才真正明白了这一现状,对这样的开发内容也不甚满意,原因如前所述,开发技术内容普适性不高是根本原因,另外也有一些通性原因:公司工作气氛差,转正工资较低,发展前景低等。

关于跳槽的思考

在这样的背景下笔者决定在2018年底之后跳槽,虽然是实习生,即便工作了几个月技术水平可能也只比职场小白好一点点,即使跳槽暂时也不会提高多少待遇,但是作为技术行业来说,最重要的始终是技术的成长空间和普适性,成长空间决定了我们的发展上限,而普适性的技术工作决定了你的底牌深度:毕竟我们是被雇佣者,是打工者,在积极努力的工作的同时也要思考这个问题:假如现在我不在这家公司工作了,我目前的工作经验和技术栈能否使我较好的过渡到其他公司,又或者是否有能力自己拉起一个团队单干。与之而来的工资待遇的提高绝对是附属品,一切都将会是水到渠成的。

前端开发&后端开发

在决定了要跳槽之后就需要选择今后的发展方向,首先在大方向上肯定还是web开发,具体分支便是前端开发和后端开发,那么应该选哪个方向呢?虽然在当时笔者对Java开发的熟悉程度要高于前端开发,但是由于在之前的实习工作中参与了大量的vue开发,所以也是打算前端和Java开发的工作都尝试着投一投简历,相当于是做好两手准备,然而理想与现实之间存在着一条巨大的鸿沟… 【2019.10.24 更新:说白了,前后端工作都可以的找的那就是全栈工程师或者准全栈工程师了,然而当时的我根本不具备这样的水平】

在开始讲这条鸿沟之前笔者想先说说关于投递简历平台的选择问题,仅就笔者接触过的平台来说主要有以下几个:前程无忧(51job)、拉勾网、实习僧、智联招聘、boss直聘。当然还有一些网站由于时间较长已经忘了,另外就是可以通过一些中大型公司的官网进入它们的专属人才招聘网站。此外还有一个获取笔经面经的十分重要的网站——牛客网;以及一个可以参考你即将应聘的公司的口碑和一些具体情况的网站——看准网(不过也有一些小公司或者特殊公司在看准网上是一点信息都没有的)。

下面具体说说这些网站的情况(纯主观印象)。

----------【2019.10.24】目前来看,程序员找工作最高效的地方还是boss直聘,boss直聘这种以聊天形式投简历的方式还是比较高效新颖的

首先是最老牌的招聘网站51job智联招聘,相对来说笔者对智联的使用程度较轻,了解较少;51job使用较多,总体来说51job上面入驻的公司最多,招聘信息也是最多的,而且不仅限于IT行业,几乎涵盖了各个行业的招聘信息,当然其中也是良莠不齐,就像笔者之前提到的有些公司招聘需求里写着要Java工程师,而实际上真的参与开发的工作可能和Java的交集极少。所以在前程无忧上面投简历如果接到面试信息之后,也是要注意筛选公司的。另外在智联和51job上会有很多中大型公司的招聘广告,也就是它们的官网招聘渠道也是值得了解的,比如今年初笔者在智联和无忧上面看到了包括三大运营商、字节跳动、腾讯、招银网络、深信服这些中大型公司的招聘广告,所以如果想进大公司的话也可以通过这两大网站来了解相关信息。

拉勾网应该说是比较专注于互联网招聘的平台,可以认为是51job旗下的网站,至少目前51job是其第一大股东。一个有意思的现象是如果你同时安装了51job和拉勾网这两个APP的话,当你打开拉勾之后51job就会在状态栏发出通知…  拉勾总体给人的感觉是里面入驻的公司级别更高些,或者要求更更严格些——至少对于Java/前端实习生来说是这样,笔者之前投递拉勾经常遇到的情况是投递了很多简历出去但是大部分都会石沉大海般的没反应,最多是显示已投递成功之后就没有下文了,然后会有几个显示简历已被查看,在之后的一两天时间里会有些所谓“简历处理快如闪电”的HR会快速把你的简历标记为不合适,虽然这样挺伤人但也还好,而最让人不可思议的是绝大部分投出的简历无反应之后,过了几个月,在你已经工作了一段时间之后可能会收到来自拉勾的邮件说您的简历被某某公司标记为不合适。这就有点恶心人了!不知道拉勾在简历处理方面是什么机制,但是使用拉勾投简历得有这方面的心理准备。总的来说拉勾上面的招聘信息更少,总体要求更高,获得的面试机会的含金量更高。

再就是实习僧boss直聘了,个人觉得实习僧比较小众一些,毕竟主要面向的是实习类的岗位,而且能获得的面试机会很少,可以作为一种获取信息的渠道,而boss直聘倒是可以多花一些心思去经营沟通,相对来说机会更大些,专业要求也是比较高的那一类。在准备面试的过程中,牛客网是不得不看的,上面有很多帖子分享最新的笔经面经,此外还提供一些名企的招聘信息,相关的招聘群,练习题等等,是备战面试的神器。最后就是看准网了,这是笔者无意中发现的网站,一般可以在接到面试电话打算去参加面试之前的这段时间去看准网上去搜这家公司,如果看准网上根本搜不到这家公司的相关信息的话,那么这家公司就值得怀疑了,究竟是公司本身不靠谱?又或者刚刚起步规模太小等等。看准网上面可以搜索到相关公司的大量信息,包括十分重要的口碑、面试、工资等等;由于其查看机制是用户必须先发表一篇自己的点评、工资、面试经验才能查看这些信息,所以其信息有相当的参考价值(虽然不排除有人乱写)。

2019上半年前端面经总结(前端开发实习生)_第1张图片 看准网上可以获取公司的工资、面试、口碑等信息

 

前端笔经&面经

在各大网站投递简历之后笔者怀着忐忑的心情开始一边等面试电话一边复习。按照之前的原计划是既复习了Java内容又复习了前端内容顺便再看看数据结构算法这些,说实话开始那一两天真的毫无节奏,事实也证明了一个人的精力是如此有限,想做好两手准备对于一个实习生来说其实不太现实,这个问题现在看来是显然的:如果想成为一位Java开发实习生,你需要掌握这些:Java基础、集合框架、JVM虚拟机相关知识、Java高级(反射、泛型这些)、J2EE、Java框架部分(SSM框架、SpringBoot、分布式)、SQL(MySQL/MS SQL Server/Oracle基础、性能优化)、数据结构与算法、少量的前端知识…… 而如果想要成为一名前端开发实习生的话,需要的技术栈是这样的:HTML + CSS + JavaScript基础(包括HTML5和CSS3),JavaScript高级(包括其闭包、原型、继承…),Javascript框架(vue/React/Angular这些,jQuery),HTTP过程及状态码、浏览器的兼容性、Ajax实现及跨域、JavaScript新特性(ES6/7…)、前端优化、前端安全、CSS框架(SASS/LESS)、Webpack、数据结构和算法、少量后端知识……以上所列的这些知识要求很多还不是说只需要了解其皮毛就可以,而是需要你对其有深入的理解和研究才能满足当下很多公司的面试要求。也因此在这短短的几天里笔者的所谓两手准备也就成了笑话——在之前的工作中对相关知识的复习工作做的是在太少,在准备过程中时间如此紧张有如何能快速深入的掌握那么多的知识呢?然而当时的笔者还没有意识到这个问题,仍然在无节奏的两手准备着。直到接到了第一个面试通知:来自萨摩亚金服(没错就是今年315晚会被点名批评的那个萨摩耶金服)的Java开发实习生的面试邀请。

当时是19年的2月中旬,很多公司的春招还没开始的时候,当时去面试是没有笔试,直接一个面试官来进行面试。当时他应该是已经面过几个人之后已经找到合适的人选了。所以面我的时候直接先来了一句我们长话短说就开始了。

1. 直接问有用过分布式类的相关框架吗? (正好不会分布式,也没复习到..)只能说听过这样子,用过SSM框架。。

2. 说说Spring框架中的……(具体记不清了)   好久没用Java开发项目了,只是凭着记忆答出了一点皮毛……

之后问了一个集合框架里的问题,貌似是HashSet的底层原理还是什么,我也没答好。。然后就没有然后了。那个面试官直接说我也不想耽搁你的时间,所以就直说了,我觉得你不太适合我们现在需要招聘的岗位……  说实话,有点直接,而且笔者当时进去面试也就10分钟左右,然后就被秒杀了?!虽然说已经有大半年没有写Java来开发项目了,但是基础还是有点的,虽然说这样的面试很高效爽快,但是笔者还是觉得拒绝的有些生硬了。毕竟我大老远赶了两个小时的地铁来,水也没叫我喝一口就把我秒了?唉,其实仔细想想也是很正常的,像我们现在快毕业或者是刚刚毕业的大学生,如果你既没有名校背景,又没有一技之长也没有什么关系门道的话,别人可能都不会多看你一眼,如果面试了几分钟发现你不合适,情商高一点的面试官可能不会让你那么狼狈,直接一点的就直接叫你走了。。

也是经历了萨摩耶的那次Java实习生面试笔者决定暂时放弃找Java开发的工作,毕竟之前小半年一直在做前端开发,对于我这种底子也是一般的学生来说,只能把经历放在前端开发的相关技术栈上面,之后投简历也是只投前端开发方向。当时在51job上面投了很多家岗位,几天过去了这些简历就像石沉大海一般。。就很慌,不过想在想起来也是蛮正常的,毕竟投的是实习生,就我目前的经验来看,深圳对非211、985这些名校的准毕业生不够友好。尤其是你本来在学校不占优势的情况下如果又没有技术上的突出点,那么你的简历是很难得到一些好的公司的青睐的,甚至是一些在业界处于中下水平的小公司也不会给你面试的机会。

而当时,笔者连这些意识也没有,于是也就傻傻的在住的地方边等面试通知边复习。在等了有大概五天之后终于开始陆陆续续的收到面试邀请了,当时整个人瞬间精神起来了!老实讲,当时毕竟还没有摸清这个行业的门道,几天没等到面试邀请就各种自我否定,觉得自己不适合这个行业,技术不过关…总之什么负面想法都来了,但是一旦收到面试邀约,不管这个邀约是有效的还是无效的(比如一些培训机构、销售、运营之类的也会叫你去面试),自己都还是会挺开心的,至少可以出去看看了吧。

在接下来笔者陆续出去面试的几天里,大概面试了五六家公司吧,这些公司虽然要的都是前端开发,有的是实习生,有的是非实习的,但是具体情况却一言难尽……有的公司实际上不是要招前端开发,而是要偏运营方面的人员,当然涉及到了一点前端开发方面的内容;有的是要岗前培训几个月才能正常工作的,培训的内容是使用一些很冷门的软件进行开发;还有的甚至公司是设在一个怎么找也找不到的小区里,难找到要他们提前给我一份地图攻略怎么才能走到他们公司……当然也有比较有效的笔试和面试,下面笔者将总结一些在这些公司遇到的高频笔面试题:

 

1. 说一些HTML5的语义化标签 (详见:http://www.daqianduan.com/6549.html)

2. JS数组有哪些常用的方法(push, pop, unshift, splice等等这些)

3. 简单说说Vue的生命周期 (包括生命周期的过程描述,钩子函数等等,具体如下图:原图来自大前端http://www.daqianduan.com 网站,侵删)

2019上半年前端面经总结(前端开发实习生)_第2张图片 Vue的生命周期详解

4. 简单说说Vue的双向绑定原理

5. 说说Vue的响应式原理 (详见:https://cn.vuejs.org/v2/guide/reactivity.html)

6. Vuex有用过吗,Vuex的作用,Vuex有哪些常用方法

7. Vue中的v-show和v-if有什么区别(这道题问的最多)

8. VueRouter的导航守卫

9. JS的深浅拷贝的区别,分别实现深浅拷贝 (详见:https://blog.csdn.net/a715167986/article/details/90440794

10. Promise有用过吗,说说Promise有几个状态,分别是什么意思 (详见:http://es6.ruanyifeng.com/#docs/promise)

11. 说说ES6 ES7的一些新特性

12. JS中0.1 + 0.2 等于几(被问烂了这道题,然而当时笔者答不上来)

13. 说说HTTP的几个状态码,各自的含义,304是什么意思?

14. 手写一个防抖函数

15. Ajax请求过程叙述

16. 浏览器在输入url到看到网页发生的过程(很经典常考的一道题)

17. HTTP1.0 HTTP1.1 HTTP2.0的区别,http和https的区别

18. JS如何实现继承

19. JS数组去重,取交集、并集、差集各自怎么实现

20. 说一说HTML5和CSS3的新特性

21. 说一说Vue的Render函数的作用

22. CSS实现如下的圆环效果 (略难)

2019上半年前端面经总结(前端开发实习生)_第3张图片

23. JS let和var的区别

24. JS的基本数据类型有哪些

25. 说说常用的算法和数据结构

26. 说说快排,快排是稳定的吗?为什么?

27. 说说二叉树结构和使用场景

……

以上是笔者在前文所说的几家公司被问到的笔面试题,当然遇到的问题很多,上述只是一些让笔者印象深刻的问题。这里面有些问题问的比较宽泛,我们在答题的时候可以简短的回答,切中要点,有些问题如果答的太过具体,往往要花上几分钟甚至十几分钟才能说完,实际上只要点出了关键点,面试官基本也就能判断你的回答好不好了。

最后笔者选择了一家规模不大但是环境很好,而且和老大聊的很投缘的公司实习,虽然不是名企,待遇也一般,但是几个月下来进步很快,也是学习了不少前端开发方面的知识,慢慢的也算是入门了前端,上道了~ 

 

总结 

 作为前端开发实习生来说,如果在简历比较一般的情况下(github没有高star开源项目,没有知名或热门的博客,非名校背景,没有名企实习经历等),在深圳也是可以找到一些前端相关的工作的,但是前期准备一定要充分,前端甚至整个计算机方面的基础都要扎实。这里推荐一个前端面试的资料复习网站:https://www.cxymsg.com/guide/   另外就是要平稳心态,不骄不躁,不要着急,现在整个中国正在进入老龄化社会,慢慢地人力成本尤其是高质量的人力资源成本会越来越高,只要我们保持自身的竞争力,从整个大环境来说我们的机会都是会越来越多的。当然,如果想要去一些名企或者待遇更好的公司,我们还需要付出更多的努力,比如可以自己写一套较为完整的UI组件库,或者写一个有质量的开源项目等等(必须是那种在github之类的网站看得到源码和demo的成品),这样才能撬开名企面试的资格(或者学校足够优秀)。

最后的最后,笔者认为作为程序员来说,不管是找实习还是正式工作,最需要培养的还是自己终身学习的气质。学习的眼界要开阔,不局限在某一门编程语言某一工作职能方面。前端开发在学习好前端开发知识的基础上,视野要逐渐转移到后端、UI设计、产品设计方面。除了要学习计算机软件开发行业的知识,闲暇时还需要多了解其他行业的知识:文学、历史、科技、艺术……保持核心竞争力,掌握多技能点,我们才能在阶级固化、时代巨变的洪流下,幸免于这个时代。

你可能感兴趣的:(前端)