從遊戲策劃轉前端:自學半年非科班菜鳥的面經+總結

從遊戲策劃轉前端:自學半年非科班菜鳥的面經+總結

來自專欄筆經面經

作者:你可以回去等通知了

鏈接:nowcoder.com/discuss/83

來源:牛客網

前言

本來不準備發的,可是看著自己寫了半年的面經,不發呢就讓他爛在電腦里,發的話呢,又給各位大佬獻醜,後來覺得還是可惜,那還是發吧。

大學四年,方向都是不固定,身邊大部分人思想放不開,永遠想著專業對口, 又放任自己,我顯得不合群。大一想創業,後來發現家裡沒經商背景沒經驗,0社會經驗創業這是扯淡。大二做了數學建模,開始做得好好的,拿下很多獎,最後隊友居然棄坑,然而後期大家都是已經組好隊,是找不到3個人組成一個隊的了,又放棄了。大三開始做遊戲策劃,做了幾個月又經歷了秋招,結果發現自己真心的並不是喜歡做策劃,最後還是做回了前端,現在美滋滋的。

本文有前端、遊戲策劃的面經,可以選擇性地看,也可以直接跳到後面看雞湯。

正題

自學半年的非科班菜雞,從遊戲策劃轉行前端,一路過來也許有點順利,遇到一些不錯的人,不過也踩了很多坑。非科班的,又要另外補演算法數據結構、計算機網路、操作系統,再刷個牛客網,差不多了。

前端

maka

一面:(30分鐘)

先做一小時題目,然後來了一個很帥的人來面試,討論了題目

1.講一下閉包

2.promise版本的ajax

3.怎麼學前端,一般去哪裡看文章

4.盒子模型

二面(1小時)

1.看見你會canvas,怎麼做的(面向對象、繪製、清除、動畫幀)

2.webpack講講(loader、pugin、entry、output方面)

3.node錯誤處理(demo黨,講得比較僵)

4.瀏覽器從url到頁面的過程

5.很多js,要怎麼載入(按需載入、動態非同步載入,AMD)

6.瀏覽器頁面渲染詳細過程

7.node爬蟲需要注意什麼(操作字元串dom、非同步順序)

hr面:(30分鐘)

1.為什麼你手寫代碼就沒那麼順手了(編碼能力不夠紮實,以後會改)

2.說說你家的情況

3.你是不是大家的驕傲

4.大概什麼時候來上班

5.我擔心你可能覺得一些工作容易而不認真,不能沉下心來

網易:

一面:(電話20分鐘)

1.怎麼學前端

2.jQuery和vue對比

3.webpack的了解,整個流程,插件開發,loader開發

4.性能優化,頁面過度渲染怎麼辦

5.http狀態碼、緩存

二面:(電話30分鐘)

1.vue 整個流程,雙綁,complier,htmlparser,render函數

2.開發的流程,從構建、介面、前後端、數據表、ui還原、中間層角度都問一遍

3.css布局,從兩列到多列到低版本ie過一遍

4.原形鏈、閉包、作用域

5.我們正在做一個遊戲平台,迭代更新,你覺得平時開發需要做點什麼和注意什麼細節

hr:(電話20分鐘)

1.為什麼選擇我們

2.對網易有什麼看法

3.有玩過什麼遊戲

4.你覺得亂斗西遊怎樣,你當初為什麼棄坑,你帶領的幫派為什麼平民玩家都能占排行榜前面

5.加班的問題

多益

(視頻20分鐘)

1.最自豪的項目?遇到的難點?做了多久(新手的時候,慕課網的加強版個人demo搬出來了,vue1變換到2踩的坑,求穩就說了這個,說做了一個月)難道這點就自豪?(其實我3天做完畢設,但是在熟悉的情況下做出來的我不自豪)

2.最自豪的事情?(公司一天速成ng並能夠按時或者提前完成任務)

3.前端工程化以及介紹(webpack、gulp、grunt。對了給你介紹一個好東西,dva)

4.webpack和gulp區別(模塊化與流的區別)

5.dom是什麼,你的理解?(...)

6.關於dom的api有什麼(...)

7.css預處理器有什麼,擅長哪個?(less)

8.說一下less(嵌套、組合、組合爆炸、運算、變數、混合)

9.post和get區別(...)

10.我看見你寫了一個js庫,說一下有什麼?(封裝了es6一些方法原生實現、一些設計模式、常規操作)

11.看過什麼書?(紅書、犀牛、css權威、css世界)

12.有沒有一頁一頁看?(重複看的只有紅書)

多益的比較看重經歷,技術問題都簡單。而且只有一個視頻面就定結果。這一天實在是曲折的經歷。首先收到了cvte的面試通知,預約下午6點。今天下午坐車過去的時候,突然一個hr打電話來說,預約4點面試,我就奇怪了,我說我昨天預約6點,然後叫我加面試官qq視頻面。我說我就在坐車去你公司,你想我現場面還是視頻面,去和他們說清楚,好像對方和我也牛頭不搭馬嘴的。後來說視頻面試,叫我加面試官qq,一加發現,多益面試官!然而我已經下車準備跑回宿舍!

