笔者从17年的2月份开始准备春招,其中遇到很多坑,也意识到本身走过的弯路。故写了这篇文章总结一番,本文适合主动学习的,对本身要学的课程不明确的,对面试有恐惧症的...等未来打算从事技术岗位的同窗们。javascript
为何要准备校招?社招不同可以进入大公司吗?对于一些不懂校招这个概念的人来讲,常常会问这个问题。同时,大公司的校招薪水通常比工做2年经验社招的人还高,为何企业会给一个没经验的应届毕业生这么高的薪水?理由何在?理清这些问题以前,咱们先来看看校招是一个什么概念?前端
校园招聘是企业直接从学校招聘各种各层次应届毕业生。校招每一年时间比较固定,即春季校招(三四月份)和秋季秋招(九到十二月份)。在原则上,春季校招大部分岗位是面向大三与研二(研三毕业)的同窗,对这部分的同窗提供实习的岗位。少部分企业因为秋招签约率不高或者业务剧增,会针对大四与研三的同窗进行补招。java
而秋季秋招主要针对大四与研三的同窗(这里以每一年的九月份来分隔年级),对这部分同窗提供的是毕业以后的正职工做。拿到秋招offer的同窗,如肯定入职需与用人单位签署三方协议,以保证双方的利益不受损失。linux
有校招需求的企业通常是发展规模较为成型的企业,不管是成熟运做的传统企业,或年轻但已然庞大的互联网公司。在较为成熟的企业管理下,分工细致,完善地各类福利补贴制度,以及专业的导师制培养人才的策略,这些因素无疑能带给应届生们更好的成长。git
同时,应届生在校空闲时间多,能学的东西更多,工做以后业务繁多能真正挤出来自主学习的时间太少,计算机基础的课程篇幅过多,出来工做以后就没时间、没精力学了。程序员
而这些计算机基础课程倒是成为业界大牛的必经之路,没学这种基础知识,不少东西的底层原理咱们是没办法摸透的,这也是为何互联网BAT大厂重视计算机基础的一个缘由。es6
基础扎实工做以后不少东西很快就能够上手,因此不少互联网大厂宁愿把招聘精力放在校招,而不是社招;其二,应届生做为新鲜血液通常尚未成家,当然能为公司作更大的贡献。github
既然校招这么重要,那咱们应该怎么准备校招呢?面试
要想在校招中取胜,笔者以为有几个方面是比较重要的:视野+专一+方法论+心态ajax
视野的开阔指对一件事物认知的广度,要对业界有必定的了解,才能明确咱们的求知方向;不然一味地蛮干,最后只会南辕北辙。举个例子:对于非一本学校的某些同窗来讲,可能都不知道校招是怎么一回事,身边的老师也没有跟同窗们灌输这些思想,不关注技术社区的同窗可能就不知道。致使的后果就是不清楚大厂注重的是哪方面的知识(大厂考察的知识通常来讲对技术发展颇有意义),水平停滞不前,最后毕业去了家不太理想的公司。
不少东西都是这样,身边的人不可能所有传授给你,须要你带着一份热情不断地去挖掘。咱们能够在空闲的时间里,去各类技术社区以及一些问答平台上刷刷动态从而不断地开阔咱们的视野,好比说:在知乎平台上咱们能够看到某些前辈的回答,通常这种回答都具备建设性意义,有时候抛开一些现成的观念,去接受一些新观念何妨不是一件好事呢?
同时,咱们能够在社交平台上结交一些应届生“大佬”,询问他们各类学习方法,通常“大佬”都会很热情的帮助你。混熟了之后,能够跟“大佬”交流下面试心得、学习心得等等的东西,不得不说与同类型的人交流是成长最快的一种方式。
专一是指在技术方面投入的时间成本。咱们都不是圣人,只有不断地去学习与训练才能更大程度地去提高自我。当咱们对一件事物有热情时,咱们都愿意把全部时间花在它上面。就如咱们看上了一个漂亮的女生,对她产生好感了,咱们会想尽一切办法去讨好她。
在技术方面也是这样的,对于咱们不感兴趣的方向咱们从不会主动地去学习,保持对技术的热情才能达到持续的产出。有一句话说的好:时间花在哪里,成就就在哪里。A同窗在课后天天都花8小时专研技术,而B同窗天天只在课堂上学习。很明显这两人的差距只会愈来愈大,放心地去努力吧,付出了确定会有回报的,回报未到只是时候未到。
专一还指对某一领域的专一程度。咱们应该对本身之后想从事的职位有一个大概的方向,从而对这个方向应具有的技能进行钻研。有时候看到部分同窗既写前端代码,又写PHP后端代码,又写一点硬件底层C语言代码,精力太分散了到最后很难作到每样东西都精通。大厂对应届生的要求还不至于作到全栈工程师的程度,能作到熟悉一领域的开发已经很不错了,固然懂的越可能是一个加分项(但非必备)。
反观大厂对应届生的要求是熟悉计算机专业的必修课,诸如:数据库原理、操做系统原理、数据结构与算法、计算机网络等,这类知识可能比较枯燥学起来没什么劲,但倒是必备的,其能为之后工做发展铺路。固然每一个岗位所要求的侧重点不一样,但却百变不离其宗。对这种基础知识要学到哪一种程度呢?
是否是考试考到80分以上就表明这门课掌握得不错呢?不是这样的,考试的考点是有局限性的,咱们应该经过看一些巨献读物来全面学习。看完以后咱们能够经过看别人的面试经历(后面简称“面经”)来检测本身是否掌握这些知识点。
对于不会的知识点,建议你们能够过一遍书本的内容,书本讲的内容通常比较详细。不建议经过搜索引擎查询这种与理论相关的内容,由于大部分搜出来的结果都是摘抄书本的文字。面试服务端开发时,常常会被问到数据库索引的底层实现原理。不少同窗可能会问:“为何要搞懂这些原理性的东西?我会怎么用不就好了吗?”。只懂使用API的人永远是搬运工,工程师最大的使命是去创造,研究原理的时候咱们能了解到先人的设计初衷,从而能更快速地在线上出现性能问题的时候根据原理排查问题。
要想达成某个目标都有其特定的方法论,学习技术也不例外,掌握适当的学习方法才能事半功倍。 咱们须要造成一个完整的知识体系,强烈建议你们读一些巨献读物,其讲的内容很详细,不会漏掉某些知识点。 读完一章节后建议你们能够作作笔记,坚持读完一本书你会发现受益不浅,如下是一些巨献读物的推荐:
在准备面试的时候能够上牛客网的讨论区看看面经,了解一下面试可能会被问到的问题,对于不会的问题要查漏补缺。当你看无缺几篇面经你会发现面试不少问题都是重复的,也就是说这些问题是必须掌握的。同时,能够不断地向更深的层次学习,好比看看源码的实现等等,这些深层次的东西是面试的加分项。
平时的积累也很重要,作项目或者学习知识点的时候能够把心得分享到博客上,一个好处是能够从新梳理知识点,在这个过程当中你会对这些知识点印象更加深入,同时也会给面试加分,面试官看了你的博客以后能够看出你是一个持续学习的人,这将会加大你面试的经过率。
另个好处是在分享的过程当中,能够提高自身的表达能力,毕竟把事情讲清楚与内心懂事情是怎么回事是两码事,这也为以后公司的内部分享会奠基基础。
在准备校招的过程当中不免会遇到一些困难,好比:书本的内容看不懂,这时候能够从搜索引擎里搞清楚一些名词的意思,再把这些名词带入书本中反复地去理解。遇到困难的时候要保持一种愈战愈勇的心态,面试的过程也不免会失利,不要气馁。这时候的重点是把面试被问到不会的知识点搞清楚,争取下次被问到的时候能答上来。
书写简历也是门学问,优秀的简历能在内推批次脱颖而出直通面试。
简历投递有几个比较重要的阶段:提早批、正式批、补招。建议你们前期要广投各类企业,这能必定概率地增大面试的可能性。面试多了就有了面试的感受,拿offer的概率会更大,后期咱们能更好地选择offer。
不管是春招仍是秋招,提早批都会在校招正式开始前的1~2个月开始内推,通常互联网大厂都有提早批。提早批通常须要在职人员内推,有师兄师姐在名企可让其帮忙推荐。没有的话也无需担忧,一旦有内推在牛客网讨论区总会出现各类信息,把简历投到帖子的邮箱里也能够进行内推。在提早批里只要你的简历经过了筛选就能直通面试了,这就是为何要提早准备校招。
正式批须要在校园招聘的官网上申请,通常来讲会比提早批多一轮线上或线下的笔试,只有笔试过了才能有面试的资格。校招招聘信息能够在梧桐果查看,里面还有宣讲会一栏,错过了提早批的同窗能够找到符合本身需求的公司的宣讲会时间,某些公司在宣讲会结束后会进行当场的笔试,通常现场笔试经过后,次日会进行现场的面试。
因为某些“收割机”的弃坑,这时候某些岗位可能还会有几个空缺的名额。招聘的形式与提早批类似,也经过员工内部推荐,简历经过后会进行面试。
最后说说找实习的事情,建议你们提早一年准备春招,这样拼进互联网知名大厂(百度、阿里、腾讯、滴滴、美团、京东等等)的可能性很大。实习的工做地点无非太在乎,实习最重要的是镀金,有互联网知名大厂的实习经历,在秋招找工做是很是吃香的。
由于实习经历绝大多数状况下决定了你的能力,HR在筛简历时就会认为你既然能被上一家大厂所承认,你的能力确定不会差到哪里去,就会让你无需笔试直通面试,这样在秋招提早批拿到offer的概率更大!
(注:原创内容,转载请联系获取受权。)
如下是个人校招面经:
0 == null
吗?为何?return x1 == x2
,我的以为意义不大)//对比两个参数是否相等,
diff(1, 1) // true
diff(1, '1') // false
diff({name: 'cvte'}, {name:'cvte'}) // true
diff({name: 'cvte'}, {name:'seewo'}) //false
function diff(){
}
复制代码
// 设计一个数据结构来存储 歌词和对应的时间,
// 并实现一个function run ,执行run以后,在对应的时间输出对应的歌词
复制代码
addEventListener
有哪些参数?冒泡跟捕获有什么区别?animation
有哪些参数?merge
与rebase
有什么区别?linux
吗?setTimeout
去模拟var F = function () {}
var f = new F()
console.log(f.__proto__)
console.log(f.__proto__.__proto__)
console.log(f.__proto__.__proto__.__proto__)
复制代码
undefined
与null
的区别。举个用到undefined
与null
的例子console.log(typeof ('a' - 1))
复制代码
for (var i = 0;i < 3;i++) {
setTimeout(function () {
console.log(i++)
}, 0)
console.log(i)
}
复制代码
function bar() {
return foo
foo = 2
function foo() {}
var foo
foo = 'string'
}
console.log(bar())
复制代码
sum(2, 3) // 5
sum(2)(3) // 5
复制代码
F
与f
与F.prototype
与它们之间是什么关系function F() {}
var f = new F()
复制代码
f.constuctor
是什么?f
自身存在constuctor
吗?为何?child.constuctor
是什么值console.log(f.prototype)
的结果是什么for (var i = 0; i < 3; i++)
setTimeout(function () {
console.log(i)
}, 0)
复制代码
function fn() {
return function () {
return inner
var inner = 3
inner = 'a'
function inner() {}
}
}
复制代码
Function.prototype.bind
的polyfillz-index
属性的元素排布,层叠上下文,还有什么属性可使z-index
生效/a
,/b
,/c
,/d
。找出一个相应时间最快的接口,并返回这个时间var dialog = new Dialog()
dialog.on('show', function () {
console.log('showing')
})
dialog.on('hide', function () {
console.log('hideing')
})
// showing
dialog.show()
dialog.hide()
复制代码