EDN首页   博客首页

2

关于投票
数字电路笔试题库
数字电路
1、同步电路和异步电路的区别是什么?(仕兰微电子)
2、什么是同步逻辑和异步逻辑?(汉王笔试)
同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。
電路設計可分類為同步電路和非同步電路設計。同步電路利用時鐘脈衝使其子系統同步運作,而非同步電路不使用時鐘脈衝做同步,其子系統是使用特殊的“開始”和“完成”信號使之同步。由於非同步電路具有下列優點--無時鐘歪斜問題、低電源消耗、平均效能而非最差效能、模組性、可組合和可複用性--因此近年來對非同步電路研究增加快速,論文發表數以倍增,而Intel Pentium 4處理器設計,也開始採用非同步電路設計。
异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO或RAM的读写控制信号脉冲,其逻辑输出与任何时钟信号都没有关系,译码输出产生的毛刺通常是可以监控的。同步电路是由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,其所有操作都是在严格的时钟控制下完成的。这些时序电路共享同一个时钟CLK,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。
3、什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?(汉王笔试)
线与逻辑是两个输出信号相连可以实现与的功能。在硬件上,要用oc门来实现(漏极或者集电极开路),由于不用oc门可能使灌电流过大,而烧坏逻辑门,同时在输出端口应加一个上拉电阻。(线或则是下拉电阻)
4、什么是Setup 和Holdup时间?(汉王笔试)
5、setup和holdup时间,区别.(南山之桥)
6、解释setup time和hold time的定义和在时钟信号延迟时的变化。(未知)
7、解释setup和hold time violation,画图说明,并说明解决办法。(威盛VIA
2003.11.06 上海笔试试题)
Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time.如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。如果hold time不够,数据同样不能被打入触发器。
建立时间(Setup Time)和保持时间(Hold time)。建立时间是指在时钟边沿前,数据信号需要保持不变的时间。保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。如果不满足建立和保持时间的话,那么DFF将不能正确地采样到数据,将会出现
metastability的情况。如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。
8、说说对数字逻辑中的竞争和冒险的理解,并举例说明竞争和冒险怎样消除。(仕兰微
电子)
9、什么是竞争与冒险现象?怎样判断?如何消除?(汉王笔试)
在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。
10、你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?(汉王笔试)
常用逻辑电平:12V,5V,3.3V;TTL和CMOS不可以直接互连,由于TTL是在0.3-3.6V之
间,而CMOS则是有在12V的有在5V的。CMOS输出接到TTL是可以直接互连。TTL接到CMOS需
要在输出端口加一上拉电阻接到5V或者12V。
cmos的高低电平分别为:Vih>=0.7VDD,Vil<=0.3VDD;Voh>=0.9VDD,Vol<=0.1VDD.
ttl的为:Vih>=2.0v,Vil<=0.8v;Voh>=2.4v,Vol<=0.4v.
用cmos可直接驱动ttl;加上拉后,ttl可驱动cmos.
11、如何解决亚稳态。(飞利浦-大唐笔试)
亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。
解决方法:
1 降低系统时钟
2 用反应更快的FF
3 引入同步机制,防止亚稳态传播
4 改善时钟质量,用边沿变化快速的时钟信号
关键是器件使用比较好的工艺和时钟周期的裕量要大。
12、IC设计中同步复位与异步复位的区别。(南山之桥)
同步复位在时钟沿采复位信号,完成复位动作。异步复位不管时钟,只要复位信号满足条件,就完成复位动作。 异步复位对复位信号要求比较高,不能有毛刺,如果其与时钟关系不确定,也可能出现亚稳态。
13、MOORE 与 MEELEY状态机的特征。(南山之桥)
Moo re 状态机的输出仅与当前状态值有关, 且只在时钟边沿到来时才会有状态变化. Mealy 状态机的输出不仅与当前状态值有关, 而且与当前输入值有关, 这

