記一次「失利後」通過半年準備經過阿里社招的經歷與感悟

寫在最前

本次分享一下在做者上一次「失利」即拿到畢業證次日忽然「收到」阿里社招面試通知失敗以後,經過分析本身的定位與實際狀況,作出的將來一到兩年的規劃。以及本次社招的面試經歷(但這部分不是重點,每一個人的面試經歷都是不同的。千人千面嘛)css

PS:固然了計劃趕不上變化,半年後一次內推的機會「稀裏糊塗」得就經過了。。html

歡迎關注個人博客,不按期更新中——前端

基於我的定位與實際狀況的發展方向

上一次面試掛了後,我便對本身的狀況進行了總結:vue

  • 17屆普通211,非cs科班。數據結構與算法、計算機基礎等方面相對薄弱。
  • 在面試掛掉的時間點是17年6月,實習半年,還沒有畢業,缺乏硬性工做經驗條件。
  • 公司內部尚無主力產品,工做基本爲零散項目,缺乏業務驅動的可深挖性。例若有主力產品爲react,那麼你能夠藉着業務深刻了解其源碼與原理等一切以react棧爲出發點的知識與實踐經驗
  • 前端基本功技術棧:css相對弱(由於我真的懶得寫樣式),對js的基礎知識興趣濃厚,同時嚮往服務端,嘗試基於node搭建服務。

於此同時我我的認爲經過面試的最重要關鍵點:必定要有一個亮點打動你的面試官!html5

什麼是亮點?

亮點就是在某個層面的深刻研究成果:)java

PS: 只是針對剛工做的夥伴,高p請放過我node

我的理解亮點能夠是兩方面:react

  1. 在公司的項目中中,源於業務並高於業務的沉澱。正如同以前我總結我的狀況中提到。若是你的簡歷裏面主要介紹了react的項目。那麼這其中會存在兩個互補的研究即項目與react(同理還有vue與項目等等,爲啥不是單獨的react、vue;由於這只是個框架,結合框架解決實際問題纔是最重要的,框架真的太多了,但業務都是類似的):

    (1)業務的難點,如何解決,更好的思路?針對業務的優化?等等業務層面的深挖。git

    (2)針對react你都瞭解多少?若是你對其瞭解只停留在api的階段,那應該是涼涼了。。源碼?設計思想?至少給知道diff怎麼回事,setState究竟是同步的仍是異步的,以及爲何要這麼處理?等等不少。github

    核心思路就是經過你的業務與對技術相結合的深度挖掘來打動你的面試官

  2. 第二點我是針對本身作的,由於結合我以前的分析能夠發現我其實不具有1的條件,即沒有主力業務。在你的業務量極小的時候,你是沒有業務驅動的需求去讓你挖掘那些背後的優化與更好的解決方案的。也許你會說那你也能夠讀react源碼啊。可是,我讀了源碼不能反哺到業務中又有什麼用呢?不知道如何解決實際的問題,仍然沒有作到1的要求即項目與某框架的技術的結合沉澱。故針對我我的狀況我選擇了以下方式:

    (1)因爲本身其實沒有別人那麼忙,我就強制本身每週週末堅持沉澱本身,併產出技術文章,不管是哪一個方面的(由於我真的作不到1中的事情,我只好多學習多產出)。經過撰寫博客引發更多人的關注,同時也能夠讓面試官側面瞭解我,畢竟一次面試能決定的東西太少了

    (2)在這個過程當中我找到適合本身的路,選擇一個較脫離主要業務(react之類的)的技術方向來進行必定程度的研究(我選的是canvas與node)。核心思路仍是你要本身有本身的沉澱並以此試圖打動面試官(逃

這是我半年來關於canvas與node的一些學習與記錄:

半年來技術沉澱的成果與自我感受的「亮點」

  • 半年中總結了34篇包括但不限於css、js、node、canvas等技術博客託管在github中,得到了400個star,同時發佈了bezierMaker.js——N階貝塞爾曲線生成器
  • 在博客有必定曝光度的積累中,陸續收到了一些面試邀請,基本上是阿里的;可是我知道我菜。。就沒去,可能有的是羣發,不過都提到了個人博客可能仍是編輯了一下的吧:)
  • 讀了node源碼並提了第一個pr,但因爲「口齒不清」的英語,和node項目維護者敘說好久無果就不了了之了,也算一次實踐吧
  • 我的最得意的一個小做品即自我感受的「亮點」canvas進階——實現靜態圖像的變形併合成動態效果,在以後的面試中的項目經驗中主要介紹了這個。與此同時這篇文章中收到w3cplus大漠老師的邀請,但願將canvas系列文章發佈在其網站中