cvte原先約6點,多益的通知就是突然來的hr簡訊叫我4點面試(沒有註明公司,看見簡訊的時候我以為是cvte),接著發生了這一幕,雙方懵逼,直到加qq我才知道一切

cvte

(50分鐘)

1.怎麼學習前端->其中說了社區互相交流->那你有沒有參與社區網站的開發和開源項目(沒有,我只是在MDN貢獻了一點)

2.公司的後端是node中間層,再發到java嗎?(直接node的egg框架)那你有搞過這個項目的後端嗎?(開一個介面給我自己測試)

3.怎麼cors跨域跨域cors的cookie設置,安全性,接下一題(那個地址設置成我們自己那個,Allow-creadentialstrue,)

4.公司的後台對cookie的處理、xss、csrf(我只是說了過濾、反轉義、httponly)

5.cookie在多個頁面的通信,有效和過期的區別( 單機黨這就開始悲劇,反正只說了setcookie和getcookie方法,expire、登錄攔截)

6.nginx反代熟悉嗎(用過)

7.vuex數據流的理解(把流程圖背一遍,然後用原生vue+storage和vuex做比較)

8.vue雙向綁定原理(observer,watcher,complier,MV->(文檔片段節點劫持)->VM(defineproperty的set和get)->MV(觀察者模式,第二階段導致變化,發布信息publish))

9.promise實現(先try運行一次excute,出錯reject,然後then方法給this添加成功和失敗的回調,並再返回另一個promise,其他api全是基於then)

10.你擅長什麼方面,為什麼不去搞演算法(因為前端有webrtc、然後到webar,需要很強數學基礎,新技術又有pwa、webassembly、css houdini,node又讓前端涵蓋面更加廣)

11.手撕assign的深拷貝(太急不審題、遞歸拷貝得太深,事後我和他都吐槽)mac電腦的鍵有點不一樣,出醜了一分鐘。男面試官:其實這個題目挺有意思,每個人都有不同的方法,而且處理不同的數據類型,以及不同的遞歸深度控制(早知道我看看的深拷了,我覺得最完美的深拷是lodash源碼但是只是mark沒有看)從此以後,誰和我講深拷,我就寫一個兼顧n種類型、原形鏈和環引用的完整版給他

其實,他們是要我手撕jQuery的extend,還是我自己太急不審題,快要做完的時候發現,人家給的參數是:

類似這樣子deepClone({a:1},{b:2,c:{d:hello cvte}}),就是要我實現es6的assign和jQuery的extend嘛,我居然,然後又被引出了數據類型的問題

cvte比較看重的是node中間層、http那塊,react技術棧。我擅長的設計模式、手撕源碼都沒有具體問到,而且是我自己引開的話題,又被他帶回來http這塊,然後我答的比較普通,然後他給我科普,難受。多益這波,我中途跑回去是有點衝動了,其實白跑了,在車上也可以視頻面試,然後cvte又遲到又氣喘吁吁地排隊,剛剛好是最後一個,心都沒有定下來。

珍愛網

(30分鐘)

1.CSS怎麼實現倒三角形、怎麼實現(border,大家都懂的)

2.學了多少計算機相關的課本(我們專業只講c語言、計算機網路兩三章書)

3.資料庫除了你所說的CURD, 你還了解多少(mongodb關聯查詢),要是存放用戶地址信息怎麼存(對象形式,獲取經緯度)

4.VUE雙綁(這個比較熟悉),如果我們有三個v-model綁同一個變數,想其中一個不綁怎麼辦(v-once)

5.dom載入過程(背書),對於你的首頁直出、SSR,首頁性能測試,怎麼測試時間(分情況討論new Date的時機,再求差,回去才發現too young。performance那裡還有很多學問的)

6.事件冒泡(背書)

7.b樹、b+樹、紅黑樹(不會)

8.微信開發了解嗎(了解不多,類似vue,一般用內網穿透調試)

9.你項目的難點(實現websocket+iframe+localstorage組成的實時聊天系統,可以不同源實現websocket,順便吐槽了一下網上一堆shell版本的聊天室)

10.如何統計全國單身女性(開放題)

當然是掛的,樹沒有答出來、資料庫也不太熟悉

唯品會:

一面:

1.看github,問快排

2.如果我第一次不交換會怎樣

3.如果是奇數次不交換會怎樣,複雜度呢,穩定不

4.為什麼是nlogn

5.鏈表相交點

6.多線程、死鎖、競爭、安全(說webworker,他說不講這個,叫我從操作系統底層講)

操作系統不熟,他後來說他是安卓的,不懂我們這些,所以我想寫代碼他叫我不用寫,想說webworker也不給我繼續說。

看見隔壁桌的聊前端聊得飛起,我是不服的,沒辦法,剛剛好這問題對於非科班的我沒辦法,實力不夠運氣也不夠

凡科

先做一份題,也是那些this、閉包、作用域,有坑容易掛,所以很多人說凡科是商業宣傳,其實進筆試題的坑了。那個題大概是綁定3個事件,用了dom0到dom2,還有用了call、中間嵌套了n層函數

