尘埃落定,纪念我的校招(附腾讯,京东,YY,唯品会的面试题+个人前端心得体会)

这篇文章很长,如果你觉得我写的好,请耐心看完。

       互联网的校招,来的早,去的快,从7月底,阿里和腾讯的校招启动,这场互联网的战声就已拉响。

校招是一个特别折腾你的东西,从网申,笔试,面试,签约,一步一步,都是历经煎熬,特别是在等待的时候,更加煎熬。

从腾讯开始,我就开始网申,然后之前也看了一些公众号的推文,然后就开始做我的校招日历表,里面记录,我的校招网申的企业,截图发下

大概一个表,就记录了这些东西,其中,最重要的是,你的账号密码,链接,这些,因为一旦,企业多了,你就会很混乱了。

这个表的网申状态,也可以时时跟进你最新的网申状态。

截图发下一部分企业的情况,我总共也就投了30,40家吧,但是得到笔试的机会,也就10多次,最后得到面试的公司,就是6,7家这样子

从一次次笔试,到面试,收获还挺大的。真的是每次发现面试,笔试碰到不懂的,就总结下,马上记录下来,然后就等周六日有时间就去一一攻破。

这是我对当时自己笔试面试的一些情况的状态,经常会更新状态,从最开始都是黑的,后来就好多红的。

 

然后接下来是对笔试面试的准备,从7月多开始,我还在实习,那时都是边实习边关注校招动态。

第一次收到的是腾讯的电话面试,很紧张,也是在公司接到的,没有好好准备,真的好早,没好好准备,答得很不好。

事实证明,其实笔试和面试也是需要经验练出来的,最开始不知道会问什么,到最后积累到了一定程度,你去面试都不用想怎么复习,或者刷面经了

因为基本都是那些内容。所以可以先去一些小企业试下笔试面试,攒攒经验,然后大企业就专门攻破。

还有准备一个线上笔记的工具,比如印象笔记,网易云笔记,把不懂的,或者遇到的困难,或者很多棘手的问题或者经验和心得体会记录下来,然后解决。

从我从创业公司辞职后,准备好好准备校招时,就用了这个网易云笔记。

还看了之前在markdown,word做的笔记,发现自己以前准备的东西太少了,所以就拼命扩展知识。

截图下我的网易云笔记。

整整34个文件夹,看来校招3个月来,对我的促进也是挺大的。

也是给自己打了一个扎扎实实的基础,虽然还是有一些没接触到,但是学海无涯嘛。

然后说下笔试吧,笔试很多大公司,都是在线上笔试,很多都是在牛客网或者赛码网

所以准备校招的时候,可以刷下上面的题目,首先是熟悉下这个环境,体验下输入的限制和要求什么的,然后也可以对自己的代码熟练度有个了解。

练练手,加强自己的代码能力。

之后呢,就开始学习啦。首先就是把《javacript高级程序设计》这本书的内容都看了一遍,对着代码也敲了一遍。也复习了计算机网络和一些算法。javascript的数组操作这些。同时把自己之前做的笔记也看了一遍。

然后我就刷了牛客网上的一些题。主要是javascript的一些操作(这个主要是衡量自己哪方面不足,然后专门攻破)。

其实有没觉得,校招也像准备期末考试一样,把知识点都掌握,就不怕考试。

在这期间也看了好多代码,别人的优秀代码。还有一些其他的代码。笔试的题目很多很类似,当然也很多包括c和c++,还有计算机网络,操作系统,算法这些,算是考的很多很杂的,所以不止复习前端的,后端的东西也要看。那么前端大概有什么内容呢。就是