突如其來的面試

2017.12月末,師哥忽然跟我說如今部門有機會要不要試試,我原本是想拒絕的,由於距離上次被拒只差了半年,加上我如今工做經驗滿打滿算也就一年,其中還有半年實習。。好的一面就來了:),因爲這篇文章不是純粹的面經也不是純粹的技術文章,同時不少面試題都是有答案的,故你們有興趣自行百度下面面試題,做者不過多說明。

一面

一面其實就是個人師哥。。因此嚴格來講就是一次交流,沒有技術上的問題;由於個人朋友圈其實已經發了不少我本身的玩具代碼了估計師哥內心也是有數的:)

主要介紹了目前團隊所作的業務、相關的理念等等。更多的就是互相瞭解狀況,我大概說了一下我這邊作的事基本也就結束了。

二面

二面是師哥的老大,也是將來我若是入職的上司。其實這纔算是一面。他更多的是來對我瞭解一些基礎狀況與一些技術思想(他自己是java)聊得很快也就20分鐘:

  • 自我介紹
  • react、vue原理,這個雖然源碼沒看過可是二者的區別還有基本的思想仍是能說幾句的
  • react怎麼優化?關於優化其實react的diff算法是怎麼計算的你瞭解清楚了就知道什麼操做會讓diff算的慢也就知道怎麼優化了:)
  • 爲何選擇阿里?由於是阿里
  • 好像沒問什麼告終束的很快,同時告訴我下次是前端組leader來面試

三面

面試官好像和豆瓣有些淵源,上來就問我你是否是克軍團隊的,我說我不是。。

  • 自我介紹
  • 先從簡歷的項目瞭解一遍,時長大約20分鐘,其實不少就是好久前作的都忘記了就是大概說說。。
  • react的思想是什麼?數據驅動balabala,舉了一個以前封裝輪播圖的例子
  • 對redux怎麼看?這個強力推薦這篇文章,拯救了我這個問題從時間旅行的烏托邦,看狀態管理的設計誤區,這位文章的做者雖然喜歡懟人可是技術仍是很強的
  • 碰到問題你是如何解決的?百度、谷歌、別人的文章;可是!我其實並不相信別人的文章,不少東西的底層應該是規範而不是別人的總結,好比我總結的從HTML5與PromiseA+規範來看事件循環,在代碼的世界裏,其實不須要太多別人的理解,規範就是規範,真的想知道爲何,就去看看底層的定義。這可比你讀了誰誰的文章來的靠譜,畢竟人都會犯錯?
  • 0.1 + 0.2 ? 我脫口而出不等於0.3,而後面試官好像有點吃驚,「你是在網上看到這個題?」,「我其實很喜歡這種js的邊邊角角」,本身總結過一些好比類型轉換之類的:)
  • 函數與構造函數的區別?我以爲沒啥區別,區別都是new調用作的,改了this的指向而已
  • 那麼延伸一下,數值怎麼存儲?64位浮點型;「小數怎麼存儲?」嗯其實關於小數二進制存儲有點懵,就沒說上來。。
  • 關於css,說一下並列佈局的方式;核心思路是怎麼讓block不自適應平鋪爲整行。觸發bfc就能夠了;好比絕對佈局,float,inline-block等等
  • 有沒有一些有意思的項目?終於等來了能夠介紹個人「亮點」做品了,關於做品是啥往上找。。主要就是將靜態圖經過繪製自定義貝塞爾曲線變爲扭曲效果同時生成過程動畫。對這個項目的原理我和麪試官討論了給有20分鐘,看得出來他對這個項目很感興趣或者說這麼作的思路也是平時少見的。
  • 你在同事眼裏是個怎樣的人?怎麼感受像是hr在跟我說話。。我以爲還算nice吧嘻嘻
  • 你如今在北京,打算來杭州麼?去!必須去!不去確定掛了。。

筆試

穿插了一個筆試,就一道題:寫一個js的通用事件綁定函數

交叉面