一面:(30分鐘)

是一個同事,先討論做的筆試題一大陣。

1.visibility:hidden、opacity:0;display:none區別(佔位、綁定事件、會不會渲染、會不會繪製,這個自己試吧)

2.canvas寫字怎麼寫(touchstart開始,touchmove計算這次和上次滑鼠坐標差繪製,touchend防止跳線設置null)

3.數組去重幾種方法、性能(set、indexof、字典)對象查找是最快的,當然是用一個對象緩存,還有一個操作加分了:Obeject.create(null),這樣子for in就好很多

4.扯到了我對深拷貝的研究,常見的對象類型和環引用,100多行代碼,(裝逼成功)

5.web裡面嵌入自己的字體(font文件),這個不了解,不過他們部門是干這個的(路過的有知道的可以講講)

二面:(2小時)

是部門的boss,人特別好、大塊頭、絡腮鬍子

1.event loop(同步有宏任務、nexttick、微任務,非同步有6個階段)

2.瀏覽器渲染、載入(常規操作,然後列舉async、defer帶來的結果)

3.性能優化、pwa(service worker)

4.說說houdini(我自己講的,裝逼成功)

5.canvas畫圖(面向對象、清理畫布、繪製、碰撞檢測)

6.防抖節流、懶載入、預載入(基本操作,都要了解)

7.談人生、談待遇

回去後馬上看見github多了一個星星,掘金也被人關注了。雖然一直都比較冷清。

墨子谷

一面 :(電話 30分鐘)

1.現在在哪裡?大學學了什麼和編程相關的?什麼科目對你影響最大?(學校教過兩三章c語言,所以學js也快了)

2.數據結構有哪些?紅黑樹、鏈表?為什麼用他們,他們有什麼用(舉了一個查找的例子)

3.js和c的對比(表示c了解不多,列舉了強類型和弱類型的區別)那js快還是c快(當然是c,js底層也是c)

4.es6的新特性,let和var的區別(let解耦聲明和初始化階段,塊級作用域)

5.看見你的頁面載入 1.8秒,是快還是慢,怎麼看性能(看見人家的網站是這個速度,我覺得這個算是及格線了。peformance)

6.那首屏載入怎麼快呢(ssr、利用緩存)

7.cookie、localstorage、sessionstorage區別(大家都知道的)

8.get和post區別(數據包、傳輸大小、安全性、副作用、傳輸方式不同)

9.visibility:hidden、opacity:0;display:none區別(佔位、綁定事件、會不會渲染、會不會繪製,這個自己試吧)

10.嚴格模式(不能變數提升,不能重複聲明)那我這樣子不就是不爽了嗎?(項目大了,這樣子很有問題,導致項目的命名存在問題。另外說到

了垃圾回收,全局變數寫得多,越不能垃圾回收,尤其是node上,長期不關機,內存就爆)

老闆是騰訊前400人之一,裡面很多前騰訊的人,實力很強,應該接下來會招人,公司準備搬到騰訊那邊

騰訊CDC:

一面:(電話 50分鐘)

1.js基本數據類型

2.閉包、內存泄漏、垃圾回收演算法(閉包概念,用於柯里化、緩存、模塊化,導致內存泄漏。垃圾回收有新生代的scavenge和老生代的標記清除)

3.js的原形鏈、繼承,es6的class(本來舉例子的,他說不用講那麼多,叫我簡單講怎麼繼承)

4.移動端了解嗎(不)移動端有一個xxx(馬上打斷,我知道,點透問題),點透怎麼解決(zepto的tap,用一個div去擋)。

5.瀏覽器緩存一套(強制緩存、協商緩存、應用緩存)。url到頁面的過程。js、css阻塞頁面那些問題,非同步載入js(async、defer、動態創建)

6.跨域,同一個一級域名不同二級域名低成本跨域(jsonp、iframe橋接)

7.兩個網站的js低成本跨域(iframe)

8.完全的跨域,加上後台的(node轉發、jsonp、cors)

9.用vue是吧,說一下虛擬dom

10.說一下vuex(複雜關係的組件,統一的狀態管理),再說一下單向數據流(類比react的state),那我子父組件通信呢(事件匯流排)

11.css布局(除了flex、grid還有嗎,我說常用就這兩個)那麼不兼容呢(用回position、float那些,順便說一下bfc、ifc)

12.你是怎麼學習的,你對你自己的評估怎樣,職業規劃,為什麼不滿足你的公司

13.xss、csrf,防禦措施

14.說一下pwa(server worker,離線或網速慢的情況下正常運行,依靠本地緩存)

15.評價三大框架(針對ng1的di思想、vue的徹底雙綁以及學習成本低、react的數據流,虛擬dom)

16.為什麼虛擬dom就快了呢(轉化為js數據結構,最小化dom操作,最後render插入)

體驗很好,會提前打電話叫我準備一下。移動端比較菜,tap怎麼實現沒有看,css也比較菜,問題是答上來了但不夠好

