一年半前端人的求職路

首發我的博客 🔥

種一棵樹,最好的時機是十年前,其次是如今css

我的狀況

2018.9開始實習,2019.7畢業於某二本。老東家前端團隊100人左右,社招基本不算實習經驗,算是一年半經驗出去戰鬥。html

1、先說緣由

一、想看看外面的世界

2018.9年實習 -> 2019.7轉正 -> 2021.3離職,沒見過外面的世界,本身說不上來老東家的一些好與壞,只是感受在一家公司呆久了,無論是同事、環境、技術相關,都趨於一種小變化的節奏。至於這是好是壞,因人而異吧。前端

二、我的成長

寫了好久的類似業務,感受對本身的成長來講,幫助很小。一直是vue,一直是toB,一直都是his系統。近一年以來,基本也是本身在負責兩個項目,很想和別人一塊兒作項目,學習大佬的姿式。也很想作作其餘的產品,或者toC等等,想讓本身能接觸更多的東西。打聽了有贊技術挺強,用的也是大廠偏心的React,本身想轉這方面的,也是爲了一個大廠夢,因此本身須要作出一些改變。vue

三、生活壓力

結婚須要房子,杭州的房價又不低,必須得去奮鬥,說白了仍是缺錢。提離職以前也大概瞭解了老東家的漲幅,下家給的翻倍,沒辦法拒絕。也是爲了提升本身的base,爲之後作作準備。node

2、面試結果(按順序排)

一、微點(offer)

出去面試的第一家,3輪技術+一輪hr,給的薪資還能夠,其餘年終1-3個月,單休+五險一金最低,本身就不考慮了react

二、塗鴉(現場掛)

信心滿滿的去現場面,被錘了一頓。次要緣由是:我給的pdf簡歷,重點的地方用其餘顏色標記了。結果塗鴉hr打印出來的簡歷這些標重點的都沒了。面試官也很無奈,只能揀其餘能看見的關鍵字問,我又不太熟,就只能GG了。給本身的打擊挺大的。。。主要緣由仍是本身菜😂nginx

三、海康(一面20mins掛)

一面二十多分鐘,而後給我掛了😂git

四、端點(offer)

一面電話,二面現場,三面HR電話。技術棧react,前端七八十人左右,給的薪資也還行,據說那邊90%是3個月年終,原本是要去的,後面有了有讚的offer。程序員

五、有贊(offer)

先後大概一週,年前最後一個工做日收到offer,本身提了離職。這裏寫下主要的問題吧,有想看個人回答的能夠去博客瞅兩眼【面試】2020年末面經github

六、字節跳動(一面1h20mins掛)

年前拿了有讚的offer,準備去了。惋惜的時候沒有面過大廠。快到離職日期的時候,朋友幫我內推了一下字節,帶着試一試的心態,距離上一次面試已經一個月了,簡單準備了一下。一面1h20min,我的感受沒有想象的那麼難,編程題沒作好,是本身的問題,再加油吧💪🏻。

面試中我的問題

一、話太多

一個問題本身能說很久,說着說着就跑題了。本身面試實習生,也遇到過這樣的。這樣會給本身在面試管的印象扣分。面試仍是揀重點的回答,回答也不能過短,須要在中間給面試官提問的時間。

二、答非所問

不會就是不會,不少知識點,若是是沒聽過的,或者本身沒去了解過的,就不要扯,這樣只會拉長面試的時間。某些知識點不會,直接說。面試官就接着下一個問題了,也能讓面試官更全面的瞭解本身。

三、算法薄弱

遇到算法題,老是想着用暴力法解決,寫的代碼有點難看。多去刷刷題,沒有基礎的,每種類型的刷幾道簡單的就行,像我這種比較初級的程序員,考的基本是簡單的算法題。

有贊面經

