2021 阿里字節(jié)快手面經(jīng) & 個(gè)人成長(zhǎng)經(jīng)驗(yàn)分享

本人背景渣渣,較晚入行,在一家公司穩(wěn)定了三年,從一個(gè)前端白紙到如今亂涂亂畫(huà),已成雛形。2020 年年末,我離職了,因?yàn)樯羁桃庾R(shí)到自己有多 "菜",想專(zhuān)心花點(diǎn)時(shí)間提升自己。經(jīng)過(guò)一點(diǎn)時(shí)間的調(diào)整,我重裝上陣。由于節(jié)前時(shí)間有限,只投了幾家,當(dāng)然都是找人內(nèi)推的。
阿里四輪技術(shù)+一輪 hr
一面 (60min)
自我介紹主要圍繞幾個(gè)點(diǎn):個(gè)人信息、最近的公司職責(zé)和涉及的業(yè)務(wù)、主要技術(shù)棧、我擅長(zhǎng)的技術(shù)、項(xiàng)目介紹(STAR:項(xiàng)目背景、任務(wù)、你的工作內(nèi)容、項(xiàng)目亮點(diǎn)、結(jié)果你實(shí)現(xiàn)了什么學(xué)到了什么)、最近在做什么、結(jié)語(yǔ)。
簡(jiǎn)歷里寫(xiě)了兩個(gè)技術(shù)棧,所以講講 vue 和 react 的區(qū)別和聯(lián)系吧主要圍繞幾個(gè)點(diǎn):兩者的模板渲染、兩者的虛擬 dom、diff 差異(vue2、vue3、react 16)、react fiber 能解決什么問(wèn)題、vue2 的響應(yīng)式原理和 vue3 的響應(yīng)式原理;vue 關(guān)于 Proxy 與 Object.defineProperty 的區(qū)別;兩者的批量更新,還有路由差異、常用的優(yōu)化手段、怎么進(jìn)行數(shù)據(jù)通信、講點(diǎn)新鮮的內(nèi)容:新發(fā)布的 vue3 有什么特性、最后總結(jié),談?wù)剝烧叩娜缃竦纳鷳B(tài)……
項(xiàng)目的性能優(yōu)化主要圍繞幾個(gè)點(diǎn):項(xiàng)目技術(shù)棧的性能優(yōu)化,比如使用 react 可以講避免重復(fù)渲染的一些手段,比如 electron 可以將如何更接近原生;針對(duì)瀏覽器做的優(yōu)化(你需要了解瀏覽器相關(guān)原理,比如緩存/存儲(chǔ)、代理、SSR 等,針對(duì)渲染引擎的工作內(nèi)容想到的優(yōu)化,比如解析 css 解析會(huì)影響 dom 渲染、合成優(yōu)化減少回流重繪、web worker、Event Loop 等);打包工具提供的優(yōu)化,特指 webpack;針對(duì)具體的頁(yè)面做的優(yōu)化,比如首頁(yè)該做什么,首頁(yè)最新指標(biāo);最后講講應(yīng)用場(chǎng)景、我的項(xiàng)目里用到了哪些方法,針對(duì)中等項(xiàng)目、大型項(xiàng)目的性能選擇。PS:性能優(yōu)化的內(nèi)容如果認(rèn)真講,肯定兩/三個(gè)小時(shí)下不來(lái),因?yàn)樾阅軆?yōu)化沒(méi)有終點(diǎn),我面試時(shí)也只想到了上面的這些……
了解我們的產(chǎn)品嗎?我提前 google 了團(tuán)隊(duì)的業(yè)務(wù)項(xiàng)目,之前也看過(guò)一些類(lèi)似產(chǎn)品的文章,我結(jié)合自己的項(xiàng)目經(jīng)驗(yàn),說(shuō)了一點(diǎn)理解,就幾句話。
你想問(wèn)什么?我問(wèn)了本次的表現(xiàn),了解了一些團(tuán)隊(duì)項(xiàng)目的工作內(nèi)容、項(xiàng)目招人的背景、對(duì)于后續(xù)面試該做什么準(zhǔn)備。一面沒(méi)碰到手寫(xiě)題,都是很基礎(chǔ)的問(wèn)題,整體相對(duì)輕松。
二面 (60min)
晚上 9 點(diǎn)半的面試,面試官應(yīng)該剛忙完,上來(lái)直接問(wèn)業(yè)務(wù),全程業(yè)務(wù)……權(quán)限頁(yè)面的細(xì)節(jié):
各個(gè)模塊、按鈕怎么設(shè)計(jì)權(quán)限; 分角色、分地域怎么設(shè)計(jì)? 要加個(gè)表頭,還要控制展示的順序,在各個(gè)瀏覽器表現(xiàn)一致,怎么設(shè)計(jì)?說(shuō)出所有方案,想到什么自由發(fā)揮了…… 聊到本地存儲(chǔ),問(wèn):localStorage 在各瀏覽器、移動(dòng)端瀏覽器的 size 一致嗎?
其他:
這一段是我簡(jiǎn)歷的項(xiàng)目,略過(guò)…… 繼續(xù)聊阿里的產(chǎn)品,簡(jiǎn)單使用后,請(qǐng)?zhí)岢鰩讉€(gè)可以優(yōu)化的地方? 啥也沒(méi)透露,讓你預(yù)測(cè)下這款產(chǎn)品的接下來(lái)的方向,如果是你,你會(huì)著手哪個(gè)方向,并且憑啥讓你來(lái)干,說(shuō)下你擅長(zhǎng)的…… 正式討論產(chǎn)品,大家都在做什么,團(tuán)隊(duì)協(xié)作的情況,公布接下來(lái)的迭代方向,針對(duì)的人群,目標(biāo)…… 照例閑聊,拜拜。
插曲:中間出現(xiàn)兩次突然掛機(jī),當(dāng)時(shí)我的感覺(jué)就像過(guò)山車(chē),從高空滑向低谷,整個(gè)心都是 ——某可愛(ài)漂亮的央視記者—— 的。
三面 (60min)
這一面是筆試,哈哈,我復(fù)習(xí)了很多手寫(xiě)題,結(jié)果是完全與三面的考題完美岔開(kāi),沒(méi)有交集,emmm……,好在并不難……題一:
/**
?*?1.計(jì)算多個(gè)區(qū)間的交集
?*???區(qū)間用長(zhǎng)度為2的數(shù)字?jǐn)?shù)組表示,如[2, 5]表示區(qū)間2到5(包括2和5);
?*???區(qū)間不限定方向,如[5, 2]等同于[2, 5];
?*???實(shí)現(xiàn)`getIntersection?函數(shù)`
?*???可接收多個(gè)區(qū)間,并返回所有區(qū)間的交集(用區(qū)間表示),如空集用null表示
?*?示例:
?*???getIntersection([5,?2],?[4,?9],?[3,?6]);?//?[4,?5]
?*???getIntersection([1,?7],?[8,?9]);?//?null
?*/
題二:
/**
?*?2.DOM?的體積過(guò)大會(huì)影響頁(yè)面性能,假如你想在用戶關(guān)閉頁(yè)面時(shí)統(tǒng)計(jì)(計(jì)算并反饋給服務(wù)器)
?當(dāng)前頁(yè)面中元素節(jié)點(diǎn)的數(shù)量總和、元素節(jié)點(diǎn)的最大嵌套深度以及最大子元素個(gè)數(shù),請(qǐng)用?JS?配合
?原生?DOM?API?實(shí)現(xiàn)該需求(不用考慮陳舊瀏覽器以及在現(xiàn)代瀏覽器中的兼容性,可以使用任意
?瀏覽器的最新特性;不用考慮 shadow DOM)。比如在如下頁(yè)面中運(yùn)行后:
?*/
<html>
??<head>head>
??<body>
????<div>
??????<span>fspan>
??????<span>ospan>
??????<span>ospan>
????div>
??body>
html>
//?會(huì)輸出:
{
??totalElementsCount:?7,
??maxDOMTreeDepth:?4,
??maxChildrenCount:?3
}
題三:
//?3.請(qǐng)使用原生代碼實(shí)現(xiàn)一個(gè)Events模塊,可以實(shí)現(xiàn)自定義事件的訂閱、觸發(fā)、移除功能
/*
const?fn1?=?(...?args)=>console.log('I?want?sleep1',?...?args)
const?fn2?=?(...?args)=>console.log('I?want?sleep2',?...?args)
const?event?=?new?Events();
event.on('sleep',?fn1,?1,?2,?3);
event.on('sleep',?fn2,?1,?2,?3);
event.fire('sleep',?4,?5,?6);
//?I?want?sleep1?1?2?3?4?5?6
//?I?want?sleep2?1?2?3?4?5?6
event.off('sleep',?fn1);
event.once('sleep',?()=>console.log('I?want?sleep));
event.fire('sleep');
*/
業(yè)務(wù)四面 (35 min)
周末,人在夢(mèng)游,剛下航母,就激靈靈接到電話,人還是糊的……
跨端的原理?我講了幾個(gè)例子:taro、uni-app,順便提了 flutter、react native、小程序等的架構(gòu),具體怎么設(shè)計(jì)的。 動(dòng)態(tài)表單能夠運(yùn)用在什么場(chǎng)景?我舉了 7、8 個(gè)例子。 移動(dòng)端適配相關(guān)的問(wèn)題,應(yīng)用場(chǎng)景。 我公司的業(yè)務(wù)討論,是否了解過(guò)競(jìng)品等等,這里略過(guò)。
hr 五面 (60 min)
對(duì)于你項(xiàng)目的競(jìng)品有了解嗎?說(shuō)一下 你的項(xiàng)目與競(jìng)品相比,好在哪里,有什么優(yōu)勢(shì)? 下班后都在做什么,問(wèn)的都是過(guò)往經(jīng)歷,問(wèn)的太詳細(xì)了,讓人不舒服。 如果與同事發(fā)生了意見(jiàn)的不一致,你會(huì)如何解決呢 現(xiàn)在針對(duì)我們的業(yè)務(wù),急需增加一個(gè)新的模塊位置,你會(huì)怎么設(shè)計(jì)?數(shù)據(jù)怎么展示……
沒(méi)錯(cuò),hr 還問(wèn)技術(shù)相關(guān)的問(wèn)題。
整體感受
總體面下來(lái)沒(méi)有讓人緊張的感覺(jué),中規(guī)中矩,從剛開(kāi)始較高的心理預(yù)期到后面慢慢回落……由于我的水平有限,最終沒(méi)有爭(zhēng)取到多高的薪水。
快手二面掛
一面(60min)
自我介紹 react 與 vue 的技術(shù)棧對(duì)比,說(shuō)下區(qū)別 B 端遇到的最復(fù)雜的數(shù)據(jù)結(jié)構(gòu)是什么 快速實(shí)現(xiàn) [1, 2, ...100],所有你能想到的解 數(shù)據(jù)展示的優(yōu)化、數(shù)據(jù)截取和處理 實(shí)際場(chǎng)景中,哪些地方應(yīng)用到了堆、鏈表、多叉樹(shù)結(jié)構(gòu) es6 及 es6+ 的能力集,你最常用的,這其中最有用的,都解決了什么問(wèn)題。 GC 相關(guān)問(wèn)題:es6+ ,eventloop 中涉及 GC 的部分。 數(shù)組 flat 展開(kāi)的各種解法,數(shù)組 map 應(yīng)用 講下 V8 sort 的大概思路 Promise 并發(fā)限制 手寫(xiě) Promise.all 省市區(qū)拼接查字段,要求 O(n) 內(nèi)解出 中臺(tái)的理解 討論了下業(yè)務(wù) 個(gè)人發(fā)展方向
一面的問(wèn)題循序漸進(jìn),前面為后面鋪墊。
二面(60min)
項(xiàng)目的復(fù)盤(pán)優(yōu)化 說(shuō)下業(yè)務(wù)上最復(fù)雜的點(diǎn) node 限流算法 最有效的性能優(yōu)化方法 你提到性能指標(biāo),能說(shuō)說(shuō)都是怎么計(jì)算的嗎?比如 LCP,F(xiàn)ID 算法題:數(shù)組全排列[1] 中臺(tái)業(yè)務(wù)討論 離職原因
大早上面試,狀態(tài)不佳,全排列算是基礎(chǔ)了,腦子里有解題思路,但死活沒(méi)寫(xiě)對(duì),面完后狠狠又手寫(xiě)了幾遍。
獵豹移動(dòng)三輪技術(shù)面+一輪 hr 面
技術(shù)一面 (60min)
input type 都有哪些類(lèi)型,還記得其他 attrs 呢 css 的偽類(lèi)和偽元素有哪些?有什么區(qū)別? 在一個(gè)未知寬度的父元素內(nèi)如何創(chuàng)建一個(gè)等邊正方形 異步加載 js 會(huì)阻塞什么 數(shù)組所有方法都有哪些?findIndex 的參數(shù)說(shuō)明 vue 和 react 的異同 如何優(yōu)化 vue 框架,注意是優(yōu)化框架 vue 和 react 的 jsx 使用 id key 真的能使列表比對(duì)更高效嗎?舉個(gè)反例? webpack 優(yōu)化的手段 tree-shaking 怎么配置,如何 避免 tree-shaking? electron 和小程序遇到什么坑? 說(shuō)下微信自動(dòng)化測(cè)試 es2015 到 es2020 的新特性,你最常用什么,給你收益最大的。 weakMap 和 Map 的區(qū)別,weakMap 原理,為什么能被 GC? 如何干擾 GC ? webpack import 動(dòng)態(tài)加載原理 知道 webpack 中的 devTool 嗎? 如何進(jìn)行錯(cuò)誤定位和數(shù)據(jù)上報(bào),線上異常的處理 為什么有時(shí)候配置了 webpack caching,chunk 還是更新了? 講講瀏覽器和 node 的 eventloop 微任務(wù)后面還有哪些?requestAnimationFrame 是怎么調(diào)用的?requestAnimationFrame 幀內(nèi)總是有任務(wù)嗎?分情況說(shuō)下。 幀數(shù)怎么計(jì)算? 了解網(wǎng)絡(luò)安全嗎? 如何避免數(shù)據(jù)被 iframe 截獲 說(shuō)下?tīng)顟B(tài)碼 說(shuō)下 304,什么情況會(huì) 304?協(xié)商緩存的頭部字段? 你學(xué)習(xí)的渠道 工程化實(shí)踐的看法
第一個(gè)問(wèn)題沒(méi)進(jìn)入狀態(tài),我心里想怎么問(wèn)這么簡(jiǎn)單的問(wèn)題,我宕機(jī)了一會(huì)……后面就順利了,面試官全程冷淡,也不閑聊。無(wú)趣,后來(lái)問(wèn)了下,是獵豹的前端架構(gòu)師,嗯,大佬就該有大佬的氣場(chǎng),面試體驗(yàn)棒棒的~~
業(yè)務(wù)二面 (60min)
大致內(nèi)容:業(yè)務(wù)交流,工程化實(shí)踐交流、獵豹前端在做什么,資源有哪些,他們的業(yè)務(wù)是偏 C 端的,未來(lái)的方向、發(fā)展等等……這一面很輕松,想到什么說(shuō)什么,當(dāng)然邏輯性肯定要有的。
業(yè)務(wù)三面 (70min)
這一面的面試官是獵豹移動(dòng)的技術(shù)負(fù)責(zé)人。
項(xiàng)目是如何收集問(wèn)題的,用戶量如何? 性能問(wèn)題如何排查,你們項(xiàng)目的指標(biāo),具體數(shù)據(jù)、截圖發(fā)給我看看…… 模塊化是怎么實(shí)施的? 目錄結(jié)構(gòu)講下 一些功能是自研還是使用第三方工具,叫什么名字,怎么使用 ? 瘋狂問(wèn)測(cè)試相關(guān)的內(nèi)容,單元測(cè)試和組件測(cè)試是怎么做的、代碼覆蓋率多少,如何權(quán)衡測(cè)試原則,系統(tǒng)測(cè)試相關(guān)的內(nèi)容,一些細(xì)節(jié)上的問(wèn)題怎么處理,等等,要說(shuō)出個(gè) 1、2、3 來(lái) ? 項(xiàng)目亮點(diǎn)/難點(diǎn),怎么解決 ? 復(fù)盤(pán),整個(gè)項(xiàng)目總結(jié),讓你重新設(shè)計(jì)這套系統(tǒng)你會(huì)怎么做 ? 工程化實(shí)踐和深入的一個(gè)點(diǎn) 團(tuán)隊(duì)氛圍,有什么好的點(diǎn)可以說(shuō)下,有什么不好的點(diǎn)也說(shuō)下…… 中臺(tái)具體集成了什么功能 ?你都做了什么 ? 你是如何進(jìn)行技術(shù)突破的,又是如何學(xué)習(xí)的 ? 對(duì)未來(lái)的規(guī)劃 有什么問(wèn)題想問(wèn)?我隨便問(wèn)了幾個(gè)問(wèn)題過(guò)渡,然后拋出最重要的一個(gè),厚著臉皮讓大佬指出我的問(wèn)題(PS:這是我面試的目的之一,當(dāng)時(shí)幾個(gè)面試進(jìn)度屬獵豹最快了。別人眼中的我,在前端方面具體是怎樣的感官 ?我一直很好奇。不是每個(gè)人都有一個(gè)對(duì)自己清晰的認(rèn)識(shí)的,既然自己想不出來(lái),那就通過(guò)面試吧)。
這次面試暴露的點(diǎn):項(xiàng)目的總結(jié)、全局的把控、自我復(fù)盤(pán)都是有所欠缺的。另外不要給自己挖坑,有時(shí)候知道一些概念但不知道具體的實(shí)操和原理,還是別說(shuō)了。當(dāng)時(shí),關(guān)于測(cè)試方面的問(wèn)題,考官一直假裝不懂,老是問(wèn):真的嗎?這個(gè)我沒(méi)做過(guò),你給我講講吧?我原本沒(méi)錯(cuò)的內(nèi)容也被誤導(dǎo)了,emmmm……
hr 四面(30min)
常規(guī)問(wèn)題,沒(méi)有阿里那么嚴(yán)格。
講講前任公司 離職原因 加班的看法 獵豹的福利 有沒(méi)有其他 offer balabala……
字節(jié)跳動(dòng)三面掛
技術(shù)一面(60min)
剛開(kāi)始就問(wèn)我的項(xiàng)目,問(wèn)的很詳細(xì)。 webpack 提高構(gòu)建速度的方式 loader 輸入什么產(chǎn)出什么 ? webpack 原理 webpack 動(dòng)態(tài)加載的原理 webpack 熱更新 如何寫(xiě)一個(gè) webpack plugin AST 的應(yīng)用 如何解析一個(gè) html 文本,還是考 AST babel 原理,怎么寫(xiě) babel 插件 如何設(shè)計(jì)一個(gè)沙盒 sandbox ? 小程序的 API 做了什么處理,能夠做到全局變量的隱藏,如果是你,怎么設(shè)計(jì) ? 基礎(chǔ)題考閉包的,我講對(duì)了思路,結(jié)果沒(méi)做對(duì)。 實(shí)現(xiàn)顏色轉(zhuǎn)換 'rgb(255, 255, 255)' -> '#FFFFFF' 的多種思路。 提供一個(gè)數(shù)字 n,生成一組 0~n-1 的整數(shù),打亂順序組成數(shù)組,打亂幾次,如何能夠看起來(lái)平衡,說(shuō)出你能想到的所有方法。 leetcode 239[2] 隨便問(wèn)環(huán)節(jié),我問(wèn)了考閉包的那道題,我沒(méi)有做對(duì)。
這一面我準(zhǔn)備了很多東西,結(jié)果又完美 miss。
二面技術(shù) leader(60min)
業(yè)務(wù),業(yè)務(wù),還是業(yè)務(wù),項(xiàng)目復(fù)盤(pán)有沒(méi)有更好的解決方案。 如何處理一個(gè)重大事故 bug 監(jiān)控體系 虛擬 dom 有什么好的地方?框架為什么要設(shè)計(jì)虛擬 dom? webpack 的缺點(diǎn),讓你設(shè)計(jì)一個(gè)新的構(gòu)建打包工具,你會(huì)怎么設(shè)計(jì)? 在線文檔編輯,如何處理兩人的沖突,如何展示,考慮各種場(chǎng)景 excel 文檔沖突高級(jí)處理,文章沖突呢?是上個(gè)問(wèn)題的深化。 基礎(chǔ)題,直接寫(xiě)出答案:
let?x?=?[1,?2,?3];
let?y?=?x;
let?z?=?[4,?5,?6];
y[0]?=?10;
y?=?z;
z[1]?=?20;
x[2]?=?z?=?30;
console.log(x,?y,?z);
復(fù)制代碼
基礎(chǔ)題:leetcode 300[3] 隨便問(wèn)環(huán)節(jié)
三面業(yè)務(wù) leader(60min)
算法題: 從數(shù)組 [1, 5, 8, 10, 12] 中找到兩個(gè)數(shù)和為 9,返回 [1, 8] 這樣的結(jié)果。算法題: 從數(shù)組 [1, 5, 8, 10, 12] 中找到三個(gè)數(shù)和為 19,返回 [1, 8, 10] 這樣的結(jié)果。算法題 leetcode 300[4]: 給定一個(gè)無(wú)序的整數(shù)數(shù)組,找到其中最長(zhǎng)上升子序列的長(zhǎng)度。針對(duì)我的項(xiàng)目提問(wèn),大概 40 分鐘吧,腦子亂。 沒(méi)有隨便問(wèn)環(huán)節(jié),我差不多有預(yù)感了。
是的,我的字節(jié)面止步于此了,這一面算法沒(méi)有難倒我,基本上看到題目我就能想出解法。三面掛的原因是我簡(jiǎn)歷上的項(xiàng)目太簡(jiǎn)單了,你想要真實(shí),我給你真實(shí),可惜你看不上這些真實(shí)(這次面試我的簡(jiǎn)歷沒(méi)有準(zhǔn)備好是一大原因,各位,我就是你們的前車(chē)之鑒啊!)………
個(gè)人經(jīng)驗(yàn)分享
這個(gè)應(yīng)該是各個(gè)面經(jīng)的保留節(jié)目了,我也在此留下筆記。主要分兩個(gè)方面來(lái)講,一個(gè)是前端技術(shù)的學(xué)習(xí),另一個(gè)是面試當(dāng)中需要注意的點(diǎn)。
準(zhǔn)備階段
本來(lái)想先介紹簡(jiǎn)歷怎么寫(xiě),不過(guò)這方面資料太多了,如果你的簡(jiǎn)歷不過(guò)關(guān),請(qǐng)找些面經(jīng)或者內(nèi)推群給予協(xié)助,讓別人指導(dǎo)下,然后,說(shuō)下重點(diǎn):在這里首先要感謝一位同學(xué),我在前文中反復(fù)提到的,\@神三元[5],謝謝你分享你學(xué)習(xí)時(shí)的感受、謝謝你整理的系列文章。毫不夸張的說(shuō),三元發(fā)布的所有文章,我都反復(fù)學(xué)習(xí)了至少十遍吧,甚至更多,順便在學(xué)習(xí)的過(guò)程中找出了不少文章中的筆誤。要說(shuō)的是,人是健忘的,所以如果你對(duì)一些內(nèi)容忘記了,請(qǐng)繼續(xù)反復(fù)學(xué)習(xí),前面的過(guò)程是痛苦的,后面復(fù)習(xí)的時(shí)候就很簡(jiǎn)單了,我們簡(jiǎn)單回憶就能找回失去的,畢竟咱們這么多年教育對(duì)這肯定深有體會(huì)。到了這里,你的基礎(chǔ)應(yīng)該有一點(diǎn)了,基本常見(jiàn)的 手寫(xiě)題(看這里)[6] 已經(jīng)難不倒你了,基于此,我又花了點(diǎn)時(shí)間刷了 Leetcode,還是一樣的套路,不會(huì)就多刷吧,那些奇淫技巧很難靠靈光一現(xiàn)。另外我額外又整理了幾萬(wàn)字的筆記(放心,這里沒(méi)有鏈接……),筆跡的內(nèi)容包括但不限于:
看源碼,整理 Vue 與 React 框架的所有橫向?qū)Ρ龋ㄤ秩驹怼⑻摂M dom、diff、patch、fiber、批量更新,手寫(xiě)響應(yīng)式,框架用到的模式、設(shè)計(jì)思想,性能優(yōu)化,相關(guān)生態(tài)技術(shù)等等。
webpack 原理、熱更新原理、動(dòng)態(tài)加載原理、常見(jiàn) plugins、loader、常見(jiàn)優(yōu)化,怎么打包、怎么分 chunk,怎么寫(xiě)一個(gè) plugins,生命周期,微內(nèi)核源碼等內(nèi)容,以及 rollup、gulp 的使用、應(yīng)用場(chǎng)景。(我記得有一面一個(gè)考官對(duì)我說(shuō),你對(duì)整個(gè)研發(fā)流程都很清楚,但都并不深入,比如一個(gè) webpack 打包分包的依據(jù)怎么判定……emmmm,我倒是會(huì),你也不問(wèn)我啊!)
跨端框架的研究,工程化的梳理,使用的技術(shù)棧的坑,移動(dòng)端的一些實(shí)踐,面試時(shí)額外準(zhǔn)備的項(xiàng)目復(fù)盤(pán),競(jìng)品調(diào)查,對(duì)方產(chǎn)品的資料,測(cè)試系列,還有很多如微前端、中臺(tái)、serverless、可視化、Wasm 等就不舉例了。
除此之外,我也看了很多面經(jīng)、以及技術(shù)文章。
掌握了以上內(nèi)容,我們應(yīng)該算是有一點(diǎn)知識(shí)廣度了也能從容地應(yīng)對(duì)前面的技術(shù)面了,當(dāng)然,這不是短短幾個(gè)月就能達(dá)成了,要時(shí)間的積累,那些一年就資深的牛人也是在大學(xué)甚至更早的時(shí)候就開(kāi)始積累的,這一關(guān)逃不掉。到此,“技術(shù)面” 這只老虎應(yīng)該能打個(gè)半死,直接干倒是不可能的,以上的知識(shí)對(duì)于校招可能足夠,但社招不一定用的上,哈哈。然后就是社招的重點(diǎn):業(yè)務(wù)面,怎么說(shuō)呢,就是多思考多總結(jié)吧,深入思考,對(duì)每個(gè)問(wèn)題一定要有深入的思考,不然就很難進(jìn)入大公司了,深度上要有一個(gè)拔高才能在面試中獲得好的成績(jī)。挑出你項(xiàng)目中的亮點(diǎn),要被別人認(rèn)可的亮點(diǎn),這個(gè)比較難,各位只能自求多福了,也是我本人的短板,當(dāng)時(shí)也是雞蛋里挑骨頭,這是我這次找工作遇到的最大攔路虎,業(yè)務(wù)太簡(jiǎn)單,你眼中的亮點(diǎn)面試官覺(jué)得不是……當(dāng)然我這里也可以提供一點(diǎn)方向給你:
業(yè)務(wù)方面的思考和準(zhǔn)備[7],你可以去這里看看,見(jiàn)微知著,多發(fā)散,一定會(huì)有啟發(fā) 這是我關(guān)注的業(yè)務(wù)大佬:58 沈劍\_架構(gòu)師之路[8]、冴羽、愛(ài)笑的架構(gòu)師 書(shū)籍方面:《金字塔原理》,有時(shí)間可以抽空看看,不保證有用。
面試階段
很多面經(jīng)都說(shuō)回答問(wèn)題時(shí),思考一下再回答,為了組織語(yǔ)言,但有時(shí)候,你明明懂,在緊張的情況下反而會(huì)將關(guān)鍵信息跳過(guò),答的讓人不知所云。要做到:“想清楚,說(shuō)明白,知道說(shuō)什么,怎么說(shuō)”,還是有一點(diǎn)難度的,關(guān)系到平常一點(diǎn)一滴的積累,這方面我上面已經(jīng)提供了一點(diǎn)方向。剩下的就是面試階段好好發(fā)揮了,沒(méi)什么太好的辦法,我這里建議:
回答問(wèn)題前思考一下,雖然不保證有用,但還是要好好履行的。 多面幾次,指的不同公司,只要你不嫌累。 在面試某一家公司時(shí),根據(jù)前面的面試,嘗試推測(cè)后續(xù)考官會(huì)問(wèn)到的業(yè)務(wù)的大致范圍,或者問(wèn)內(nèi)推同學(xué),提前做準(zhǔn)備。一般會(huì)問(wèn):1 你簡(jiǎn)歷上的項(xiàng)目,2 對(duì)方部門(mén)知名的產(chǎn)品,3 招聘 jd 上的 title。 簡(jiǎn)單的復(fù)盤(pán),保證別倒在同樣的問(wèn)題上。 增加知識(shí)的廣度,可以引導(dǎo)向別的問(wèn)題,考官也是樂(lè)意聽(tīng)的。 挑個(gè)面試的好時(shí)間,比如我本人,早上 10 點(diǎn)我的腦子無(wú)比靈光,說(shuō)話都帶著沉穩(wěn)富有磁性……晚上 7 點(diǎn)后,就會(huì)莫名緊張,聲音分貝提高幾個(gè)點(diǎn)略微沙啞,這個(gè)真的因人而異。有時(shí)候沉穩(wěn)不一定是好事,緊張反倒促使你偶有妙語(yǔ)和想法,當(dāng)然也可能搞砸。 找?guī)讉€(gè)方法迅速調(diào)整好你的精氣神,在前面基礎(chǔ)學(xué)習(xí)的時(shí)候也可以用上。 如果你夠厲害,可以適當(dāng)暗示和引導(dǎo)面試官問(wèn)些你擅長(zhǎng)的,千萬(wàn)不要被牽著鼻子走。 最后,拜佛燒香,求個(gè)好運(yùn)。人和人的差異,在于認(rèn)知和思考力的差異。假如你一時(shí)之間思維沒(méi)有一個(gè)質(zhì)的變化,不如求個(gè)好運(yùn)。沒(méi)有一個(gè)好的運(yùn)氣,上面的建議可能通通都不好使,畢竟社招面試內(nèi)容本身就是不穩(wěn)定的,有的重技術(shù)、有的重算法、有的重業(yè)務(wù)、有的重學(xué)歷、有的重眼緣……
如何堅(jiān)持學(xué)習(xí)?
這一塊算是補(bǔ)的,我依然只給建議:
如果你玩游戲的話,請(qǐng)放棄游戲,或者戒掉一段時(shí)間,直到找到滿意工作。 找到你的痛點(diǎn)。 分段學(xué)習(xí),制定符合周期的計(jì)劃。不要逼著自己,否則壓力會(huì)讓你崩潰的。 找點(diǎn)雞湯,或者去找點(diǎn)你沒(méi)有但渴望得到的東西。 業(yè)務(wù)方面,多看點(diǎn)書(shū),多總結(jié)積累一些思考方式。
最后靈魂一問(wèn):
你的夢(mèng)想是進(jìn)大廠嗎?你明白的,這需要一點(diǎn)小小的代價(jià)。 你是萬(wàn)中無(wú)一的奇才?如果不是,那么失敗幾次是正常的,大家都是普通人,也許只是不 match。
最后
文章到這就結(jié)束了,我的水平有限,我也不知道這篇面經(jīng)能夠拯救幾個(gè)娃,相信很多人跟我一樣都會(huì)有一個(gè)進(jìn)大廠的夢(mèng)吧。春招將至,希望大家都能在春招當(dāng)中拿到自己滿意的 offer。最后,能看到這里的小伙伴順手點(diǎn)個(gè)贊吧。
參考資料
數(shù)組全排列:?https://leetcode-cn.com/problems/permutations/submissions/
[2]leetcode 239:?https://leetcode-cn.com/problems/sliding-window-maximum/
[3]leetcode 300:?https://leetcode-cn.com/problems/longest-increasing-subsequence/
[4]leetcode 300:?https://leetcode-cn.com/problems/longest-increasing-subsequence/
[5]@神三元:?https://juejin.cn/user/430664257382462
[6]手寫(xiě)題(看這里):?https://juejin.cn/post/6902060047388377095
[7]業(yè)務(wù)方面的思考和準(zhǔn)備:?https://github.com/vianvio/FE-Companions/issues?page=1&q=is%3Aissue+is%3Aopen
[8]58 沈劍_架構(gòu)師之路:?https://juejin.cn/user/2084329777810984
最后
歡迎加我微信(winty230),拉你進(jìn)技術(shù)群,長(zhǎng)期交流學(xué)習(xí)...
歡迎關(guān)注「前端Q」,認(rèn)真學(xué)前端,做個(gè)專(zhuān)業(yè)的技術(shù)人...


