|
|
IT名企面试经验汇总# B% y( T$ y6 `, i# e# a \; @. y
) y* e* o' R) F1 k( y+ ]( K+ k" E
, X5 p* v- ^7 x& v# r
一:09.21 – 有道三面 – 余总9 M& U, O7 j+ G
1 ~4 \- Q9 ?7 |3 c
0 O! Z3 Y# @1 j |# Zinfrastructure/基础架构组。三面算是终面,说一周内给结果。; ~4 h6 D% n. d" |8 S( U
: ?; |$ d c9 j) E; o聊简历,问做过的最感兴趣的项目、问实习、问"你认为自己有什么缺点”,然后做题:1 o+ h( X3 r$ \7 @+ Z' e3 i0 H3 q
* n; {% L1 h9 F8 ?: {
Coding n; {7 z1 X) f! u. m
给一个字典,并且这个字典是用一个字符串保存的。里面是很多很多个单词,单词之间用\0分割,且这些单词按照字典序排列。写出查找算法,要求能够较快地查找一个单词是否在字典中。 v$ Z9 c4 f9 L
例如包含四个单词的字典看起来如下:1 Q6 Q2 {3 M+ x) `( @
dict[]=a\0am\0b\0\bt\0% R; Q2 O3 z: ~( t$ M2 C$ I6 Y
包含了a、am、b、bt四个单词。: A' u/ J$ P( \* w: [1 n
const char* dict = ...;8 C# F7 f [8 k/ r6 ^
int dict_len = LEN;
* s# n% r2 ~, U7 o% K k xbool find(const char* dict, int dict_len);
, W4 j. o& J/ s, f! O7 K) V2 B2 Q$ J9 }, G" e
tips: 不准建索引,不准建查找树。3 A9 ^5 B& E6 a8 r$ m( ]7 Q- P3 h
/ j, W# q6 O% T* N6 A4 Y! j2 V
Design
1 j% ]- e3 K5 L, Z0 E0 q1 o* ]* e设计出一种磁盘管理方法,要求写性能特别好,读性能一般。
2 t( I' S) e h, G; Dtips: 1.磁盘寻道时间很慢 2. 磁盘读写连续块的速度很快
/ U7 g; i- V# i
}: m' t& U( v5 ^( E) Z* w
1 V( z7 z* a5 y- H+ A9 s9 y二:08.12 – 百度1,2,3面 - 歌后
, J. y/ L; Q9 W$ J5 T
7 C/ j. h$ b" X7 x$ E0 v; V8 W' _8 Y$ x. k* S9 E
. D* @; P P4 [
应广大找工作同学的要求,经过了百度一面二面和我认为半个三面的我也写一下我的处女面面经。这部分面经具有非普适性,应为走的是内推流程,现在也不是招聘高峰,可能面试相对不是很刁难。% g( Z1 k0 z6 t# B* ]
总的来说一面和二面问的内容都差不多,围绕项目谈一些项目相关的技术问题,技术问题注重实用性。由于我报的系统部网络组是做内核协议栈优化的,针对我的项目经历,主要就问了内核的一些应用问题,很基础也不太刁难,不会的我就直接说不会或者不确定。下面晒晒题目:
+ ]& o* L! C% M4 }5 C; P! H* `4 q# C4 C% [/ O' a4 @
内核相关的
, G; o |' H2 B& M& S# [1 i++是不是原子操作?c语言中什么样的语句是原子的?
$ S1 L) O1 Y# G+ E& u& M& T2 内核的分配函数有哪些,有什么区别?
0 g2 D% C- P/ A9 W6 X1 w3 vmalloc分配大小有上限吗?
8 Y- s) |6 Z: j# j- P; z6 L& ]4 原子变量一般在什么场景用?原子变量的使用位数有限制吗?8 A4 R1 _/ z) n" e+ L/ M% S7 e5 T
5 spin_lock和mutex有什么区别?
+ ^. |/ J4 ^1 B: i6 v5 ~% ]0 R! p6 在软中断中用什么锁?需要注意什么?7 H3 R- q0 S. ]& a4 W
7 如何实现大量数据从内核态导出到用户态?
1 d3 l4 U: a; R0 B, p8 D ?6 }/ ?) F- ?0 o) I
c相关的
: i0 T) n) a) ]7 {1下面这个函数有没有问题,输出是什么?
1 @6 i3 g2 d! Q* K1 bint main(int argc,char **argv){
- L: Q9 A% m' U int x[3]={1,3,5};
& U0 d- n J! c s$ b printf("%d %d\n",*x,*x++);7 }0 K9 ~9 D n* O& u4 e7 g7 a
}
2 \+ T* j4 M* {+ d& D& ^3 h9 a2 计算ab两个整数中bit位不同的个数。有没有0(1)的算法?
8 R9 @$ ]/ z. u# J" p$ v6 F
0 g$ K% m1 U& g- F( A3 ^项目相关的, p5 ?$ B! u0 ^- O5 V& S
面试的过程主要是讲自己的项目经历,在讲的过程中对方会针对他们的需要,或者他感兴趣的点进行提问。比如向他介绍他感兴趣的模块,你需要用比较直观和简洁的方法让别人懂你做的东西。另外注意,别人可能会问项目之外的东西,比如这个系统用的设备是什么样的等等。所以在准备项目的时候,深度扩展的同时,也别忘记广度,在宏观上的一些把握可能会为你的面试加分。+ W j: O( b9 P C0 G1 ?5 C
总的来说,这两面的面试官态度都非常谦和,能够从他们身上感受到百度平等自由的工作氛围。最后的半个面试我不知道算不算三面,二面结束后他们就来了一个他们的老大,貌似是系统部的老大过来,没有问技术问题,就问职业规划,能不能实习之类的问题。说起职业规划还有一个小插曲,这个问题我之前跟QQ讨论过,我们的答案是先做技术再转管理,技术做3到5年,说3年一下别人会以为你不踏实,说5年别人会觉得你笨。所以我当时就说了个3年。没想到那个技术经理说我对自己的要求太宽松了,3年时间太长了。然后他就谈到百度现在极度扩张,需要大量管理人才,给我举例面试我的那些人的例子,总之意思就是百度的发展空间很大。。。总之,吸取教训,以后不跟人说做技术做几年了。。。
. V- L3 I) K) `8 i2 x" ?# B* L) r7 k1 t6 }" G5 k
( H5 M' r. g" t- _% a# [
三:09.28 – 腾讯面试 – 周总+ u# Q! [4 n, v6 n% w& J0 [
; I" C) y: b1 z2 b/ \* X* q1 u3 \7 f/ W
1、一面
3 d; V7 i6 `3 g! Q/ C给我打电话的人,感觉很厚道。9 n+ E- C7 t% S) W+ u/ D7 M# g
主要是聊经历,问问题比较少。
! Z" ^- R1 r: W9 ^% r* |+ S1.1 100个字符串,如何查找他们的公共字符串
; l3 c+ p4 S9 r9 x1.2 在地图搜索中,如何设计求任意两个公交站的最好换乘路线& W1 K# V* |# B: o! i: e
, }, D4 _+ Z7 Z( r- S# e
2、二面
. C- a: S5 {' A% d自动化所毕业的,算是校友6 Q! [ J# Y- G% V; L9 e3 {
主要问设计:如搜索者打错了字,该怎么处理。2 M+ W0 _9 O6 E4 C, @, _% g( d! t
如何设计差异化的搜索结果。
( M+ m7 L$ [6 Z# a# t: m现场写一个计算器的程序,就是已知表达式求值。
! Q# F8 N8 E5 o' i. L
: w+ L3 Y8 b4 s0 P" N8 p他们都会问些简历的经历。
3 ~6 z% E1 b, `9 _- W! S w
: u6 Z0 J; b" }3 F1 d
k( ?9 N: M5 s四:10.18 – Intel面试 – 耗子. d, z1 b- d9 c+ q' F6 u7 {1 k* B' z
- w6 j- }5 k) f/ h$ _7 ^; _, {
* j* U4 b9 A4 z9 I. \一面! A* B9 A5 S+ {& _
VFS层结构。面向过程和面向对象的区别。static关键字。进程的地址空间。面向对象的特性,继承封装多态,问了下覆盖。template method设计模式。IoC,依赖注入。
2 [6 k" o) |# K. w. Fmalloc和free实现,野指针。
m9 K% a: z* z' f/ F4 x1 a! D怎样快速找到单向链表的中间结点。
$ L; D, Y* `6 l6 @5 P( s- q4 t- C! M3 y$ O
* H6 ^$ T0 D+ U) k: p. |& L% Q
二面
( o# |# r- P* F' r6 v9 S- M0 q2 Z2 c项目系统架构,x86,IA64体系结构的特点,arm和x86对比的优势劣势,交叉编译。在kernel开发中的debug方式。
' w: u3 C$ q2 s) `7 \! _ J- E0 z- f; g+ C
三面
$ u( ]: |6 P8 v5 y/ a" R询问开源相关工作,git,讨论了下kernel开发中的内存分配。
+ B7 }4 `/ T: C
- ~: B# l, \; A1 T7 Y' Q' i& R: ^1 L( [. L8 K
四面
* U% O' Z% Z. `% E- Y聊了下benchmark和Linux IO系统,聊了下移动计算的发展前景,问我假如给offer去不去上海,来不来实习,还考虑不考虑别的公司。聊了下他们UMG在Intel中的整个地位。最后英语面试,描述自己最近的项目以及自己在其中的职责,遇到什么问题,怎样去解决,以及对自己的评价。2 S( j9 {6 A! Q( w3 H; }8 S
) y! t4 A' k, Y- j
以上文章出自阿凡提求职手册——IT行业篇。免费下载更多的行业/企业求职手册,请您关注:6 x1 ~* W- O* s
http://www.aftjob.com/personal.php
$ p( v+ g: Q7 @. p5 W/ J3 h. M |
|