14、多时域设计中,如何处理信号跨时域。(南山之桥)
不同的时钟域之间信号通信时需要进行同步处理,这样可以防止新时钟域中第一级触发器的亚稳态信号对下级逻辑造成影响,其中对于单个控制信号可以用两级同步器,如电平、边沿检测和脉冲,对多位信号可以用FIFO,双口RAM,握手信号等。
跨时域的信号要经过同步器同步,防止亚稳态传播。例如:时钟域1中的一个信号,要送到时钟域2,那么在这个信号送到时钟域2之前,要先经过时钟域2的同步器同步后,才能进入时钟域2。这个同步器就是两级d触发器,其时钟为时钟域2的时钟。这样做是怕时钟域1中的这个信号,可能不满足时钟域2中触发器的建立保持时间,而产生亚稳态,因为它们之间没有必然关系,是异步的。这样做只能防止亚稳态传播,但不能保证采进来的数据的正确性。所以通常只同步很少位数的信号。比如控制信号,或地址。当同步的是地址时,一般该地址应采用格雷码,因为格雷码每次只变一位,相当于每次只有一个同步器在起作用,这样可以降低出错概率,象异步FIFO的设计中,比较读写地址的大小时,就是用这种方法。 如果两个时钟域之间传送大量的数据,可以用异步FIFO来解决问题。

15、给了reg的setup,hold时间,求中间组合逻辑的delay范围。(飞利浦-大唐笔试)
Delay < period - setup – hold
16、时钟周期为T,触发器D1的寄存器到输出时间最大为T1max,最小为T1min。组合逻辑电路最大延迟为T2max,最小为T2min。问,触发器D2的建立时间T3和保持时间应满足什么条件。(华
为)
T3setup>T+T2max,T3hold>T1min+T2min
17、给出某个一般时序电路的图,有Tsetup,Tdelay,Tck->q,还有 clock的delay,写出决
定最大时钟的因素,同时给出表达式。(威盛VIA 2003.11.06 上海笔试试题)
T+Tclkdealy>Tsetup+Tco+Tdelay;
Thold>Tclkdelay+Tco+Tdelay;
18、说说静态、动态时序模拟的优缺点。(威盛VIA 2003.11.06 上海笔试试题)
静态时序分析是采用穷尽分析方法来提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求,通过对最大路径延时和最小路径延时的分析,找出违背时序约束的错误。它不需要输入向量就能穷尽所有的路径,且运行速度很快、占用内存较少,不仅可以对芯片设计进行全面的时序功能检查,而且还可利用时序分析的结果来优化设计,因此静态时序分析已经越来越多地被用到数字集成电路设计的验证中。
动态时序模拟就是通常的仿真,因为不可能产生完备的测试向量,覆盖门级网表中的每一条路径。因此在动态时序分析中,无法暴露一些路径上可能存在的时序问题;

19、一个四级的Mux,其中第二级信号为关键信号 如何改善timing。(威盛VIA
2003.11.06 上海笔试试题)
关键:将第二级信号放到最后输出一级输出,同时注意修改片选信号,保证其优先级未被修改。
20、给出一个门级的图,又给了各个门的传输延时,问关键路径是什么,还问给出输入,
使得输出依赖于关键路径。(未知)
21、逻辑方面数字电路的卡诺图化简,时序(同步异步差异),触发器有几种(区别,优
点),全加器等等。(未知)
22、卡诺图写出逻辑表达使。(威盛VIA 2003.11.06 上海笔试试题)
23、化简F(A,B,C,D)= m(1,3,4,5,10,11,12,13,14,15)的和。(威盛)
卡诺图化简:一般是四输入,记住00 01 11 10顺序,
0 1 3 2
4 5 7 6
12 13 15 14
8 9 11 10
24、please show the CMOS inverter schmatic,layout and its cross sectionwith P-
well process.Plot its transfer curve (Vout-Vin) And also explain the
operation region of PMOS and NMOS for each segment of the transfer curve? (威
盛笔试题circuit design-beijing-03.11.09)
25、To design a CMOS invertor with balance rise and fall time,please define
the ration of channel width of PMOS and NMOS and explain?
26、为什么一个标准的倒相器中P管的宽长比要比N管的宽长比大?(仕兰微电子)
和载流子有关,P管是空穴导电,N管电子导电,电子的迁移率大于空穴,同样的电场下,N管的电流大于P管,因此要增大P管的宽长比,使之对称,这样才能使得两者上升时间下降时间相等、高低电平的噪声容限一样、充电放电的时间相等
27、用mos管搭出一个二输入与非门。(扬智电子笔试)
28、please draw the transistor level schematic of a cmos 2 input AND gate and
explain which input has faster response for output rising edge.(less delay
time)。(威盛笔试题circuit design-beijing-03.11.09)
29、画出NOT,NAND,NOR的符号,真值表,还有transistor level的电路。(Infineon笔
试)
30、画出CMOS的图,画出tow-to-one mux gate。(威盛VIA 2003.11.06 上海笔试试题)
31、用一个二选一mux和一个inv实现异或。(飞利浦-大唐笔试)
input a,b;
output c;
assign c="a"?(~b):(b);
32、画出Y="A"*B+C的cmos电路图。(科广试题)
33、用逻辑们和cmos电路实现ab+cd。(飞利浦-大唐笔试)
34、画出CMOS电路的晶体管级电路图,实现Y="A"*B+C(D+E)。(仕兰微电子)

