筆者從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)
爲何要把資源文件放在另外一個服務器中?除了服務器壓力的問題呢?還有沒有其餘?
- 實現對cookie的分離,像淘寶cookie不少,把資源文件放在另外一個域名中,能夠減小主服務器的cookie
- 優化下載,HTTP協議對同一個域名的下載線程數有限制
- 實現了動靜分離。當多個域名引入同一個靜態資源時能夠統一引用靜態資源服務器
怎麼設計分頁接口的參數?若以id爲自增惟一索引,有什麼缺陷?那用什麼當惟一索引比較好?
- 使用uuid生成惟一值作索引
有哪些offer?拒了哪些offer?他們薪資是多少?
function fn() { return function () { return inner var inner = 3 inner = 'a' function inner() {} } }
Function.prototype.bind
的polyfillz-index
屬性的元素排布,層疊上下文,還有什麼屬性可使z-index
生效/a
,/b
,/c
,/d
。找出一個相應時間最快的接口,並返回這個時間寫個彈窗組件,有title,body,cancelText,confirmText參數。能夠經過on來綁定回調,與及經過off解綁。
```javascript
var dialog = new Dialog()
dialog.on('show', function () {
console.log('showing')
})
dialog.on('hide', function () {
console.log('hideing')
})
如何與後端協做?在後端沒有作出接口的時候,怎麼套數據?在線上有接口的時候,怎麼套數據?