BAT 前端工程師面試對演算法一般有怎樣的要求?


實習時面了BAT三家,可以說對演算法基本沒要求。當然,也有可能是對實習生的要求比較低。

1. 騰訊面試:一面問了兩三個演算法,二叉樹,字元串排序等相關,非常簡單,演算法課東西基本都忘光了還能答得出來的那種,外加HTTP協議跟前端性能優化相關內容。二面是介紹自己做過項目中前端部分的優化,包括雅虎前端優化法則的應用,jQuery,JavaScript如何寫比較高效,針對不同瀏覽器,平台的性能優化等。

2. 百度面試:一面問了一些前端的基礎知識,如CSS中的position, display屬性,頁面排版相關,兼容性處理,以及AMD,CMD規範什麼的。二面問jQuery的事件代理實現,瀏覽器跨域方法,用JS實現Array的indexOf方法,還有一些雜七雜八的記不清了。三面跟騰訊二面一樣,主要問項目的東西,外加了一些團隊合作,學習方法的問題。

3. 阿里面試:一面面試官現場帶電腦直接聯網看作品,GitHub,博客什麼的,然後從中挑一些東西來問,後面又順帶考了Tab組件的實現和JS的類繼承實現等內容。二面也是看了作品,GitHub,博客什麼的,跟一面不同的是還看了我pixiv帳號上的東東並稱讚畫得不錯啥的:)

已經過去半年多快一年了,某些地方可能記得不太對,但大體上應該沒錯...

PS: 實際工作中前端的演算法用的並不多,就算是jQuery,Backbone這些常用庫的實現中在我看來也基本沒有演算法的應用。至於什麼時候能用上,偶爾用NodeJs寫點自動化的工具也還是需要的,前端中WebGL的矩陣運算,圖像處理等需要用到,但我認為這些已經是超出一般前端工程師的能力範疇了。


我要說面前端部分, 從不考任何演算法問題會不會被鄙視?

(順帶可能會問下sort函數的使用方法,這個應該不能叫演算法吧)

這主要看面試官的個人喜好吧, 純看應聘者運氣.

前端的核心本質畢竟是界面實現, 相比演算法我更愛問下對VIS的理解, 這樣.


分部門。百度 LBS 面試的時候,二面就是什麼鏈表啊、什麼利用 wifi 或流量如何快速定位你的位置啊之類的。


「請問Array#sort」用的什麼排序?


能用任意編程語言手寫quicksort即可獲月薪10k+

—— by 計算機之子程序媛之父,前知乎著名組合溫趙輪核心成員,現已單飛加入千萬聚樂部之 @winter


親身經歷過,在這說說我的體會!

校招:校招的時候深刻的感受到了鵝廠對演算法的要求,去的時候信心滿滿,但是面完之後傷痕纍纍,自認為前端還是不錯了,但是一開始就什麼排序,什麼查找,mysql,php都有涉獵,尼瑪心中在想,這是在面前端嗎?結果顯而易見,赤裸裸的掛了。走出面試場地心中十萬隻那什麼一直在崩騰。B廠的話直接了當,考察你對前端的深入了解,考察的深度也是隨著你的水平加深而加劇,不過這種感覺很爽,不會顯得那麼無知!A廠沒有趕上校招,所以不能給確切的回答!

社招:社招前端的面試沒有像校招那麼蛋疼和麻煩,又是宣講、又是筆試、偶爾還可能給你來個交叉面試,直截了當,大部分社招面試中就看你對前端的了解和掌握到什麼水平,初級,中級,高級乃至資深。當然這個只是面試中的大部分,A,B兩廠在我面試的過程中對演算法的考察沒有像鵝廠那麼多,一般也都能搞定,不是很難,重要的還是要有基礎,演算法也是考驗智商的一種方法,如果基本的東西都搞不定,那我覺得做程序也不會有太大出路!當然可能也是得看什麼樣的部門,不同部門對演算法的要求也不同,另外這三家都很重視對計算機網路的理解和實踐!

水平怎樣不重要,還是得有點準備的,機會往往都是留給有準備的人。謙虛,低調也是很重要的程序素養,不管你是大牛還是菜鳥,都不要忘了做程序的初心,也不要在取得一點成績之後就得以忘形,我想這不僅僅是面試官所惡的,每個人應該都會有這種感覺。最後祝好!


不久前面面過微信的Web前端, 大致是這樣的特點:

1. 有三論面試, 每一個都是技術面, 並且每個人之間獨立的, 平級的.

2. 每一輪面試都需要做筆試, 筆試的題目, 少的為2個, 多的可能是10個, 筆試時間從半小時到一小時不等, 看具體題目數量

3. 每個筆試都是演算法+計算題, 沒有涉及前端相關的知識點考查

4. 演算法題基本是給一個數據結構(比如鏈表, 樹, 二叉樹), 然後去完成某一些操作(比如查找, 計算, 合併等), 也有一些演算法是帶智力性質的, 這個就看面試官的選題了

總體感受是, 如果你不經常使用一些經典演算法, 比如快排之類的, 畢竟有些東西不用就容易忘記, 但只要有過一定的演算法基礎, 懂一些基本的演算法思想, 比如使用二分查找, 分治之類的, 大部分題目還是可以完成的.

P.S. 由於有做題, 然後再加面試, 三輪下來, 至少要5個小時以上.


作為曾經三進三出T的男淫來陳述下面試前端遇到的演算法題,某次二面是一個小領導,給的是兩道演算法題。

第一道題:找出最久未被使用的記錄,不需要遍歷。

第二道題:連連看找路徑,給出N次拐彎(折角次數&<=N)的一般演算法。

對於我們這種只會這排序那排序的菜鳥,簡直就是喪心病狂。尤其是第二題,這是要招前端工程師么!


看面試官個人喜好吧

面過T和A廠,不會要你手寫演算法

最多就是講個實現原理 比如如何實現快排(等手寫完都第二天了)

其實前端問的問題基本大同小異,無非就是Http協議,Css的一些亂七八糟的問題,然後就是原生Js

其中Js最為關鍵, 推薦樓主在原生Js上多花功夫 然後對自己做過的項目用到的技術做到很熟悉 並且能夠對目前流行的前端技術保持一定的關注度 那麼面試基本不會有太大問題的

加油~


面試矽谷一家牛B startup 前端, 竟然考matrix 。。。


面試百度的時候沒面過演算法???

但是起碼的冒泡排序什麼的也得能寫吧,記得有一次是問了如何實現一個連連看遊戲。這種開放性問題其實只要最快給出解法就可以,反正工作中也不怎麼能用得上???


推薦閱讀:

可以通過什麼途徑了解前端研發的最新資訊?
2017前端開發的行業狀況是怎樣的?對於自學web前端的人從業有何建議?
MAC版本的Sublime Text有哪些常用的快捷鍵?
30歲左右未育的測試女想轉行風景園林或者前端是不是比登天還難?
Sublime text2如何設置快捷鍵讓編寫的HTML文件在瀏覽器預覽?

TAG:前端開發 | 面試 | 前端工程師 | BAT百度、阿里巴巴、騰訊 |