應屆前端杭州求職

諸葛林發表於2018-07-31

實不相瞞

來杭州這麼久了,面了也有二十幾家公司,也是沒找到心儀的工作,唯一一個還行的機會也被推了。

感覺應屆生處於一種很尷尬的位置,出身的話拼不過校招生(985不談。。。),先天就被壓制,給人一種應屆不如校招的能力體現(唉,其實自己也是校招,然而因為種種原因,從南京來到了杭州);另外也拼不過有工作經驗的,記得有個HR說實習經驗不算工作經驗。。。一般找人也會看經驗,而從單方面面試的角度來看,能反映出有能力的少之又少,自己也是覺得表達不清楚(因為說話有點結巴)。

總結

把自己最近的面試經歷總結下:

  1. 別慌,把自己會的都說。很多情況下面試以為你能力不夠都是你沒說
  2. 一般上市公司的薪資都有標準,很難再加價,6-8k左右。大的公司8-9k左右,當然如果你面試表現特別突出也能要10k+
  3. 準備工作是非常必要的,譬如JD上的要求、公司背景等

記錄自己的痛

只說一些記憶比較清的,因為自己從小就記性不好

蘑菇街二面涼

第一面的時候還是個電話,說了一堆子的東西。總體來說還行:

  • js相關,比如閉包、跨域、原型等
  • css相關,比如垂直水平居中、css3裡的東西
  • 資料結構、演算法,連結串列、棧、佇列、樹,基本排序、二分查詢

由於自己習慣性地加上了“記不太清了”、“稍微懂點”,所以面試官也是經常說“如果你還記得的話”...

然後二面直接到一個蘑菇街的大樓裡,週六去的很安靜。當時直接給了兩張圖片,手寫程式碼實現,半個小時只寫完第一個。。。接著之前電面的面試官來了,噼裡啪啦地對著自己寫的程式碼說。總的也忘的差不多了,之後問面試的建議說是要多考慮、寫可維護的程式碼。說說自己不會的:

  1. 圖片的裁剪效果,object-fitbackground-size不夠優雅
  2. 函數語言程式設計,自己說了下柯里化,面試官問應用場景,自己就簡單地答了返回一個能連續呼叫引數的函式。。。再多的就沒用過了。問到面試官他們有什麼場景時,說我可以去看看redux中介軟體,現在回憶起來redux的connect就是一個,然後還有() => () => () => {}這種寫法來著
  3. 面試官說圖片的實現的時候,怎麼保證和視覺稿一致。這個自己沒說到rem佈局,,,後來去一家公司面試談適配的時候趕緊把這個扯上

後來有個從蘑菇街出來的高管,給我打電話,說他和另一個合夥人創業,在組初創團隊。當然人還是挺好的,自己也是覺得工資低,就沒去了。其實感覺他們的方向不是太對,我也不能說有沒潛力,反正自己不太感興趣

大搜車涼

可能自己要的工資高了。。。

先做一份筆試題,兩個面試官有根據這些問問。然後也是問了原型、作用域、es6相關的,有一個問題問了作用域鏈,忘了。。。其實它就是一個物件,裡面包含了當前作用域定義的變數、函式等,是一個私有屬性[[scope]],當js直譯器執行的時候,會去找作用域鏈下的變數,沒有找到則去上一層,直到最頂層,沒有則報ReferenceError未定義。再扯的話就到this和它的區別了,這個自行百度之

HR的時候說了一堆子,然後談到薪資時差不多到尾聲了。感覺這個HR挺不錯的,她說我們這種應屆生不能看工資,得看公司能給你帶來什麼,然後她還知道我們前端領域有個名人在她們那兒,,,其實我並不怎麼關注,畢竟自己不追星啊。當然她們的Node團隊在杭州也挺有名的,這個我真沒關注過。後來沒下文了,說是她問問前端leader要不要打個電話給我...被安慰一波了。

有贊涼

之前聽說有個技術一般的妹子去了,拿的工資比我在南京的還高,就想去當個冤大頭了。結果也是gg...T_T

第一輪電面,和蘑菇街差不過,基本的前端知識和計算機相關的,由於大學裡組成原理沒好好學,直接說不會了。。。

讓我印象深刻的是做的兩個線上程式設計題

  1. 深度優先遍歷,妥妥的
  2. 解析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直譯器確定的)

額,再多廢話點,記錄下

  1. 四種繫結this的方式:call\apply\bind\箭頭函式
  2. 延長作用域鏈的兩種方式: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上的解釋:

  1. 建立一個繼承了Foo.prototype的物件
  2. 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,覺得很感動,當時面試的時候覺得人就很好,說話平易近人,還請我吃了頓午飯,後來推了也是非常抱歉。

找份好的工作不容易,現在天氣又很熱。希望其他應屆生能找份好工作~不過話說回來,寧缺毋濫!

相關文章