一面電話 (1h)

  1. 講講最近寫的項目
  2. 講講本身寫的打印插件,vue-iframe-print,和其餘打印方式對比。分頁問題,默認背景圖如何顯示(知道有 css,可是記不住是那個),自定義樣式等等
  3. 權限系統(RBAC),具體實現,接口權限校驗。通用接口如何校驗,可複用的業務接口如何校驗
  4. 講一講OAuth
  5. 微前端(項目在用) 爲何要用微前端,和 iframe 對比了一下。
  6. 實現一個水平垂直居中?flex:1 含義? 一道場景題
  7. margin 塌陷?有沒有遇到過其餘 css 問題?
  8. vue 響應式原理
  9. 組件 data 爲何是一個函數?
  10. vue Object.defineProperty 缺陷?數組 7 個方法怎麼重寫的?
  11. dep 依賴蒐集與 watcher 派發更新流程?dep 是發佈者仍是訂閱者?怎麼知道每個 watcher 要通知哪個 dep?
  12. keep-alive 原理?
  13. 講一講虛擬 dom
  14. 講一講vue diff 算法
  15. 爲何使用 key 能提高 diff 性能
  16. this 指向的理解?聲明時和運行時指向?箭頭函數指向?修改 this 指向?
  17. call,apply,bind 區別?講一下實現一個 bind 的思路
  18. 函數柯里化概念,經常使用場景?
  19. 關於緩存的一些東西?如何提升緩存命中率?
  20. 詳細描述一下輸入 URL 到頁面打開的過程,儘可能詳細些?
  21. 數組和鏈表在計算機中存儲的方式?計算機中增長一個數組元素的方式?
  22. 你有什麼想問個人?

而後約了二面,視頻 coding

一面視頻 coding(45mins)

/** * 1. 實現一個函數,判斷兩個變量值是否相等 * * 注意 * - 數據類型不限於示例,儘量考慮邊界 * - function 引用相等便可 */
const foo1 = {
  a: 1,
  b: "1",
  c: NaN,
  d: [
    {
      a: 1,
      b: 2,
    },
  ],
  f: {
    a: 1,
  },
  g: null,
};

const foo2 = {
  a: 1,
  b: "1",
  c: NaN,
  d: [
    {
      a: 1,
      b: 2,
    },
  ],
  f: {
    a: 1,
  },
  g: null,
};

function isEqual(target1, target2) {}
console.log(isEqual(foo1, foo2), "isEqual");

/** * 2. 實現 getValue 函數來獲取path對應的值 */
var object = { a: [{ b: { c: 3 } }] }; // path: 'a[0].b.c'
var array = [{ a: { b: [1] } }]; // path: '[0].a.b[0]'

function getValue(target, valuePath, defaultValue) {}

console.log(getValue(object, "a[0].b.c", 0)); // 輸出3
console.log(getValue(array, "[0].a.b[0]", 12)); // 輸出 1
console.log(getValue(array, "[0].a.b[0].c", 12)); // 輸出 12

/** * 問題 3 * 將一天24小時按每半小劃分紅48段,咱們用一個位圖表示選中的時間區間,例如`110000000000000000000000000000000000000000000000`, * 表示第一個半小時和第二個半小時被選中了,其他時間段都沒有被選中,也就是對應00:00~01:00這個時間區間。一個位圖中可能有多個不連續的 * 時間區間被選中,例如`110010000000000000000000000000000000000000000000`,表示00:00-1:00和02:00-02:30這兩個時間區間被選中了。 * * 要求:寫一個函數timeBitmapToRanges,將上述規則描述的時間位圖轉換成一個選中時間區間的數組。 * 示例輸入:`"110010000000000000000000000000000000000000000000"` * 示例輸出:`["00:00~01:00", "02:00~02:30"]` */
function timeBitmapToRanges(str) {}

console.log(
  timeBitmapToRanges("110010000000000000000000000000000000000000000000")
);
console.log(
  timeBitmapToRanges("110011000000110000000000000000000000000000001111")
);
複製代碼

二面現場( 1h20mins)

上來就是兩頁紙,我人懵了。。。由於已經作過線上 coding 了,沒作好心理準備~~~,也沒複習這方面的。。。。

  1. 大數相加: 給定兩個字符串形式的非負整數 num1 和 num2 ,計算它們的和。leetcode 415. 字符串相加
  2. 寫一個事件 Event 類,實現 on,off,emit,once 功能,同時 on 要支持 debounce。eg:on('click',function(){},500)
  3. 介紹下讓本身成長最大的項目?
  4. 你以爲如今遇到的最難的問題是什麼?
  5. 爲何要作微前端?
  6. 回到寫的第二道題,說到了 setTimeout 設定的時間,函數能準確按時執行嗎?setTimeout 怎麼能作到準時?
  7. js 是單線程仍是多線程?爲何?支不支持多線程?支持多線程的方式有哪些?node端多線程知不知道?進程和線程的區別?進程內存計算機如何分配?線程資源如何分配?
  8. 跨域的解決方案
  9. 如何實現移動端 1px 邊框
  10. 什麼是html 可替換元素?
  11. 一個圖片對應多個 cdn 地址,若是第一個地址不能用了,須要換成下一個,怎麼作?
  12. vue 生命週期詳細描述下?改變組件 data 裏面的東西會觸發什麼生命週期?
  13. vue2.x 響應式原理?Object.defineProperty 的一些參數?
  14. for in能夠遍歷出來那些東西?for in能夠遍歷數組嗎?能夠遍歷出那些東西?
  15. vue組件 scoped做用?實現原理?其餘的css隔離方案?
  16. 怎麼用ES5 去實現ES6類的繼承?
  17. 你以爲 eslint 有哪些規則比較有用?
  18. http1.1和http2的區別?http1.1中作了哪些項目優化?http1.1中用的哪些優化手段,會在http2中失效?http2.0還存在什麼問題?http3瞭解嗎?

