十月中旬我的面试基本结束了,这个月就整理一下思路吧。我面的公司不多但大多到了终面,加起来也有二三十场面试了。也有不少感悟,把它们写一篇面经出来,对新人或能有些帮助,那就攒 RP 了。
至今已到手百度前端 Special 、腾讯前端 Special 、网易游戏研发、阿里前端(网传白菜价)、还有一些小公司,如知乎等等。
有些笔试是要求保密的,在此不便多说。主要写面试经历。在经历这二十多轮的面试后,我更加深信了面试成功与否不仅在于实力,还有运气、缘分、还有气场。暂且按照面试过程的相似度来分小节记述吧!
我在腾讯和阿里的面试都偏重项目,没有深入地探讨技术细节。和面试官讨论的问题也多有重合。所以把他们一起来记录。
很早阿里就开始面试了,这是 BAT 中我面试最早的一家。一共 3 面,首面技术,二面工程,三面是总监。一个多月后拿到传言中的 10k Offer ,已被我拒绝。腾讯的工作环境相当赞,是我在面试中见过最好的。一共 5 面,首面技术,二、三、四、五什么都问。。。 Special Offer 。
一面上来基本是做几个 JS , CSS 题目,然后开始各种问 CSS 。想必这是前端工程师标准的一面流程。涉及的问题就更加普遍了:
写一个两栏的布局,左边自适应。
老老实实写就好了,float
、absolute
、table
都可以实现,可以问问面试官有什么要求。再谈一谈利弊即可。
什么是 JS 闭包?然后来一道题,基本都是网上能查到的。
还有就是稍微问一点偏门的,比如阿里一面让我用 CSS 写一个转圈的球。正好带了我的 Macbook ,分分钟写了一个出来,面试官表示非常满意。
二面一直在谈项目,碰到很多经典的问题:你做过的最有挑战的项目讲一讲?最有成就感的事情呢?你有什么缺点?为什么想来我们这里?隐约能感受到文化相符度( culture fit )的考察。
问到项目我就谈我自己的项目Onboard和天码营。比如天码营前后台分离的架构, Node 服务器和 HTTP/Websocket 代理, Onboard 单页 App , CSS 、 JS 的模块化( JS loader , AMD&CMD , LESS/SASS )实践……有一个 Git 的问题被问到很多次:git pull
和git fetch
有什么区别?这个问题你可以请教Ricky,是他告诉我的。
我感觉知乎、百度等面试过程更注重编码能力和技术细节的考察,在这里统一记述。知乎 5 轮面试,很早就给正式 Offer 了。百度 3 轮面试, Special Offer 。
CSS 问题:
box-sizing
是什么东西? CSS 盒模型有两种:border-box
和content-box
,计算宽度的方式不同。float
和absolute
布局有啥区别?两者都会脱离文档流,但前者仍会占据位置,后者会覆盖文档流中的其他元素。table
一起问,它默认并非流式布局)我简历里有 AngularJS ,所以有一些 AngularJS 的问题。
知乎也是重度 AngularJS 用户。
知乎问我 AngularJS 有让你不爽的地方吗?看来 AngularJS 让知乎很不爽,此前我们做的Onboard已经实现了完整的 Angular 单页 App 。其实只要合理地控制复杂度、加上优雅的设计、以及代码风格控制,完全可以很爽。
除了前端,我还面试了很多 C++工程师,包括华为、网易游戏、还有一些小的游戏公司。
小公司当然都给 Offer 了,然后我不好意思地拒绝他们( PS :确实刚开始面试不知自己几斤几两骗了好多小 Offer )。
网易游戏是最赞的,面试半天时间,两天后直接签发正式 Offer 。技术终面的面试官直接签发 offer , HR 只负责组织流程和维护秩序。
这些公司考察的都是 C++和后台相关的题目了,在网上都可以查到大把的答案:
感觉面试不同于笔试,正确与否真的不重要。首先一点要保持放松,不要慌。不过当你已经被要求做过几十次自我介绍之后,想必你也不会再慌了(我都想吐了)。其次要保持主动,不要因为不会做就卡在那里,说说你想到了什么或者你做过什么类似的,这样能够引导面试官来问你擅长的东西。
比如我被问到如何实现视差滚动时,也懒得写 CSS 了,直接拿装 B 游戏的背景山脉来说事。然后就开始扯这个小游戏了……
另外前端工程师个人博客 /网站是很重要的。虽然并不是必须的要求,但你在整个面试过程中让面试官无聊的时候看看你的作品还是蛮好的。
实习重要么?重要!实习至少可以保底一家公司,如果你不需要保底的话当然可以不实习。身边很多同学已经印证了这一点。其实我没有实习过,是因为我有更重要的事要做。之前两个月面试准备整理的知识,也记录在我的博客里,
最后插入一点小广告,这是我做的一个希望帮助程序员知识分享的网站: http://tianmaying.com ,可以在这里直接和我交流。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.