以上均为画COMS电路图,实现一给定的逻辑表达式,

35、利用4选1实现F(x,y,z)=xz+yz'。(未知)
x,y作为4选1的数据选择输入,四个数据输入端分别是z或者z的反相,0,1
36、给一个表达式f="xxxx"+xxxx+xxxxx+xxxx用最少数量的与非门实现(实际上就是化
简)。
化成最小项之和的形式后根据~(~(A*B)*(~(C*D)))=AB+CD
37、给出一个简单的由多个NOT,NAND,NOR组成的原理图,根据输入波形画出各点波形。
(Infineon笔试)
思路:得出逻辑表达式,然后根据输入计算输出
38、为了实现逻辑(A XOR B)OR (C AND D),请选用以下逻辑中的一种,并说明为什
么?1)INV 2)AND 3)OR 4)NAND 5)NOR 6)XOR 答案:NAND(未知)
39、用与非门等设计全加法器。(华为)
40、给出两个门电路让你分析异同。(华为)
41、用简单电路实现,当A为输入时,输出B波形为…(仕兰微电子)
写逻辑表达式,然后化简
42、A,B,C,D,E进行投票,多数服从少数,输出是F(也就是如果A,B,C,D,E中1的个数比0
多,那么F输出为1,否则F为0),用与非门实现,输入数目没有限制。(未知)
写逻辑表达式,然后化简
43、用波形表示D触发器的功能。(扬智电子笔试)
easy
44、用传输门和倒向器搭一个边沿触发器。(扬智电子笔试)
45、用逻辑们画出D触发器。(威盛VIA 2003.11.06 上海笔试试题)
46、画出DFF的结构图,用verilog实现之。(威盛)
47、画出一种CMOS的D锁存器的电路图和版图。(未知)