二面: (電話 40分鐘)

1.事件模型,事件委託

2.閉包、內存泄漏、瀏覽器查內存泄漏的方法

3.document.fragement,重繪、重排

4.如果有操作需要頻繁重繪,css重繪優化(GPU加速、節流)

5.面向對象、ES6實現面向對象、promise

6.vue原理

7.跨域(特地把iframe隨便帶過:還有iframe那套),那iframe父子窗口怎麼通信(剛剛好這幾天博客寫這個)

8.nginx相關、webpack、gulp,有自己寫過嗎

9.vue ssr,vue如何做多頁面應用,知道webpack能配這個嗎

10.pwa

11.用node幹了什麼,mvc+模板引擎,多頁面應用

12.項目遇到的難點

13.動畫處理,怎麼優化,動畫卡了怎麼辦

14.xss、防禦措施

騰訊課堂:

一面:(幾小時)

陪著他們一起下班,挺好的氛圍,第一次感覺到上班像玩遊戲一樣,時間一下就到晚上11點。

還是常規,筆試再面試,不同的是接著就是漫長的電腦操作。

筆試:寫一個函數,給dom加遮罩層、文章裡面出現頻率最高的、正則匹配屬於qq.com的、插入1000個li、手寫觀察者模式、大數相加

看起來都簡單,不過你要是無腦做是必死的,追求極致解和考慮所有的情況以及效率,眼高手低的人在這裡是死定的

面試:

1.繼承、類,對類的靜態、私有、共有什麼看法

2.事件模型、重繪重排

3.http2相關

4.說剛剛做的題,文章最高頻率單詞那道題,考慮多個結果的優化

5.為什麼requestAnimationFrame在插入li那道題是一種優化

6.跨域、哈希值你的應用場景、刷新了怎麼辦

7.大數相加,考慮到9999那種情況,當場寫得代碼比較冗餘

電腦操作:

1.兩個盒子,一個盒子能拖動,拖到另一個盒子裡面就變色。這裡考到事件委託了。不能用drag事件

2.防抖節流、深拷貝

一不小心11點多,面試我的那個人打車,接著坐了一個順風車,留下了微信

二面:(視頻2小時)

1.聊人生

2.項目的難題,現在重複寫一遍(border-radius用canvas實現,而且縮放不能是橢圓,其中一個角還要有陰影。用到微積分)

3.三列布局,想表現自己,挑了聖杯布局來寫,而且沒寫好

4.大數相加,因為上次沒寫好,這次寫了一個厲害很多的版本

5.實現一個像百度那樣子的搜索框

6.webpack自己寫過插件嗎?沒。計算機網路了解不,協商緩存、強制緩存

7.時針和分針在5點15分和7點45分的夾角

每一題都是10分鐘,我想表現自己聖杯沒寫好,對方說怎麼好像你布局不熟啊,在這裡亂來試,你面試也不少了,怎麼能這樣子試的。最後時針分針的,我第一次答對了沒聽清楚他念了幾句什麼話,以為自己錯了。第二次,他問我變個時間有那麼難?我說感覺有坑,你剛剛說我錯。「我沒說你錯啊」

又說到布局,問我有flex,有很多方法,怎麼用那麼老的。我想表現一下我的實力,我css好菜。「還是取決於的價值取向,這就是你所謂的成就感?也不菜啊,還可以的,沒說你菜」

總監面:(視頻 1小時)

1.聊人生

2.寫快排。10分鐘,完美版本,無錯誤。

「看看哪裡錯了?為什麼要用草稿本,難道自己寫的代碼不能看出錯誤來?」

「還有什麼可以優化的嗎?」

「執行效率上還有問題嗎?」

經過中間n多改進與糾纏。。。留下qq繼續戰。

又戰了兩三天,最後結果,左中右3管齊下的快排+中間基準值,測試5000個數4000個重複的情況,結果比數組sort方法還要快。兼顧到數組元素的特性以及長度。我那邊還要繼續準備畢設。

快手:

一面:(視頻 1小時)

1.了解前後端交互嗎(restful的api)那怎麼傳數據(跨域、不跨域情況)跨域怎麼跨(cors、jsonp)

2.那jsonp原理呢,返回數據格式呢,手寫

3.了解js的自定義事件嗎。(有一個api的,我忘記了,然後定義了能用eventlistener監聽,類似於發布訂閱者模式)

4.那寫一個發布訂閱者模式(成功把他引入我熟悉的坑)

5.非計算機的,那計算機了解嗎,tcp3次握手,如何將一個數轉16進位,16進位的數是什麼樣的

6.看來你還是有了解的,那再問你堆和棧(常量池存基本類型、棧存變數和指針、堆存複雜類型)那我平時改一個引用類型,另一個也變了怎麼辦(問到這裡他還沒說完,突然竊喜,果斷把我的深拷貝的各種類型研究說一遍以及環引用解決講出來,他介紹我研究一下lodash、immulable源碼,我說immulable才是最完美的,不完全深拷貝。然後對方說我對這方面研究很深)