交叉面充分說明了,沒有主力業務的可怕=。=,由於你不能光寫你的做品吧?你總給寫公司的業務,可是這個業務吧你又沒有需求把它優化到別人的標準,或者說根本沒有優化:)

  • 一開始介紹了本身的項目也就是上面說起的。面試官接下來一句我就涼了,在webgl中也能夠實現? 好的我沒用過webgl。「哦沒用過,好的」
  • 移動端作過什麼優化麼?我心想我這邊的業務,都是活動頁作啥優化。。可是我仍是說了我看到別人的優化方案,例如直出、域名收斂
  • 「域名收斂?爲何要收斂?」「由於dns解析慢啊?」「那和pc端有什麼區別,pc端域名不是發散來提升併發數麼?」 我內心一想是啊,其實瀏覽器pc和m沒啥區別那爲啥一個發散一個收斂,或者說發散咱們都知道克服pc瀏覽器的併發限制。那m端?我當時有點迷沒說上來就過了,回來又百度了一下感受上其實就是m端網速慢dns太耗時。。我沒反應過來還有網速的事情
  • js與native怎麼交互?心裏獨白:我*,我真沒作過。。「嗯雖然我沒作過,可是我瞭解過應該是native定義一套協議,js使用該協議發請求,native攔截解析並返回js的所需balabala」
  • 緩存策略都有哪些,包括native;我??我沒作過native啊。。緩存策略對瀏覽器的我研究過一些基本就是基於我這篇文章來講的基於node的微小服務——細說緩存與304
  • 看你的簡歷裏寫了rn項目,對rn有作過優化麼,全量麼?有沒有本身改過內核?這就是我以前說的我所面臨的業務問題,我這個rn項目撐死了是兩我的寫的,很快就結束了不維護了都,哪裏來的優化。。哎因此身在一個好項目中很關鍵;「嗯沒作過優化,只是使用層面(微笑臉」
  • 除了react對什麼框架熟悉?「畢設用的vue,僅限使用」
  • vue與react有什麼區別?「於我來講最直觀的是寫法的區別,jsx與模板;同時debug中也存在差別。再有就是框架實現思想上的區別了,數據綁定與diff」
  • 看你寫的截圖插件,碰到動態圖怎麼辦?「當時使用的是html2canvas,其中確實會存在動態圖截取失敗的問題,嗯確實沒有好的解決方案」
  • 看你的博客,對canvas使用的不少,有過一些沉澱麼好比引擎?我*,引擎??「沒有沒有,不過我封裝過一個貝塞爾曲線生成器」
  • m端與pc在html5的新特性上有哪些是不同的?有作過什麼麼?表示我真的忘了有不少新接口,好比電池陀螺儀之類的;一時間想成了pwa的特性。。「我用過新的音頻api接口,雖然pc與m都有,可是這個作了一些效果,實現了讀取從設備收取的外界聲音,轉化爲可視化波形」
  • 參與過開源項目麼?給node提pr被拒了很慚愧,可是也有收穫
  • 本身以爲積累最多的沉澱是什麼?多是對js語言自己上的一些探索吧

終面&hr

來到了北京的一個工做點,準備視頻面,我以後才反應過來我其實已經被hr面過了。。由於跟在老闆身邊是個男的。。

  • 自我介紹
  • 項目介紹,主要介紹了canvas。
  • hr:爲何畢業半年就準備換工做?由於再待在溫馨區我就廢了
  • hr:當時實習半年你就已經瞭解了狀況爲何不考慮當時就走?由於三方。。
  • hr:單身來杭州?有女票,不過是浙江人
  • 沒什麼問題了,你有問題麼?沒
  • 很快就結束了也就20分鐘不到吧

小計

至此完成了對本身這邊年來的準備的一個回顧與面試經驗的分享。面經不是重點每一個人都是不同的,更重要的應該是如何在當前的工做中找到本身應該努力的方向,而且持續地發光發熱,讓別人承認你,打動他們。

PS:目前是待發offer狀態,以後若是hc沒有問題,背調沒有問題,體檢沒有問題,我就能夠奔赴2000千米外的杭州了。固然告終果很重要,但過程更使人回味更多。

PPS: 這一切都是我的感悟,說的不對的,不嚴謹的,歡迎一塊兒分享你的想法,在碼夢的路上,一去不歸。

PPPS:因爲只畢業半年,我估計多是p5(可是社招p5基本無hc),p6就太賺了,不過這都是後話,靜候佳音

最後

慣例po做者的博客,不定時更新中——

有問題歡迎在issues下交流。

相關文章
相關標籤/搜索