48、D触发器和D锁存器的区别。(新太硬件面试)
49、简述latch和filp-flop的异同。(未知)
50、LATCH和DFF的概念和区别。(未知)
51、latch与register的区别,为什么现在多用register.行为级描述中latch如何产生的。
(南山之桥)
latch是电平触发,register是边沿触发,register在同一时钟边沿触发下动作,符合同步电路的设计思想,而latch则属于异步电路设计,往往会导致时序分析困难,不适当的应用latch则会大量浪费芯片资源。
52、用D触发器做个二分频的电路.又问什么是状态图。(华为)
53、请画出用D触发器实现2倍分频的逻辑电路?(汉王笔试)
54、怎样用D触发器、与或非门组成二分频电路?(东信笔试)
直接D触发器Q反相输出接到数据输入
55、How many flip-flop circuits are needed to divide by 16? (Intel) 16分频?
4
56、用filp-flop和logic-gate设计一个1位加法器,输入carryin和current-stage,输出
carryout和next-stage. (未知)
57、用D触发器做个4进制的计数。(华为)
58、实现N位Johnson Counter,N="5"。(南山之桥)
59、用你熟悉的设计方式设计一个可预置初值的7进制循环计数器,15进制的呢?(仕兰
微电子)
60、数字电路设计当然必问Verilog/VHDL,如设计计数器。(未知)
61、BLOCKING NONBLOCKING 赋值的区别。(南山之桥)
非阻塞赋值:块内的赋值语句同时赋值,一般用在时序电路描述中
阻塞赋值:完成该赋值语句后才能做下一句的操作,一般用在组合逻辑描述中
62、写异步D触发器的verilog module。(扬智电子笔试)
module dff8(clk , reset, d, q);
input clk;
input reset;
input [7:0] d;
output [7:0] q;
reg [7:0] q;
always @ (posedge clk or posedge reset)
if(reset)
q <= 0;
else
q <= d;
endmodule
63、用D触发器实现2倍分频的Verilog描述? (汉王笔试)
module divide2( clk , clk_o, reset);
input clk , reset;
output clk_o;
wire in;
reg out ;
always @ ( posedge clk or posedge reset)
if ( reset)
out <= 0;
else
out <= in;
assign in = ~out;
assign clk_o = out;
endmodule
64、可编程逻辑器件在现代电子设计中越来越重要,请问:a) 你所知道的可编程逻辑器
件有哪些? b) 试用VHDL或VERILOG、ABLE描述8位D触发器逻辑。(汉王笔试)
PAL,GAL,PLD,CPLD,FPGA。
module dff8(clk , reset, d, q);
input clk;
input reset;
input[7:0] d;
output[7:0] q;
reg[7:0] q;
always @ (posedge clk or posedge reset)//异步复位,高电平有效
if(reset)
q <= 0;
else
q <= d;
endmodule
65、请用HDL描述四位的全加法器、5分频电路。(仕兰微电子)
66、用VERILOG或VHDL写一段代码,实现10进制计数器。(未知)
67、用VERILOG或VHDL写一段代码,实现消除一个glitch。(未知)
68、一个状态机的题目用verilog实现(不过这个状态机画的实在比较差,很容易误解
的)。(威盛VIA 2003.11.06 上海笔试试题)
69、描述一个交通信号灯的设计。(仕兰微电子)
70、画状态机,接受1,2,5分钱的卖报机,每份报纸5分钱。(扬智电子笔试)
71、设计一个自动售货机系统,卖soda水的,只能投进三种硬币,要正确的找回钱
数。 (1)画出fsm(有限状态机);(2)用verilog编程,语法要符合fpga设计
的要求。(未知)
72、设计一个自动饮料售卖机,饮料10分钱,硬币有5分和10分两种,并考虑找零:(1)
画出fsm(有限状态机);(2)用verilog编程,语法要符合fpga设计的要求;(3)设计
工程中可使用的工具及设计大致过程。(未知)
73、画出可以检测10010串的状态图,并verilog实现之。(威盛)
74、用FSM实现101101的序列检测模块。(南山之桥)
a为输入端,b为输出端,如果a连续输入为1101则b输出为1,否则为0。
例如a: 0001100110110100100110
b: 0000000000100100000000
请画出state machine;请用RTL描述其state machine。(未知)
75、用verilog/vddl检测stream中的特定字符串(分状态用状态机写)。(飞利浦-大唐
笔试)
76、用verilog/vhdl写一个fifo控制器(包括空,满,半满信号)。(飞利浦-大唐笔试)
reg[N-1:0] memory[0:M-1]; 定义FIFO为N位字长容量M
八个always模块实现,两个用于读写FIFO,两个用于产生头地址head和尾地址tail,一个产生counter计数,剩下三个根据counter的值产生空,满,半满信号产生空,满,半满信号
77、现有一用户需要一种集成电路产品,要求该产品能够实现如下功能:y="lnx",其中,x
为4位二进制整数输入信号。y为二进制小数输出,要求保留两位小数。电源电压为3~5v假
设公司接到该项目后,交由你来负责该产品的设计,试讨论该产品的设计全程。(仕兰微
电子)
78、sram,flash memory,及dram的区别?(新太硬件面试)
sram:静态随机存储器,存取速度快,但容量小,掉电后数据会丢失,不像DRAM 需要不停的REFRESH,制造成本较高,通常用来作为快取(CACHE) 记忆体使用
flash:闪存,存取速度慢,容量大,掉电后数据不会丢失
dram:动态随机存储器,必须不断的重新的加强(REFRESHED) 电位差量,否则电位差将降低至无法有足够的能量表现每一个记忆单位处于何种状态。价格比sram便宜,但访问速度较慢,耗电量较大,常用作计算机的内存使用。
79、给出单管DRAM的原理图(西电版《数字电子技术基础》作者杨颂华、冯毛官205页图9
-14b),问你有什么办法提高refresh time,总共有5个问题,记不起来了。(降低温
度,增大电容存储容量)(Infineon笔试)
80、Please draw schematic of a common SRAM cell with 6 transistors,point out
which nodes can store data and which node is word line control? (威盛笔试题
circuit design-beijing-03.11.09)
81、名词:sram,ssram,sdram
名词IRQ,BIOS,USB,VHDL,SDR
IRQ: Interrupt ReQuest
BIOS: Basic Input Output System
USB: Universal Serial Bus
VHDL: VHIC Hardware Description Language
SDR: Single Data Rate
  压控振荡器的英文缩写(VCO)。
  动态随机存储器的英文缩写(DRAM)。