7.瀏覽器緩存

8.寫個函數判斷是不是迴文序列

9.看見你博客,挺有個人獨特見解的,你怎麼學前端的

二面:(視頻1小時)

剛剛吃完飯,hr打電話叫我面試,還以為是另一個公司,我們雙方不明不白地尷尬了一陣(突然想起了多益和CVTE那次尷尬)。我說發鏈接給我郵箱就行。hr:還是那個鏈接,現在馬上面試,面試官在等你了,於是匆匆忙忙打開電腦繼續

1.給一個節點樹,ul裡面可能有ul和li,但li就不會有東西了,判斷數的高度(我用的是bfs,不過出了一點問題,面試官叫我用遞歸試一下。遞歸解法類似劍指offer的二叉樹深度,只是for in 循環整個ul取最大值)

2.用vue是吧,說一下響應式數據原理(balabla)

3.用過slot嗎(類似於模態框,可能有警告、提示、成功不同類型,我們只需要做個內容分發避免了寫多個組件)

4.cookie、localstorage、sessionstorage區別(大家都知道的)

5.es6的新特性,let和var的區別(let解耦聲明和初始化階段,塊級作用域)

6.那好,我const obj = {a: 1};obj.a = 2;這樣子會不會報錯(基礎問題)

7.發散題,怎麼判斷一個數是不是2的n次方。我寫了輾轉相除、遞歸、toString2。然後他說,我能做到O(1)。我說那就是字典了,他說我不用字典的。

n&n-1===0

體驗史上最好,沒有之一。簡直就是當你是同事、朋友一樣,拿著攝像頭說,看,這裡是我的辦公室,這裡是xxx,這裡是xx,你上北京的話,我們可以一起挑戰一下新技術。我說怎麼沒人呢,他說現在是中午,大家在趴桌子,現在要繼續上班了。我這裡呢有tob和toc的,toc的pc端對性能要求高一點。那麼要兼容ie6嗎。不用,沒什麼用戶了(此處手動滑稽)

8.有什麼公司offer

hr面:(20分鐘)

面完倆面睡會覺,突然hr小姐姐又打電話過來了,說等下hr面,叫我準備一下。後來,是招聘的總監,不是小姐姐

1.通過前面倆輪,技術還是過關的,能來到我這裡的人不多,說一下你的體驗(史上最好,沒有之一)

2.你為什麼選擇我們(社會的熱點、boss是大牛)

3.你實習過吧,講一下之前的經歷

4.拋開你的公司和快手,你認為什麼樣的才是好的工作

5.說一下大學經歷。我看見你有數學建模拿獎,說一下(再敘陳年舊事)

6.對於北快手、南抖音怎麼看(從用戶群體、用戶管理、用戶喜好分析)

7.周圍的人說快手xx,或者抖音xx,快手不如抖音你怎麼辦(辯證思維,不存在絕對)

8.前面面試官給你說過要幹什麼嗎(b端、c端的廣告投放)

看,後面是我們的書架,剛剛找了很久,終於找到一個地方了,這裡是留給未來的新人放書籍資料的。

不得不說,面試體驗真好

總監面:40分鐘

1.52張牌去掉大小王,分成26*2兩堆,從其中一堆取4張牌為4個a的概率

2.3個人分100個金幣,第一個人先提出方案,超過半數不同意要死,如果沒問題繼續下一個人重複步驟,怎麼使得第一個人拿到最多

無心插柳柳成蔭的面試,我不準備去北京的,本來想隨便玩玩的,然後隨便丟了舊的簡歷過去,接著是超棒的面試體驗,突然覺得有點對不起他們

intal360

一面:(電話2小時)

1.怎麼學前端,學多久

2.react生命周期,單向數據流

3.vue源碼,雙向綁定,render、component、mount原理和優先順序

4.webpack的spa,為什麼選擇spa,前端路由原理

5.多頁面,glob模塊,多頁面+單頁面

6.父子組件、子孫組件、兄弟組件、無關係組件傳值

7.跨域,jsonp原理,內存泄漏,隱形循環引用

8.虛擬dom,domdiff

9.開發環境,docker容器

10.electron相關

11.pwa,service worker,webworker

12.產品迭代更新相關

13.css垂直居中

14.BFC相關

15.node中間層,轉發,負載均衡,nginx

16.變數提升的原理

17.es6新特性,用過哪些,原理是什麼

18.三大框架的對比

二面:

去公司見老大,對我上次面試特別滿意,所以直接談公司和福利了

hr:

1.什麼時候入職

2.有沒有女朋友

3.準備在深圳發展嗎,為什麼選擇我們,你對技術棧的要求

4.你高中的數學成績是不是非常好(沒錯,一般140)

5.那你物理也很好(沒錯,一般差不多滿分)

6.你偏科很嚴重(當然)

pundi-pundi

hr面:(20分鐘)

1.你為什麼選擇我們

2.你對技術的追求,你認為什麼才是你滿意的技術棧

3.你身邊的人是怎樣的,怎麼評價你的

4.你怎麼學習前端

技術面:(50分鐘)

