實不相瞞
來杭州這麼久了,面了也有二十幾家公司,也是沒找到心儀的工作,唯一一個還行的機會也被推了。
感覺應屆生處於一種很尷尬的位置,出身的話拼不過校招生(985不談。。。),先天就被壓制,給人一種應屆不如校招的能力體現(唉,其實自己也是校招,然而因為種種原因,從南京來到了杭州);另外也拼不過有工作經驗的,記得有個HR說實習經驗不算工作經驗。。。一般找人也會看經驗,而從單方面面試的角度來看,能反映出有能力的少之又少,自己也是覺得表達不清楚(因為說話有點結巴)。
總結
把自己最近的面試經歷總結下:
- 別慌,把自己會的都說。很多情況下面試以為你能力不夠都是你沒說
- 一般上市公司的薪資都有標準,很難再加價,6-8k左右。大的公司8-9k左右,當然如果你面試表現特別突出也能要10k+
- 準備工作是非常必要的,譬如JD上的要求、公司背景等
記錄自己的痛
只說一些記憶比較清的,因為自己從小就記性不好
蘑菇街二面涼
第一面的時候還是個電話,說了一堆子的東西。總體來說還行:
- js相關,比如閉包、跨域、原型等
- css相關,比如垂直水平居中、css3裡的東西
- 資料結構、演算法,連結串列、棧、佇列、樹,基本排序、二分查詢
由於自己習慣性地加上了“記不太清了”、“稍微懂點”,所以面試官也是經常說“如果你還記得的話”...
然後二面直接到一個蘑菇街的大樓裡,週六去的很安靜。當時直接給了兩張圖片,手寫程式碼實現,半個小時只寫完第一個。。。接著之前電面的面試官來了,噼裡啪啦地對著自己寫的程式碼說。總的也忘的差不多了,之後問面試的建議說是要多考慮、寫可維護的程式碼。說說自己不會的:
- 圖片的裁剪效果,
object-fit
。background-size
不夠優雅 - 函數語言程式設計,自己說了下柯里化,面試官問應用場景,自己就簡單地答了返回一個能連續呼叫引數的函式。。。再多的就沒用過了。問到面試官他們有什麼場景時,說我可以去看看redux中介軟體,現在回憶起來redux的
connect
就是一個,然後還有() => () => () => {}
這種寫法來著 - 面試官說圖片的實現的時候,怎麼保證和視覺稿一致。這個自己沒說到rem佈局,,,後來去一家公司面試談適配的時候趕緊把這個扯上
後來有個從蘑菇街出來的高管,給我打電話,說他和另一個合夥人創業,在組初創團隊。當然人還是挺好的,自己也是覺得工資低,就沒去了。其實感覺他們的方向不是太對,我也不能說有沒潛力,反正自己不太感興趣
大搜車涼
可能自己要的工資高了。。。
先做一份筆試題,兩個面試官有根據這些問問。然後也是問了原型、作用域、es6相關的,有一個問題問了作用域鏈,忘了。。。其實它就是一個物件,裡面包含了當前作用域定義的變數、函式等,是一個私有屬性[[scope]]
,當js直譯器執行的時候,會去找作用域鏈下的變數,沒有找到則去上一層,直到最頂層,沒有則報ReferenceError
未定義。再扯的話就到this
和它的區別了,這個自行百度之
HR的時候說了一堆子,然後談到薪資時差不多到尾聲了。感覺這個HR挺不錯的,她說我們這種應屆生不能看工資,得看公司能給你帶來什麼,然後她還知道我們前端領域有個名人在她們那兒,,,其實我並不怎麼關注,畢竟自己不追星啊。當然她們的Node團隊在杭州也挺有名的,這個我真沒關注過。後來沒下文了,說是她問問前端leader要不要打個電話給我...被安慰一波了。
有贊涼
之前聽說有個技術一般的妹子去了,拿的工資比我在南京的還高,就想去當個冤大頭了。結果也是gg...T_T
第一輪電面,和蘑菇街差不過,基本的前端知識和計算機相關的,由於大學裡組成原理沒好好學,直接說不會了。。。
讓我印象深刻的是做的兩個線上程式設計題
- 深度優先遍歷,妥妥的
- 解析url query字串成物件。這個就隨便寫了點,然後面試官一直問怎麼怎麼寫的更好。。。主要就是容錯處理,當時沒想這麼多,因為面試官一直問,所以我也只能問他還有什麼地方要改進的。到最後他說如果你要寫一個庫,你會這樣一直問別人麼?吐槽一句,我不寫,就算要寫,那也只能寫測試再改進,光空想又沒用。最後問建議時,他說多逼下自己,這很玄學。。。
HR那裡沒話說,大家都看著我不想說他們。一個勁兒地問為什麼從南京那家公司離職,打破砂鍋問到底了要。算了,也不在乎了
酷家樂涼
其實之前在南京的 時候有陪一個妹子參加校招,但是那個妹子沒過,之後電面一輪後沒接電話了。。。
一輪電面是個妹子,感覺問著挺靠譜的,問了前端基礎。曾一度以為涼了,後來又接到了二面電話。。。對了,關於劫持物件屬性的存取操作除了getter/setter
外,還有es6裡的Proxy,這個自己沒用過,妹子告訴我了,點個贊
二面去了,做了份筆試題。當面試官問的時候,發現自己對this
存在很大的誤區。看下面的程式碼:
var a = 'xx';
function b() {
console.log(this.a === a);
}
b(); // true
複製程式碼
(function () {
var a = 'xxx';
console.log(this.a === a);
})(); // false,this.a為undefined
複製程式碼
我一直以為那個閉包(打臉,其實就IIFE)裡面有自己的this
,想當然就說了,打臉。其實加入作用域鏈的概念就很清楚了。
始終記住,
this
一直指向執行上下文(又稱詞法環境),它是會變的;而作用域鏈則是你寫完那段程式碼之後就能確定了(當然這是由js直譯器確定的)
額,再多廢話點,記錄下
- 四種繫結
this
的方式:call\apply\bind\箭頭函式
- 延長作用域鏈的兩種方式:
try-catch和with
回到面試,有問到Iterator,之前有看過,但是忘了。它是種遍歷機制,供for-of
迴圈使用,沒用過。。。手寫一個Promise.all
,只是大概實現,我卡在如何判斷每個Promise都resolve了,大致程式碼:
this.all = function (arr) {
arr.forEach(val => {
val.then(xx).catch(xx);
});
}
複製程式碼
就寫了個迴圈(笑哭),不知道怎麼判斷全部完成,因為程式碼是非同步。。。然後面試官指出在每一個Promise的then
裡判斷。然後又問它返回什麼,我說返回this
,面試官可能想要的是.then
裡的返回吧,兩人瞎BB了半天。之後又問了個new操作符做了什麼事,不知道。真的慌了,後來知道都是基礎,也感謝他,讓我明白自己這麼多不足。這邊抄MDN上的解釋:
- 建立一個繼承了Foo.prototype的物件
- 將
this
繫結到之前建立的物件。如果Foo裡有顯式的返回一個物件,那就返回;沒有則使用建立的物件
瞎寫點程式碼:
function Foo() {
this.a = 'xx';
}
new Foo();
class A extends B {
constructor() {
super();
this.a = 'a';
}
static c() {}
}
複製程式碼
第一步如何繼承的,其實就建立一個物件,把__proto__
指向了Foo.prototype
。class就是建構函式的語法糖。其實js裡原型就那麼回事,盜用一張MDN上的圖
算了算了,不說了
為什麼會寫這個,也是看了掘金上的Android應屆生在杭州的求職經歷,才想到寫來看看。不說了,繼續寫自己的部落格,繼續找工作。
碰巧今天有個在中科院的同學問我RestFul API,因為他在搞深度學習,不是開發這一塊的,所以不瞭解。我在想以後是不是能找他要資源,也去搞深度學習去,嘿嘿嘿~yy一波
寫在最後
很感謝一家公司,眾合科技。之前說中意的就是這家,這是個非常好的機會,從C/S轉B/S,做的好能帶團隊。HR面的時候給了6K,當時也遲到很久,就是因為住的地方遠,做了三小時公交。後來HR又給電話,說是用人單位加了1K,覺得很感動,當時面試的時候覺得人就很好,說話平易近人,還請我吃了頓午飯,後來推了也是非常抱歉。
找份好的工作不容易,現在天氣又很熱。希望其他應屆生能找份好工作~不過話說回來,寧缺毋濫!