名词解释,比如PCI、ECC、DDR、interrupt、pipeline、
IRQ,BIOS,USB,VHDL,VLSI VCO(压控振荡器) RAM (动态随机存储器),FIR IIR DFT(离散
傅立叶变换)或者是中文的,比如:a.量化误差 b.直方图 c.白平衡
PCI:Peripheral Component Interconnect(PCI),
DDR:DoubleDataRate
ECC:Error Checking and Correcting
系统分类: 资源共享
用户分类: 其他文章
标签: 无标签
来源: 无分类
发表评论 阅读全文(2191) | 回复(1)

1

关于投票
珠海炬力笔试题目
1.        降低NMOS的开启电压VT的方法,哪种无效?
A.        减少衬底的P型掺杂浓度
B.        减少氧化层厚度
C.        增加源漏极的N型掺杂浓度
D.        减少沟道长度
2.        IO PAD 的设计,一般不常考虑的因素
A.        ESD特性
B.        驱动能力
C.        施密特触发器
D.        衬偏效应
3.        逻辑电路低功耗设计中,无效的方法
A.        采用慢速设计
B.        减少信号翻转
C.        减少IC面积
D.        采用较慢速的时钟。
1.        写出序列探测器“11000”的RTL代码。
2.        分析一个CMOS电路的逻辑功能(同或门)。
3.        分析一个CMOS电路的逻辑功能(三态门)。
4.        画出全加器的CMOS电路,说明延时的估算方法。
5.        A,B为两个时钟,频率差最小为1/8。如果A的频率高,C="0";否则C="1";编程实现。
6.        编程实现FIR滤波器,系数为C0,C1,C2,C3,C2,C1,C0。输入DI,输出DO。系数和DI均为8比特。
7.        一个圆盘,一半黑,一半白。有两个探测器,用1表示白,0表示黑。设计一个电路,可以探测出圆盘是顺时针转动还是逆时针转动。
系统分类: 资源共享
用户分类: 其他文章
标签: 无标签
来源: 无分类
发表评论 阅读全文(2059) | 回复(0)

2