1.你的vue商城項目具體結構,邏輯

2.所用到vue全家桶的技術,具體舉幾個例子

3.那vue-router怎麼實現的

4.為什麼需要vuex,他是做什麼的

5.登錄為什麼選擇session+cookie而不是token

6.pm2、log4js項目用過嗎(沒有,但是demo玩過),那你覺得他們的作用是什麼

7.產品迭代更新注意點、如何設置埋點

8.講一下懶載入和預載入

9.性能優化,http2,負載均衡

10.什麼時候過來,見一下我們老闆,再談一下

遊戲策劃

太長遠,很多小問題想不起來了。

詩悅:

一面:

1.玩過什麼遊戲,RPG類的一般是什麼套路

2.MMO類玩過嗎(少),夢幻西遊的世界觀構建

3.魔獸地圖金庸叢林肉搏移植到pc端游,怎麼做

4.如果一個遊戲是封閉式經濟,某個區域通貨膨怎麼辦

5.如果遊戲出了bug當晚很多人刷了神裝,我們怎麼回檔才能讓大部分玩家滿意

6.西方神話相關的場景,一個與牧師相對的職業技能屬性文案背景設計

建議回去把夢幻、劍與家園認真玩一遍,把經典的MMO全都玩一遍,不要說SLG不喜歡就不玩,現在你可以來實習但是正式工我們給不了你

37互娛:

一面:

1.一個裝備從掉落到背包的流程(結合了開發的思想回答,狀態、介面)

2.十八般武藝,裝備分類

3.如果一個區,大vip工會統治全區,怎麼辦

4.遊戲加班嚴重,怎麼看

二面:

1.知道abc三件裝備爆率,求收集完一套的次數的數學期望(馬克洛夫狀態轉移矩陣)

2.兩軍戰鬥,戰鬥力m和n,戰鬥是直接碰撞的演算法,求贏的一方的剩餘人數(蘭徹斯特作戰模型)

3.一道推理題,就是誰喜歡吃什麼打什麼球和誰有什麼關係那種,總的有7個人,推理出每一個人相關信息

星輝:

一面:

1.看見你帶了一份數值分析,那你講一下

2.騎馬與砍殺裡面怎麼拓展,可玩性如何增加,它的mod和魔獸的自定義地圖的區別與聯繫

3.寫一段文案,場景是未來的主角如何殺一個人,要求用上那堆關鍵詞

4.一個概率論的題,忘記了,需要用微積分+不等式證明

交叉面:

1.遊戲有很多是失敗的喔,你為什麼要做

2.遊戲加班嚴重的,你怎麼看

3.SLG類,如果要結合ARPG的元素該怎麼結合

4.我們有四個職業,戰士法師刺客騎士(特點你懂得),設計一個練級區使得每一個職業的專業練級區效率和花銷差不多

5.如何壓著人民幣土豪玩家,而且讓他不棄坑

6.設計一個轉盤,使得價值合理(加權平均值)

騰訊:

群面:

問題是。設計一個意念遊戲,確定類型,如何設置以及他的可玩性,技術難題是什麼。

全組掛,明明在外面吹了半小時牛,自我介紹還要一萬年,一個說改造王者榮耀,兩個說沙盒(我也支持沙盒的,因為最強大腦裡面有一個拼字的比賽項目),一個說GTA,一個說vr說得自嗨了,一個打醬油的搶總結,兩個搶timer。不能說隊友坑,我hold不住隊友也是我實力不夠,真正的策劃肯定能輕鬆解決這些溝通問題,還是認命吧

4399:

一面:

1.你怎麼做到利用植物大戰殭屍2(手機版)的bug刷裝備的,我還充了幾百塊

2.你覺得植物大戰殭屍需要增加的模塊,哪個模塊做得不好

3.你用什麼編程,為什麼不用Python

4.你覺得守望先鋒活躍玩家少的原因,如果要增加英雄你應該怎麼設計

5.你說要增加裝備系統,那怎麼設計,如何和技術人員溝通(會編程的策劃還是有用的)

6.遊戲上線後發現bug,而此時是高峰期,怎麼做才能使得玩家不生氣並且修復bug

我覺得你還是會的,策劃基礎好,但是你沒有奧數、國際比賽那些證明,你的數學能力我們還是不能認可(強行好人卡)。一個數學建模的獎,重於建模而我們暫時不太需要建模的。不過既然你會前端,可以考慮一下我們的前端崗。

對於遊戲策劃,建議好好刷遊資網、GAD,好好看每一篇文章。數學上要會一點微積分、概率論,面對抽獎題就要想到加權平均值的角度,面對爆率就要想到排列組合和概率論,設計題就看個人了。記得增加遊戲的廣度而不是深度,很多人以為自己玩遊戲多了就能做策劃,其實只是一個墮落到玩遊戲成癮的,而且僅僅只是某個遊戲,lol、王者、吃雞?問王者哪個數值不平衡、怎麼改、後期要黑箱測試怎麼做,問世界觀構建、遊戲是n派還是l派、爆率題、技能設計題就懵了。也許能說出技能效果,但數值怎麼設計才能合理,為什麼要這樣子設計,和哪個英雄衝突?又怎麼講?