js基础,css基础,html5api,算法数据结构基础,web安全相关,seo相关,性能优化相关,jquery要了解结构和部分源码像jsonp,ajax,domready,工程化相关webpack,amdcmd,gulp,less,sass,网络知识相关http,http2.0,tcp,ip,状态码,加分项框架 vue react,js设计模式,node,es6,git,svn,(加分项:会在linux系统上操作,会使用fiddler,nginx

会不会觉得前端现在越来越难了,要会的东西也越来越多,每12个月,前端就难上一倍。

其实想去大公司,最好在大三下学期3月份开始就有春招和实习生,这时候去找实习,比校招出来的人少。进的概率也比较大。

特别可以有一份大公司的实习经历,校招会加分很多。还有如果想留在这个公司,以后的机会也会大很多。

不多说,附上面经吧。


 

唯品会一面+二面+hr面

1、写一个闭包
2、写一个数组去重
3、重绘(redraw)和重排(reflow)有什么区别
4、浏览器缓存的机制
5、font-face是什么
6、iconcss
7、js原型链
8、AppCan是什么框架来的
9、js和css中缓存是怎样的
10、在YY实习的项目是做什么的,遇到的主要问题是什么
11、在项目中,当第一次从服务器download时,第一次下载缓存了,然后如果你要更新的话,是如何更新缓存的。
12、为什么想来唯品会
13、如果唯品会和YY同时给你OFFER,你会选择哪个
14、你想要的薪酬是多少
15、你在哪个部门,知道谁吗
16、你在YY学到了什么
17、给我讲讲几个设计模式是怎样的
18、有遇到什么问题,是如何解决的。

迅雷线上笔试+线下笔试+一面前端技术面+二面计算机基础面
总的来说,迅雷好坑
线上笔试了一遍,昨天去华工大酒店以为直接面试了,居然还要再笔试一遍。
而且笔试的题目还真不简单,有三道大题,那三道大题是这样的。其中有一道是这样。
2、给出两段字符串,给出每一行的情况,比如str1:abccdef,str2:gbcdefg,写一个函数diff(str1,str2),选出两个字符串之间的差异,比如0:change:a:g,3:delete:c;6:add:g
前端技术面的问题:
1、说下http协议
2、json和xml的区别
3、项目中遇到的最困难的问题,是怎么解决的,还有吗
4、http协议中其中的每个协议的细节
5、缓存有哪些,他们之前有什么区别
6、看了下我的博客和我的git
7、写一个数组去重的方法,有没有一些更加简便的方法。
计算机基础面:
1、http七层协议,最顶层是什么
2、宽度优先搜索,深度优先搜索的原理
3、http和https的区别是什么
4、ssl底层协议是什么
5、最小生成树是怎么弄的
6、写一个冒泡排序,然后怎么让他提前结束
7、https2.0和https1.0的区别。

 多益笔试+一面:电话面+二面
时间比较久了,有点忘了
1、一面,视频面。hr面
你在YY实习,为什么要跑来面试呢
接不接受加班
对未来有什么规划
你对前端的看法
(总之都是很)
2、二面,技术面
YY中有自己的工作流,有自己的一些底层东西吗
用什么框架吗
前后端分离的话,如何做SEO优化
你对前端的看法
说下闭包。
变量声明提升
函数作用域

yy面试,一面+二面+hr面
1、一面,
问下项目,哪个组的,在项目中遇到的问题。
appendChild一条数据,当数据过多时,如何使页面不卡顿,me是如何处理的
有没学过node.js,。做过什么
有没学过angular.js。做过什么
有没学过react.js。做过什么
有没什么想问的。
2、二面。鹏哥
笔试成绩挺高的。
在做项目中遇到什么问题,怎么解决的
有没遇到挑战性比较大的问题,有没加班
有没做过什么插件对项目比较有帮助的,。有没做过一些优化
有没做过的项目,然后将他们抽象出来的
在和健豪,丛武,志诚他们合作过程中,有没出现什么问题
有没去其他公司面试过,二面没过的原因,你觉得是什么
BAT那些有去试过吗
 
3、hr面
你的薪酬的范围是多少
有没收到offer
有没去其他公司面试过
有什么想问的
你是本科生吗
对地区有没什么特殊的要求
三方什么时候发

腾讯内推电话面试,微店电话面试,京东一面
腾讯主要是最开始最开始的面试
1、rem和em的区别
2、你在YY负责什么,主要做pc端还是移动端
3、说说浏览器缓存
这些好久了,想不起来了。
 
       其实还可以去看下git上面分享的一篇前端面试的文章。

       总之,校招也就那么回事,平时好好准备,最后也有点运气在里面,心态放好。

       简历的准备的话,可以只有一页就够了,有很多修改简历的公众号呀,多看看实习生内参,乔布简历

       不管是哪一种面试,都要尽可能把面试官当做朋友看,没什么好紧张的,毕竟以后就是同事了(要有这个自信~),跟聊八卦一样聊技术而已,自我介绍不用刻意去背,自己简单的理一下,分为 基本信息,项目经验及技能,生活情趣就好啦,不宜过多,一般3分钟差不多,还有就是面试官在打电话时并不一定仔细看你的简历,所以最好不要说XX已经在简历上写了,反而可以引导面试官去阅读你的简历,抓住主动的机会,能够让自己内心快速平静下来,自信感爆棚。 
面试中最会问不会的问题,不知道知识点的就果断说不知道吧,没什么不好意思的,如果是一些开放性的问题的话,比如算法,可以本着层层深入的原则,一点一点地把想法告诉面试官, 思路是最重要的,细节可以不完全对,但是要让面试官感受到你拥有独立思考,解决问题的能力。 
面了这么多次,其实发现考察的问题的点其实大同小异,所以 技术面试的确可以准备,恶补上来,也可以自己去搜索别人的面经,总的来说,现在面试的时候重心越来越偏靠js了,对于前端(全栈)的要求也逐渐凸显,

        最后,我就是拿到了实习的公司,YY的offer,因为小组的人很好,主管也很好,氛围也很好,我就签了,然后也就不想再去找了。

      最后的最后,我来说下前端的一些心路历程吧。

      说起前端的心路历程,其实在学习的过程中,可以先进行广而浅的学习,后进行精而深的学习,在有限的时间内,应尽可能多得掌握一些基本知识,然后更多的进行实践。在学习中遇到了解决不了的问题,就去查,随后就及时做记录,然后再回过头去实践,往复这样的过程,提升会很快。

在其他地方看过一张图,对于新手入门是很有用的。学习前端也许可以这样学:

       最开始可以在w3cschool上对上面的知识过一遍。这里有非常全而且基础的教程,完全足够我们入门,学过之后,我们应该对整个前端开发用的技术有初步的了解。(效果可以达到:我可能不太懂太多,但是我知道这个名词,懂这个API,知道简单的使用。)

       可以在慕课网结合着视频进行学习,或者极客网上跟着一整套前端开发的视频学习, 但是视频仅仅只能陪伴我们走到入门阶段,随后需要自己去养成一套学习方法去自主学习,所以不太建议一连串地全部学完之后再去手敲代码,而是学一点,敲一点,照着谁敲呢?可以是上述的W3school。

       另外一本书便是大名鼎鼎的JavaScript高级程序设计了,建议买正版,这本书适合新手读,更适合老手读,比如可以在看完慕课网的视频之后来照着此书敲一敲学一学,感觉很酸爽,有句话是学得快,忘得快,所以得经常来回翻一翻,每次读完都会有新的感受。

       光看文档太枯燥,想去看看别人的理解怎么办,可以去博客园进行海搜,遇见大牛的几率很大,然后就毫不犹豫地收藏到你的收藏夹里去吧。然后就关注一些牛人的博客,还有一些前端的公众号,比如前端圈,前端大全,前端早读课,还有关注一些大企业的分享公众号,比如360的奇舞周刊,腾讯的IMWeb前端团队,说不定发布者,以后就是你的同事哦。

       除了一些直接的知识,我们也需要社区文化,自豪地拥抱SegmentFault,StackOverflow吧,程序员的百度知道。

       GitHub是我们每一个人都需要常去的地儿,你需要知道,一切代码的来源,99%都在这儿,所以想知道些最新动态,花点时间泡在这儿准没错。

       编辑器,我最开始用的是sublime text(从一开始就不喜欢dw),因为sublime text,是手写代码的吗,可以让你养成一个好习惯,现在在用visio studio code,听说是集成了webstorm的很多功能,然后你要学如何配置的话,就用繁重的webstorm吧。

       跟进最新的技术,最好的方法就是看官方文档,有些可能是英文的文档。