关于投票
别忘了生活的目的
人们总赞赏蜜蜂的勤劳,但我们又不得不承认,蜜蜂的种种极端习性,实在是生命的一大悲哀。 
 

  蜜蜂积累财富无止无休,它们恨不能把天下的蜜、粉都采集到巢中,所以,只要外界还有蜜有粉,它们就不会休息。疲惫不堪、早衰和过劳死的现象,是它们的不幸。 


  蜜蜂不懂得适时的机变和改向。 


  有生物学家做过试验,将数量相等的蜜蜂和苍蝇放进一只透明的玻璃瓶,然后将玻璃瓶瓶底对着光源,将瓶身与瓶口置于黑暗之中。结果,瓶中的蜜蜂都朝着光源挣扎而死,而苍蝇却都从背着光源的瓶口飞走了。 


  纵观四周,不少现代人都在重蹈蜜蜂的悲剧,为了追逐更大的名利,为了获取更多的钱财,一往直前毫不停留,就连吃饭,也是不知其味地匆匆填饱肚子。结果却是心累体衰,没有时间充分品味生活的美好与芬芳,最终留下生命的遗憾…… 


  现代社会过于喧嚣和浮躁,许多人在这忙碌的世界上手脚不停,就好像到美丽的庐山旅行,乘汽车匆匆忙忙地过去,没有什么时间回一回头,或者停一停脚步,欣赏一下风景,结果,使这原本丰富美丽的世界,在我们眼中只剩下了匆忙和紧张,劳碌和忧愁。 


  有位哲人说过:爬山的时候,别忘了欣赏周围的风景,假如工作的目的是为了挣钱,挣钱的目的是为了投资,投资的目的是为了挣到更多的钱,你就会在“爬山”的路上只顾低头爬山,完全忘记生活的目的了。 


  不会欣赏和享受每日的生活是我们最大的悲哀。学习享受已经拥有的时间、金钱与爱是我们最重要的一课…… 


  不要以为等你赚够了钱再来放慢脚步享受生活,时间不会等你的,你孩子的天真笑脸,太太的杨柳腰枝,还有你壮如铁塔的身体都会成为过去,而你那时除了抱着赚来的钱又可以做什么呢? 


  正如一位著名心理学家所说:“工作、爱情、游戏是人生的三个重要方面,偏废了任何一方面就不能算作一个精神健康的人。” 


  一位功成名就的电影名星在他六十寿诞时对亲朋好友说了他对生命的感慨:"你们可能都认为我这一辈子很快乐,生活的很有意义,其实不是这样的。当我年轻的时候,就在为成为一个电影名星而奋斗,就像参加赛跑的马,带着眼罩拼命往前跑,除了终点的白线之外,什么都看不见。路上到底有什么奇花异草我根本不知道。” 


  “几十年后,我有了地位,也有了名誉和财富。可是,我并不像别人那样快乐和幸福。我有三个孩子,每一个孩子的出生,我都不在家而在外地拍片。我从来没看过孩子们走第一步的样子,我更没有尽到教育孩子的责任。由于忙着拍片和参加各种各样的首映式、发布会和巡回演出,我难得有空去读我喜爱的书,也无暇去花园里给花木浇浇水。我这几十年就像机器一样不停地转,你们觉得我这样的一生有意义吗?” 


  蜜蜂是勤劳的,但蜜蜂确实活得太累。现代人不必把每天的时间安排得紧紧的,留下一点时间给自己,来欣赏一下四周的好风景。
系统分类: 自由话题
用户分类: 其他文章
标签: 无标签
来源: 无分类
发表评论 阅读全文(585) | 回复(0)

0

关于投票
如何准备软件工程师的面试
作者简介: 王忻,Google 工程师。北京出生,五岁时跟随父母移居美国。中学期间跳了三级,十五岁进入了加州理工大学,加入 Google 前曾在微软等公司工作。)

    六月份的时候,我曾经在黑板报上介绍过“如何写一份好的工程师简历”, 今天想跟大家来谈谈如何准备软件工程师的面试?假设,现在您的杀手简历 (killer resume)已经吸引了某大公司的注意并约你面试。那么接下来该如何准备呢?

    我在 Google(以前是微软)工作期间面试了不下 300人,其中某些应聘者确实表现非凡,但有些却显得准备不足。当然许多面试准备不足的人最后依然获得了录用通知,因为他们本身确实才华出众。但如果应聘者能提前准备妥当,那么面试过程将更为保险和轻松。以下所列出的就是我根据多年经验总结得出的建议:

1.使用相同的工具(如铅笔和纸张)和时间限制(例如半个小时)模拟面试训练

    Google 和微软都会让应聘者在白板上手工解答编程问题,但通常大部分的应聘者都是习惯于在电脑上利用编程工具系统编写程序。因此面试的时候,某些应聘者离开了熟悉的电脑光标,站在白板前感觉手足无措不知该如何起行。又或者他们不习惯在编程之时旁边有人观看,这会让他们感到紧张而无法正常思考。

    在现实生活中,如果你想要横渡英吉利海峡,自然不能总是在室内游泳池练习。你必须投身于大海在波涛之中训练,在准备面试的时候也是如此。:)

    在面试开始之前你最好向招聘单位询问面试形式和面试问题。如果招聘单位让你在某个房间考试且仅提供没有汇编程序的编辑器,那么就应该在家中按照这种情景进行练习。如果招聘公司单位让你在白板上回答问题并会安排考官在旁监督,那么你就要找一位软件工程师来扮演考官配合你练习。即使找来的考官经验不如你也没有关系,他们依然能帮助你消除在他人面前出错所带来的紧张感,这样可以让你适应有人在旁边盯着看的面试氛围。

    如果你恰巧认识我并希望由我来帮你联系,那我的条件就是必须请我吃饭:如果你已经工作了就吃日本寿司大餐;如果你还是学生,那么吃比萨饼也可以。:)

2.在面试过程中不要对细小错误耿耿于怀

    我曾不止一次的在面试过程中碰到这种情况:当应聘者知道编程问题后,他马上就想到了最佳的方案、确定了边界条件,然后开始编写程序。但在编写过程中,应聘者犯了诸如首先检查是不是操作顺序错误或忘记设定某变量等无关大局的小错误,当我指出其错误之后,应聘者立刻变得十分紧张,这种焦虑情绪影响了他在后面环节的正常发挥。

    其实这种恐惧心理完全不必要。一名优秀的程序员在编程过程中出现错误也是很正常的,就像是小提琴手在演奏高难度的巴赫交响乐时也会偶尔失误。音乐会的听众可能会觉察到这些错误,但是听众绝对不会因为这种细小失误就把出色的小提琴手看作是门外汉。

    即便应聘者彻底搞砸了某个编程问题,面试考官也可能会提出不同的问题并会容忍应聘者在某个问题上的失误。再退一步说,就算某次面试彻底失败,你也有机会在其它面试上补救。

    我的一位同事(一个项目的技术负责人)最近面试了一个人,在开始面试时他觉得面试者的交流方式存在问题,因此开始表现的相当不友好。但经过了整个面试过程后,面试者证明了自身的能力,而我的那位同事也成了那位面试者最坚定的支持者。在过去的一年中,我从未见过这位同事如此强烈的支持哪位面试者。

    所以,因此就算面试进展不顺,也务必坚持到底不要放弃。

3.在面试过程中不要失礼

    这似乎是不用说的问题,但在面试过程中我确实碰到过影响很不好的失礼行为。曾有一位前来应聘软件工程师的人看到我就说:“哇,我真不敢相信你这么年轻!你看上去好小!!我觉得你才 18 岁!”

    面试者的这种言行实在要不得。

    面试者也要注意不要说出诸如此类的话:“哇,你真的就是考官吗?你看上去好老!”“哇,你真的是来面试我的,你看上去好胖!”(相信应该不会有人说这样的话)。

    在我的另外一次面试中,应聘者的手机在面试开始 15 分钟之后就响了,她没有理会,手机连续响了 20 秒,这样不免会对面试造成影响。5 分钟之后,她的手机又响了,她依然没有理会;5分钟之后,手机第三次响起。最后她终于抓过手提包在里面翻出了手机。我想:“是时候关掉手机了,她在进来之前就应该把手机关掉。”但是她在手提包中拿出手机之后却旁若无人的打起电话来,而且就在面试过程中间!

    这种情况唯一可接受的理由就是他有什么非常紧急的事,但是即便情况如此,那么他也应该在面试开始之时就讲清楚,让面试官有所准备。