就算自己不會做遊戲不會寫代碼或者沒有會寫代碼的大腿抱,也記得常寫一下遊戲demo,寫成ppt也好,寫成文檔也好,用unity大概潦草做出都行。策劃就是遊戲中的產品經理,產品該做什麼,策劃也差不多做什麼,只是策劃針對的是遊戲這個領域。但是,會一點編程,是大大增加競爭力的

最後,秋招的時候還是轉前端了,閉關鎖國,好好寫代碼,美滋滋。我還是不喜歡做策劃,因為你的方案不一定被採納,而且遊戲產品失敗的比較多,並且總是反推其他遊戲(其實就是「借鑒」),很少公司想認真的研發真正的自己家的遊戲,沒想過做那種4A大作。我喜歡自創,所以js我做demo的時候全是用原生寫的,自己造輪子自己寫。只有做公司項目才用框架。

雞湯

還有好幾個不足150人的小公司前端offer,海投太多名字都忘了很多,中間很多公司面試當天忘記寫面經就永遠的遺漏了。這些算是當做一次鍛煉自己的機會,交流技術查漏補缺。當然不是隨便放個屁就跑了,無論怎麼選擇,都要拿著最好的態度去面對而不是看不起別人,無論你多厲害,也不會厲害到碾壓整個公司。有的公司看我博客就直接開工資了,所以說想找好的前端,有發展前景的,當然是有難度的面試。面試什麼難度和問題角度,發展前景如何,代表著工資多高、你能學到什麼,這些自己心裡也有一點x數的。別說那些什麼前端要求賊高,現在前端要求什麼都會真煩,前端飽和這種話,自己有多少實力,自己清楚,該拿多少,該去哪裡。

別說什麼虛報工作幾年、面試怎麼忽悠這些問題,至少,說得出這些話題的人,自己可能技術一般般或者比較菜,或者中了培訓班的毒。現在前端圈一個是因為門檻低但學精難,造成沒編程基礎的人大量湧入,注重插件、用輪子、寫頁面,認為這就是前端。然後各種培訓班講的東西比較low,萬年靜態頁面特效,jQuery+bootstrap,好一點的有過一遍vue文檔做小項目,最後教怎麼忽悠面試官,說什麼包就業。可怕的是學生覺得666還滿腔熱情。大公司面試一層層流程,寫兩句代碼,啥都看出來,忽悠誰啊。唬住50k,唬不住5k?不存在的。拉鉤上面的3年以下,應屆生大膽去投,很多公司其實都可以的,有實力完全不用計較什麼工作經驗,反而不怎麼厲害的天天想各種歪路子抱一個僥倖心理。當然也別認不清自己去投5年經驗以上的高級工程師或者架構師或者技術主管,大家都是學生,少扯些虛幻的。

見過50人以下、150人以下、300人以下、500人以下、2000人以上的各種規模的公司,無論哪裡都會有特別厲害的人,所以別以為自己能高高在上,其實無論你多厲害也不會碾壓全公司(畢業生要是能的話,那公司就可以說是...)。我和很多前端一樣,開始是html、css、js,但是我下一步並不是jQuery+bootstrap,而是直接看jQuery源碼(表示現在還不熟悉jQuery但是我用起來肯定沒問題)。很多人沉浸在自己寫的網頁裡面,認為這就是成功,再加上一個vue、react、webpack(有種學一下angular),認為自己已經擁有全世界,膨脹無比。就像一個阿里的面試官說的,你們前端一大堆學個vue就來面試。人家你原理,問webpack怎麼寫插件,叫現場寫一道劍指offer的題,現場給你一個場景題寫代碼實現,然後很多人就掛了,回家吐槽:現在前端要求真tm高,啥都要會!去bat裡面拿個貴賓卡呆個半天一天、或者和大佬相處一段時間,估計很多膨脹的人都會學乖了,都能好好沉下心來學了。

我初學也是看視頻,騰訊課堂積分還換了幾百塊錢,然後進了很多前端群,後來發現視頻和群已經滿足不了我,於是自己開始搗鼓ECMA規範、看那幾本大書、框架源碼、原生寫es6的新api、原生造各種仿造版輪子、看英文文檔,發現只要基礎學好,沒有什麼是做不出來的,看個文檔一次就搞定,出錯自己也能很快解決(一般就是版本坑、默認值沒給上、手殘)。另外,堅持寫博客,學到的東西就馬上輸出,不過發布出來的博客比較少,個人有一點完美主義,覺得不滿意或者不全面就不發。面試的時候,項目經驗除了公司項目其他基本都是demo級別的,我直接承認實踐經驗不足。但是面試官看見我一手原生js,有時候還是對我眉開眼笑的,覺得還不錯,問一下源碼又答出來(雖然我現場擼不出來一段框架源碼)。css也比較菜,寫得少,只會原理,知道瀏覽器渲染的一個流程,然後用起來還是不能寫出一個很漂亮完美健壯的ui組件。面試的時候,雖然css菜,不過問到原理好像都能答出來。

