<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          2020 校招,我是如何拿到小米、京東、字節(jié)大廠前端offer

          共 5155字,需瀏覽 11分鐘

           ·

          2020-03-13 23:23

          (給前端大學(xué)加星標(biāo),提升前端技能.

          作者:B2D1

          https://juejin.im/post/5e66ecdee51d45270c27916d

          前言

          Hi~,我是 2020 屆物聯(lián)網(wǎng)專業(yè)畢業(yè)生,現(xiàn)就讀于杭州。謹(jǐn)以此文來記錄我的秋招以及入門前端以來的學(xué)習(xí)歷程,如有錯誤,希望大家能及時提出!

          面試情況


          從19年8月初到11月底,前前后后一共面試了 14 家公司的前端崗,按城市劃分為:

          • 北京:小米,京東,美團,百度,去哪兒

          • 杭州:阿里,網(wǎng)易,微店,字節(jié)跳動

          • 上海:七牛云,哈啰出行

          • 深圳:騰訊,富途,樂信


          歷時4個月,最終收獲了 小米、京東、微店、字節(jié)跳動 的offer

          過程太過曲折,這其中也發(fā)生了很多讓我印象深刻的事……

          8月初,提前批面試aliyun,撲通倒在了三面;正式批面試淘系技術(shù)部,HR面后,過了大概兩個星期,變成 面試已回絕

          (發(fā)布文章時,系統(tǒng)一直提示有違禁詞匯,檢查了半天,原來是 aliyun 的鍋,只可以打拼音)

          9月中旬,短信收到了百度面試的喜訊,興高采烈買了去上海的動車票,起了個大早,卻連 現(xiàn)場一面也沒通過

          10月初,郵箱收到網(wǎng)易的現(xiàn)場面試通知,那一天從 10:00 面到 19:00,等候區(qū)就剩我一人了,HR面結(jié)束后,工作人員還送了張食堂券(不愧是豬廠,伙食還不錯),結(jié)尾依舊收到了 拒信


          11月中旬,已經(jīng)收獲了雷布斯的offer,但不想獨自去北京奮斗,抱著不死心的態(tài)度,我再次面試了 字節(jié)跳動(之前提前批簡歷直接被刷),經(jīng)過 四輪技術(shù)+一輪HR 之后,成功留在了杭州研發(fā)中心(我可是抖音的忠實用戶!)

          整個秋招,我的心情從一開始的信心滿滿,到感覺自己進大廠的機會渺茫,最后觸底反彈,想想真是一波三折

          86ffe01f8039e8fc270ff8c2e7565b7e.webp


          成長之路


          大一

          回想起來,當(dāng)初掉入前端這個坑,是因為參加了大一開設(shè)的選修課:《小型網(wǎng)站的建設(shè)與維護》。

          第一節(jié)課,講課老師新建了一個 txt 文本,寫入幾行代碼,然后修改后綴名為 html,一個網(wǎng)頁就被這樣被創(chuàng)建了,還可以自定義樣式,作為小白的我,第一次感覺代碼這么有吸引力,才知道這個叫做 前端開發(fā)碼農(nóng))。

          在老師的鼓勵(慫恿)下,我報名參加了省里的網(wǎng)站競賽,在學(xué)校機房度過了17 年的暑假。

          最開始,我還是用 Adobe Dreamweaver 寫代碼,jQuery 一把梭,管它什么性能、代碼規(guī)范、維護性,都不存在的。看著菜鳥教程,邊做邊學(xué),能硬編碼就硬編碼,找現(xiàn)成的 JQ 插件東拼西湊,我的網(wǎng)站才正式完工,想來都是一把辛酸淚……(當(dāng)時只會寫 JQ 代碼,原生 JS 根本不會寫)


          大二

          第二年,我意外發(fā)現(xiàn)了掘金這個網(wǎng)站,我的前端視野一下子廣闊了許多,發(fā)現(xiàn)很多前所未聞的名詞:閉包,ES6,原型,繼承, 作用域……

          慢慢地,我自學(xué)了 React、Vue、原生 JavaScript、NodeJS

          為了學(xué)習(xí) Git,我建了 GitHub 賬號。

          為了搭建 個人博客,購買了 aliyun 的學(xué)生服務(wù)器和個人域名。一個星期的時間里,我又是配環(huán)境,又是學(xué) Linux 命令,第一次用 vim 簡直不要太爽,當(dāng)我的博客在公網(wǎng)成功打開的那一刻,我感覺人生達(dá)到了巔峰!

          期間,我報名參加了阿里的 D2 會議(雖然當(dāng)時根本聽不懂,湊個熱鬧),那天特別激動來到西溪園區(qū),看到了好多大牛

          9a4f4f3271c600f202e05e5e20b50002.webp3a7c780313c9fb3cbfa89a897f9bff25.webp


          大三

          一月初,我報名參加了螞蟻金服體檢科技大會,會議更多的是從設(shè)計和用戶體驗角度出發(fā),如何改善產(chǎn)品

          見到了 AntD 的創(chuàng)造者:玉伯,御術(shù)等前端大佬

          玉伯在開場就發(fā)表致歉,因為當(dāng)年的圣誕節(jié)彩蛋事件,轟動不小!

          f82873f9a9e18e1bdb9258e2823d9055.webp

          時間來到大三下學(xué)期,我想在當(dāng)?shù)卣覀€實習(xí),于是投遞了人生第一份前端實習(xí)簡歷。面試當(dāng)天,因為緊張,面試官給我遞來的紙水杯,在桌子上被我打翻了?……幸好,當(dāng)天晚上就接到了HR的電話,通過了。

          在這幾個月的實習(xí)期內(nèi)(期間逃了不少課),公司給予了我足夠的發(fā)展空間,給我配了 MacBook 和 24 寸的顯示器。我嘗試 搭建腳手架,構(gòu)建 React 企業(yè)應(yīng)用, 寫 H5 頁面,從零開發(fā)微信小程序 等等。學(xué)習(xí)如何做到版本控制,規(guī)范 Git 提交,一步步實現(xiàn)項目落地,和 UI、產(chǎn)品、測試、后端一同協(xié)作開發(fā)。在協(xié)助我的 mentor 進行面試的時候,偶然看到了我當(dāng)初的面試評級是 A,高興了好一陣子。

          不過,天下無不散之宴席,意識到要秋招的我,辭去了實習(xí)崗位,投入到復(fù)習(xí)階段。然后我就被校招好好上了一課,由于我是非科班,根本不懂什么算法,只會簡單的數(shù)據(jù)結(jié)構(gòu),于是乎在各公司的秋招筆試、面試中,吃盡了苦頭。

          ps:這里推薦幾本書籍和我常用的學(xué)習(xí)網(wǎng)站(需要翻墻):

          • 《圖解 HTTP》

          • 《JavaScript ES6函數(shù)式編程入門經(jīng)典》

          • 《學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)與算法》

          • 《你不知道的JavaScript》系列

          • MDN,淘系前端團隊,凹凸實驗室

          • medium.com/

          • codepen.io/

          • dev.to/

          • developers.google.cn/web/


          面經(jīng)分享

          第一部分是我前端面試的經(jīng)驗總結(jié),第二部分是我認(rèn)為比較有思考空間的題目

          經(jīng)驗總結(jié)

          • 一份漂亮的簡歷,需要包括以下部分(排版由上而下)

            • 個人亮點(專精領(lǐng)域,個人博客,開源項目)

            • 教育經(jīng)歷(畢業(yè)院校,在校經(jīng)歷、榮譽)

            • 工作經(jīng)歷(實習(xí))

            • 項目經(jīng)歷

            • 專業(yè)技能

          • 扎實的前端基礎(chǔ),比如

            • 作用是什么?

            • flex:1 的 1 代表什么?

            • Generator 如何拋出錯誤?

          • 熟悉一門前端框架(React 優(yōu)先)

          • 勤刷 LeetCode 的算法題,熟悉掌握相應(yīng)的數(shù)據(jù)結(jié)構(gòu)如常見的鏈表、棧、隊列、哈希表、樹

          • 熟悉網(wǎng)絡(luò)基礎(chǔ)、Git 命令、Linux 命令

          • 多去了解前端的新趨勢(Flutter,PWA,Serveless,GraphQL)

          • 要有自信,讓面試官感受到你對前端的熱愛


          面試題

          由于面試的公司和次數(shù)略多,老生常談的面試題就不放出來了,也不按公司劃分面試題了


          算法題

          大多出自 LeetCode ,LeetCode HOT 100,最好自己過一遍,理解最優(yōu)解


          編程題

          • 用 Class 實現(xiàn) EventEmitter,要求擁有 on,once,emit,off 方法

          • 實現(xiàn) deepClone,要求能成功克隆帶有循環(huán)引用的對象

          • CSS 實現(xiàn)一個寬度為瀏覽器1/2,寬高比為 2:1 的盒子

          • 實現(xiàn) sum 函數(shù)

          sum(1)(2)(3) == 6; // truesum(1, 2, 3) == 6; // true
          • 實現(xiàn) sum2 函數(shù)

          console.log(sum2(1)(2)(3)()) // 6console.log(sum2(1, 2, 3)()); // 6
          • 用尾遞歸實現(xiàn) fibonacci 數(shù)列

          • 實現(xiàn) co 函數(shù)

          • 實現(xiàn)以下功能,當(dāng)對一個 arr 做 push 操作時,會自動打印一行提示消息

          const arr = [1,2,3];arr.push(4);// arr pushed a new element: 4
          • 代碼實現(xiàn)中斷 Promise 的運行

          • 有一組圖片,實現(xiàn)后一張圖片必須等到上一張圖片加載完畢,才能開始加載

          • 為 Test 類添加方法,打印指定內(nèi)容

          class Test {    constructor() {        this.person = { name: "jack", age: 38, position: "CTO" };    }    // ......}
          const test = new Test();for (const ele of test) { console.log(ele);}// [ 'name', 'jack' ]// [ 'age', 38 ]// [ 'position', 'CTO' ]
          • 實現(xiàn) handler 函數(shù),遇到 b 和 ac 都要去除

          console.log(handler("aabaa")); // 'aaaa'console.log(handler("abaccbc")); // 'c'console.log(handler("aaccc")); // 'c'console.log(handler("aaabccc")); // ''
          • 實現(xiàn) decode 函數(shù)

          decode('HG[3|B[2|CA]]F') === 'HGBCACABCACABCACAF' // true
          • 實現(xiàn) _bind 函數(shù),使打印 success

          function Animal(name, color) {  this.name = name;  this.color = color;}Animal.prototype.say = function() {  return `I'm a ${this.color} ${this.name}`;};const Cat = Animal._bind(null, "cat");const cat = new Cat("white");if (  cat.say() === "I'm a white cat" &&  cat instanceof Cat &&  cat instanceof Animal) {  console.log("success");}
          • CSS 實現(xiàn)圓環(huán)進度條效果

          • 說出以下打印內(nèi)容

          console.log(-1 >>> 32);console.log(-1 << 32);console.log(1 >> 32);console.log(5 >>> 2);
          var a = { n: 1 };var b = a;a.x = a = { n: 2 };console.log(a.x);console.log(b.x);


          簡答題

          • 實現(xiàn) F12 開發(fā)者工具的檢查(inspect)功能

          • 實現(xiàn) 把一個盒子從一個區(qū)域拖放到另一個指定區(qū)域中

            • 盒子一部分在區(qū)域內(nèi),一部分在區(qū)域外,該如何處理

            • 簡述幾個封裝好的關(guān)鍵方法

          • 開發(fā)完的項目,在微信瀏覽器上白屏,該如何排查

          • 如何統(tǒng)計一個頁面上哪些區(qū)域用戶點擊次數(shù)最多

          • 如何根據(jù)按鈕級別的粒度,設(shè)計用戶權(quán)限,例如:A 可以訪問按鈕,B 不可以

          • 如何對一個網(wǎng)頁內(nèi)容進行自動化截屏,如何解決登錄限制


          • A組件包裹B組件,B組件包裹C組件,它們的 componentDidMount 觸發(fā)順序如何

          • React setState 到底是異步還是同步的,其原理是什么

          • React Hooks 的使用有哪些注意事項

          • React 的合成事件機制

          • 簡述 React 類組件的新老生命周期,談?wù)?React Fiber 架構(gòu)的引入

          • 詳細(xì)介紹一下 Redux 狀態(tài)管理,如何和 React 組件連接

          • React HOC 的用途,什么是裝飾器模式

          • Mobx 的實現(xiàn)原理


          • Koa 的中間件原理,介紹一下 compose 函數(shù)

          • 介紹 NodeJS 的 EventLoop 機制,process.nextTick() 的作用

          • NodeJS 是單線程還是多線程,都有哪些線程,JS 為什么是單線程的

          • CommonJS 的實現(xiàn)原理

          • NodeJS 中存在哪些流,怎么理解 pipe() 及其優(yōu)點

          • require 的解析規(guī)則

          • 介紹一下負(fù)載均衡,NodeJS 的 cluster 和 child_process 是什么


          • webpack 是如何進行打包的

          • webpack 動態(tài) import 是如何實現(xiàn)的

          • 如何編寫自己的 loader 和 plugin

          • 簡述 webpack 配置文件中的 externals,UMD 了解嗎


          • 介紹一下 DNS,什么是迭代查詢和遞歸查詢,什么是一級域名、二級域名

          • HTTP 首部(Header)和實體(Body)的分隔符是什么,用正則如何匹配

          • HTTPS 的詳細(xì)過程,什么是數(shù)字證書,消息摘要,非對稱加密,Hash 算法

          • 如何實現(xiàn) Tab(標(biāo)簽)頁之間,客戶端與服務(wù)器的實時通訊

          • HTTP 狀態(tài)碼:301、302、307 的區(qū)別


          • 簡述瀏覽器的垃圾回收機制,什么是強引用、弱引用、循環(huán)引用

          • 簡述 requestAnimationFrame 和 requestIdleCallback 的作用

          • CSS 選擇器的解析順序是從右到左,還是從左到右,為什么

          • click 事件在移動端有什么問題,如何解決,你在移動端還遇到那些坑

          • 簡述 JWT 的生成過程和優(yōu)缺點,怎么主動注銷 JWT 和續(xù)簽 JWT

          • 通過什么檢測網(wǎng)站的性能,有哪些指標(biāo)

          • 如何查看網(wǎng)站的 Ajax 請求是由哪行代碼發(fā)出的,一個元素都綁定了哪些事件,Chrome 調(diào)試面板 F8,F10,F11 各代表什么

          • 說說你對 jpg、gif、jpeg、png、webp、base64 URL 的了解


          結(jié)尾

          天道酬勤,只要你想,大廠offer并不是遙不可及!

          希望我的經(jīng)歷能為你帶來幫助,如果有問題,請在評論區(qū)留言,下篇文章將會分享我的 前端知識點筆記 ?!


          分享前端好文,點亮?在看?d12b139b66df9aa1aec5c7958b5c1567.webp

          瀏覽 53
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美日韩操逼网 | 欧美操逼的 | 久草手机视频在线观看 | 国内精品三级视屏 | 大香蕉在线1 |