聊了近一個半小時,終於結束了~~~面試小哥說讓我等會,告訴了我衛生間在那,就走了,面試體驗仍是挺不錯的,有些不知道的問題。面試官會換種問法,實在答不出來也會跟你說答案。

三面(50mins)

  1. 自我介紹
  2. 說一說最近一年作的最好的業務?你以爲你作的最出彩的地方是哪裏?
  3. 處方打印,不一樣格式如何設置?
  4. 離線緩存 存在什麼問題?
  5. 講一講權限系統?除了RBAC,還了解哪些權限設計嗎?RBAC的優勢?
  6. 給你一個需求:除了預設角色,某我的能夠單獨作其餘的事情,怎麼辦?
  7. 講一講大家作的微前端? 父應用如何加載多個子應用? 路由整合是如何作的?
  8. 講一講局部打印的實現?
  9. api-proxy是如何實現的?業務愈來愈複雜,nginx是否是每次都要改?怎麼解決?怎麼作一個全局代理?在本地如何調試線上代碼?
  10. 講一下項目中定製化需求如何處理?更優雅的方式?面試官舉了一個有讚的場景例子:關於不一樣商家後臺,某個商家多了一個菜單?某個商家在通用頁面A中有特殊的兩個按鈕?如何處理這種個性化的問題?深刻一點,如何把個性化需求開放給其餘商家本身開發?
  11. 若是讓你寫一個single-spa,你怎麼作?兩個子應用的app.js如何切換?js、css如何隔離?做爲攻擊者,如何突破用proxy實現的一個沙箱環境,或者說子應用如何才能訪問父應用的window對象?
  12. 講一講項目中的全鍵盤操做?keyup監聽怎麼作的?addEventListener第三個參數?如何阻止冒泡事件?怎麼阻止部分按鍵?
  13. 講一講oAuth 2.0
  14. 你爲何想出來看機會?對下一份工做指望是怎麼樣的?你如今是怎麼學習的?
  15. 你有什麼想問的?

接着就讓我等一下,估計是去討論去了,本身也知道,接下來若是有hr來,就80%過了。找個理由說hr不在的,基本就涼了。。。

四面(HR 40mins)

等待的時間是很是煎熬的~ 一會(忘記了是多久,差很少10分鐘?),HR小姐姐來了,換了個位置,開始面對面談。

  1. 剛剛聊下來感受怎麼樣?
  2. 對本身1-3年的規劃
  3. 前端方面有沒有犯過比較大的故障?績效好的狀況下爲何要考慮機會?
  4. 你以爲本身還能在如今的業務中成長多少?或者說你還能爲如今的業務作什麼?
  5. 平時本身的學習方式?
  6. 你但願本身3年之後能達到什麼水平?你以爲本身和P6差距在哪?
  7. 平時的工做節奏?
  8. 你對加入有讚的一些期待是什麼?薪資是怎麼樣的期待?有沒有其餘offer?
  9. 你有什麼想問的?

問了下何時能給結果?也說了本身有三個offer,年前須要給答覆,HR小姐姐說,明天儘快。

等我到門口的時候,又問了下離職時間。這個時候本身才感受有戲~~~~

拿offer & 提離職

次日中午,hr給我電話了,下午發了滿意的offer。接着本身就去找主管提離職了,主管說有點忽然,他要開車回家,就擱置了一下,到晚上的時候,本身又主動找了下主管,當時也沒說出結果,最後晚上十一點多,大領導打電話來問我離職的緣由,本身說了成長和錢的問題,最後和主管約定了離職日期。

一些感想

離職想法產生以前,本身並無太多準備。遺憾的是沒有把大廠都面一遍,字節是離職前一週的面的,沒什麼準備,卒。網易找了內推,hr說資歷太淺,卒。脈脈上找了個阿里內推,給我投個H5技術專家,氣死人😤,卒。整體來講,沒有個三年經驗也挺難的,我2021.2投的,算是一年半經驗,不少大廠簡歷都過不去。

幸運的是,年前拿到了offer,避免了年後的激烈競爭😎

學習資源

image.png

相關文章
相關標籤/搜索