所以說,前端總是處於鄙視鏈底層,就是讓一堆以為門檻低不注重原理的人搞的,有事了就問插件、問框架,那邊又天天喊加班,工資低,後端坑,ui要求高,pm瞎提需求。那怎麼我從來沒見過?

後端坑,那去溝通一下,看看是誰的鍋。是自己的趕緊處理,是他的你就爭贏他。要是你天天用插件做特效寫html,可能完全沒有反抗能力(如果人家壞一點,從頭到尾都欺負你菜、忽悠你,完全是沒問題),別怪世態炎涼,只能說自己技不如人甘拜下風(dota2玩家路過)。

加班?那你加的是什麼班,是做重複的工作還是研究新技術?重複寫繁瑣的樣式、調插件的特效、寫一萬年的繁重業務邏輯,那就是加班,然後又沒有抽出時間學其他東西,早就了工作幾年一年經驗的人大批出現。真的,做事不要死腦筋,人類的進步就是靠懶惰的智慧,有了電器、有了交通工具、有了電子設備……等等。既然公司寫的業務繁重,那就自己準備一些輪子,或者寫一些可復用的代碼,寫一套模板甚至寫一個插件,完全沒事。我呆過的公司,人家都可以在固定的地方讓你擴展、造輪子的,也有的可以給源碼擴展新的api,這些都不是問題。悶聲寫代碼,天天做重複的事情,也不問一下老同事有沒有什麼欄位可以利用,有沒有什麼方法可以擴展。這些都不能滿足?這些都不能滿足的公司,那就洗洗睡吧。

ui要求高?我只能說我css菜,但是我總是可以改回來,雖然可能有點吃力,但是回頭看看自己第一次寫的css,自己都看不下去吧,別說ui,先把自己打贏了再說,打贏了自己,ui基本就會喊666了。做後台系統的,b端的,內部系統的,用ui框架的,也許從來不用擔心。hh,想做後台系統。唉,還是c端挑戰性大一點。

pm瞎提需求?一個合格的pm,不會無理取鬧的,而且你只要用技術來說服他,他就服。最後取決於你們誰說服誰,誰贏了聽誰。但是你得有理有據而不是做一個無腦噴,從技術上的難度和成本綜合考慮。一個公司的pm瞎搞,無理取鬧,不存在的。真的是的話,那繼續洗洗睡吧。

工作的時候熱烈討論,活躍的氛圍,下班吃飯一起玩王者一起吃雞,哪裡有那麼多怨氣?還有,為什麼有的人總遇到那種該回去洗洗睡的公司?自己心裡也有點x數吧。找工作總會有一些循環:沒經驗-》找不到-》沒經驗,菜-》公司垃圾-》菜,上次業務沒完成-》加班-》這次業務沒完成。沒經驗?不存在的,我就是沒經驗的,學了幾個月的野生前端,學了兩個月找到了實習。隨便寫個項目,寫出深度,有挑戰性的地方,比如用原生寫、寫一個牛逼的功能(ai)、寫個騷一點的操作,加上一些正規的東西(構建工具、開發環境、寫個後端、買個阿里雲部署、再來個測試、i18n、最後補一個整齊的readme)。

學這玩意,還是看個人的價值取向,有的人糾結css甚至花精力去背,遇到問題又搞不定;有的人學了原理,查一下文檔什麼都可以做,有問題也可以解決,查多了文檔也自然能背。有的人一輩子在框架api表面划水,一到解決不了的時候就上網找插件;有的人就能自己封裝組件寫插件,公司提薪次次都有他。有的人一段簡短的代碼很快完成任務,然後被技術老大說性能差到爆無擴展性;有的人就先慢慢想好怎麼寫,然後寫了一大堆代碼,語義化一目了然而且能擴展,性能和兼容性完美。

真正的程序員,不應該拿苦逼這個詞來形容你的工作,你的加班不是加班而是學習,你能夠按時完成任務,然後在空餘時間學東西,寫個博客,美滋滋的生活,這種生活絕對不能用苦逼這個詞,也不能叫他「加班」,而是學習。有了這個關鍵的學習時間,到時候就有提薪的資本。

可能有的人要噴了。不過我說的是事實,都是赤裸裸的經歷以及一些網友的經歷,我自己也是個渣渣,沒什麼實踐經驗,只是分享一下我所見所聞。看牛客的都是好孩子,你們都有自己的理想,而且都為自己的工作做準備,未雨綢繆,都是很棒的。別問什麼前端好不好?前端難不難?四個字:干就完了!

與作者交流:nowcoder.com/discuss/83

更多筆經面經:nowcoder.com/discuss?


推薦閱讀:

前端日刊-2018.02.14
狼叔:Node.js 源碼是如何執行的?| Live 預告
跨域
帶你走進webpack世界,成為webpack頭號玩家。
Vant 1.0 發布:輕量、可靠的移動端 Vue 組件庫

TAG:遊戲策劃 | 前端開發 | 面試經歷 |