4.不要在面试中喧宾夺主

    我曾经面试过几个应聘者,他们好像铁了心肠一定要告诉我他们最近的“超级项目”。当我开始发话他们就立刻打断:“我想让你了解我们近期处理的超级项目,10年之前当这个项目开始之时还默默无闻……”,然后接下来的5分钟时间都在那里滔滔不绝唾沫横飞。

    有时应聘者好像打定主意要给每个考官详细描述其引以为豪的项目,然后一整天都在那里翻来覆去的说这个项目。

    记住:面试官在面试过程中有具体的问题需要询问。但是如果应聘者喧宾夺主,那么考官就可能无法获得充分的信息来做出判断,同时这种行为也会让考官觉得应聘者很难共事。

    如果你确实想谈论自己的项目,那么就应询问面试官:“我觉得最近的某某项目能充分体现我的能力,我能不能用 10分钟的时间来描述一下具体情况?”这样就会给面试官空间来调整面试过程,由此也避免毫无征兆就让面试离题万里。

5.在回答需要具体答案的问题之时,记得首先要有总括性的发言

    有时我会问一个答案可以很简练的问题,例如:“在你的那个成功项目中总共有多少人参与?”但应聘者往往会就此打开话匣:“恩,张三参与了这个项目,他负责UI部分,当然我也会给他一些指导。李四也在项目中,她在宾州远程工作,负责后端服务器。两年之后我们又有新人王五加入……”

    在应聘者滔滔不绝的讲了三分钟之后,我还是不知道这个项目到底有多少人参与。

    因此首先要简练的回答问题,然后再展开描述:“在我接手项目时有三个人,但当我离开项目时人数已经增加到12人。”

    当然如果能简练的回答问题,然后征询意见之后再展开论述那就更好了:“在我接手项目时有三个人,但当我离开项目时人数已经增加到 12 人。我可以讲一下各人在项目中的具体分工吗?”

6.(不是特别重要)在面试中要衣着得体,舒适的商务便装是最佳的选择

    人们有时候会为衣着犯愁。但是最重要的是要让自己感觉舒适。如果需要具体的建议,那么我建议穿衬衫甚至T恤衫。对于某些公司(例如 Google),西装革履显然是太隆重了。

    这条建议不必太看中,因为面试官不会管应聘者穿什么。最好应该询问人事招聘部门穿什么合适,因为不同国家有不同习俗,就算美国东海岸和西海岸的公司着装文化也会有差别。像 Google 这样的公司在着装方面更加随意,因此如果你穿着“三件套”的经典西服去 Google 面试,考官可能会有异样的感觉。因此如果你真的具备软件工程的本领,穿什么其实并不重要。某个应聘者曾经穿着皱巴巴脏兮兮的T恤就跑来面试,他的T恤衫上还有着许多破洞。但最后他还是拿到了录取通知(当然我绝不建议如此穿着)。

最后的一个小故事

    最后我想讲一场极为尴尬的面试。在看完之后,我希望你能这样想:无论你的面试如何糟糕,你至少要比这位应聘者幸运。

    以前我还在微软的时候,我们通常会为应聘者准备一些饮料,某位暂称其为 Jeff 的应聘者要了一听百事可乐。我们走进面试房间后,他就在桌前坐下了。接下来我们简要的谈了谈他的工作经历,然后他开始在白板上解答编程问题,此时他还没有打开他的可乐。

    我们俩站在白板前,然后杰夫开始在上面写程序。在写程序之时他沉浸在对整体构架的思考中,下意识的退了一步来查看整个白板。在后退时他不小心碰到了桌子,放在桌上的百事可乐掉到了地上。

    因为可乐还没有打开,因此当可乐罐落地的时候,可乐罐炸开了。

    可乐罐在地上打转,泡沫喷