« | October 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | |
| 公告 |
快升级了.... |
Blog信息 |
blog名称:程序员之路 日志总数:61 评论数量:215 留言数量:4 访问次数:463995 建立时间:2006年5月8日 |

| |
[心水文章]Google工程师给软件工程师面试支招  文章收藏, 网上资源, 心得体会, 所见所闻, 新闻动态, 事件记录, 软件技术, 电脑与网络, 科学研究, 校园生活, 职业生涯, 生活百科, 数码玩家
noahj 发表于 2006/10/9 9:11:02 |
如何准备软件工程师面试
Niniane Wang,中文名王忻是一位Google工程师,在Google的黑板报上你可能阅读过她写的一篇名为如何写一份好的工程师的简历的文章这里给出一篇她写的关于如何准备软件工程师面试的文章:王忻曾经面试过不下300个软件工程师,其中不乏有优秀的,也有一些准备不充分的,虽然有些准备的不充分但是确实很优秀而留下的情况,但是好好准备一下应该是一个更安全的面试策略。下面就是一些小技巧。
Practice using the same medium (e.g. paper and pencil) and time limits (e.g. 30 minutes) as the real interview.
在规定的时间比如30分钟,用笔和纸来多次的面试预演。微软和Google都使用白板为问一些程序问题,而应聘者都是在电脑前用编译器来进行编程练习的。在真实的面试中,你要站在白板前,你可能因为没有电脑里面的语法高亮而忘记如何初始化数组,或者你不习惯有人看着你而紧张不能正确思考等。在现实中,如果你计划游过英吉利海峡,你会仅在家里的游泳池进行锻炼吗?不,你要去真正的大海里去体验那些咸咸的海水,面试也一样。 问一下招聘者面试的形式和编程问题. 如果公司是让应聘者一个人在房间里使用编辑器而不是编译器进行的话,也这么在家里练。如果公司是使用白板且有人看着你的时候,你可以找你朋友也帮你模拟练习。你的朋友是否有软件经验无所谓,因为你需要习惯在有人的情况下怎么消除紧张带来的错误.
During the interview, don't obsess over little mistakes that happen.
在面试的过程中不要被刚出现的小错误所困扰。不止一次当我给一个面试者一个编程题目的时候,他能很快的找出一个最优的解决方案,开始写很规整的代码。在过程中他犯了一个小错误,把操作顺序弄错了(程序我不太懂,可能翻译错误),或者忘记声明一个变量了。然后我指出了这个错误,应试者一下就慌了手脚,影响了其在后续的面试表现. 这种困扰是不必要的。一个优秀的应试者出现点小错误就像一个音乐会中出现错误的一两个音符而已,虽然听众能听出这个错误,但是他们对演奏者的大师地位是不会怀疑的. 即使一个问题回答错误,还会有很多面试者问你很多问题,即使整个面试都失误了,你还有其它面试可以去挽回的。即使事情进展的不顺利也不要放弃希望。
Don't be rude to your interviewer.
不要对你的面试者粗鲁. 这个虽然是显而易见地问题,但是还有人这么做,有一次一个应试者对我说 "我不敢相信你就是我的面试官,你看上去太年轻了,我想你就18岁吧?!?!'" 这样很不明智,还要一些话也不太适合说:
"你真是我的面试官吗? 你看上去好老啊!"
"你真是我的面试官吗? 你看上去好胖啊!"
还有一次一位面试者的手机在面试过程中响了15分钟,最后这位面试者从钱包中找出自己的手机,当着面试官的面打起了电话.. 唯一合理的解释是家里出现了紧急情况,但是最好能在面试前告知面试官.
Don't hijack the interview.
不要打断面试。我有几个面试者在面试的时候他们老是觉得应该必须告诉我他们近来的Zoolander项目. 我开始面试接着他们就打断说, "我想告诉你关于Zoolander项目.十年前这只是一个设想..." ,然后一口气说了5分钟。 你的面试官需要问你一些特定的问题.如果你打断面试,他们就不能够从这些问题中获得足够的信息来决定是否录用你。也可能会认为你不是一个很容易相处的同事. 如果你真想谈下你的项目,你可以问面试官, "我认为Zoolander项目可以显示我的能力,你或者别的面试官能给我十分钟的时间来听我解释一下吗?" 这样面试官就可以重新调整面试计划,而不是被你突然打断.
When answering questions expecting a specific answer, give a high-level summary first.
回答问题的时候来个摘要先。有时候我期望问题的答案很简短, "在Zoolander项目上你和几位同事共事呢?" 而应聘者给我一个长篇大论, "事实上,有Jimmy他负责用户界面而我指导他,还有就是Mary她负责后台服务器,她在宾夕法尼亚州远程工作,两年后又有David加入...." 三分钟后,应聘者还在继续,而我还是不知道到底有多少人参与计划. 给我一个答案先,然后再扩展 "我加入的时候有三个人,我走的时候大概12人。第一个是..." 更好的方式是先给答案,然后询问是否可以扩展. "我加入的时候有三个人,我走的时候大概12人. 你希望我告诉你每人具体的分工吗?"
(Not as important) Wear something comfortable to your interview. Business casual is the most typical.
这个不是很重要,穿点舒服的衣服去面试,商务休闲还不错。人们总是不知道面试的时候该怎么穿衣服。其实最重要的是自己要感觉舒服. 如果你想要一个建议的话,我建议你穿有扣的衬衣甚至T-shirt. 西服在类似Google这类的公司来说有点过于正式. 穿什么不重要是因为人们不太在意这个. 当然也不要穿的太另类. |
|
回复:Google工程师给软件工程师面试支招 文章收藏, 网上资源, 心得体会, 所见所闻, 新闻动态, 事件记录, 软件技术, 电脑与网络, 科学研究, 校园生活, 职业生涯, 生活百科, 数码玩家
noahj发表评论于2006/10/9 9:19:50 |
这是英文版本的!!
Practice using the same medium (e.g. paper and pencil) and time limits (e.g. 30 minutes) as the real interview.
Google and Microsoft both use whiteboard coding questions, yet often candidates practice by coding alone at home on a computer with a compiler. During the actual interview, they stand at the whiteboard and forget how to initialize an array, without their trusty syntax highlighter. Or they are so nervous having another person watch them that they panic and can't think straight.
In real life, if you plan to swim the English Channel, would you limit your practice to laps at the local swimming pool? No, you would go test out the ocean waves, the salt water. Do the same here.
Ask your recruiter the format of the interview and any coding questions. If the company gives the candidates an hour alone in a room with an editor and no compiler, practice that at home. If the company does whiteboard questions with an interviewer watching you, ask an engineer friend to be your mock interviewer. It's fine if the friend is a less experienced engineer than you -- they'll still bring out your nervousness about making mistakes in front of others, so you can practice getting used to that.
If you know me in real life and want me to do a mock interview for you, my going rate is dinner at Fuki Sushi if you're in industry, or at Pizza My Heart if you're a strapped-for-money student.
During the interview, don't obsess over little mistakes that happen.
On more than one occasion, when I gave a star candidate a coding question, he zeroed in on the most optimally performant solution, identified the boundary cases, and began writing well-designed code. Midway through the problem, he makes a little error -- getting the order of operations wrong on the first try, or having an off-by-1 error, or forgetting to declare a variable.
When I point it out, the candidate responds with horror and then becomes so nervous that it impacts his performance during the rest of the interview.
The fear is unfounded. An awesome candidate making a little error is like a concert violinist playing a challenging Brahms concerto and hitting two wrong notes. Sure, the audience could tell that he made mistakes, but they don't get confused as to whether he's actually at Twinkle-Twinkle-Little-Star level.
Even if you completely bomb one question, many interviewers ask you multiple questions and will forgive a single mishap. Even bombing an entire interview is recoverable if the other interviews go well.
Recently one of my coworkers (a tech lead for another project) interviewed a candidate and was very curt because he found the candidate's communication style irritating. The candidate proved himself during the interview, and the tech lead ended up being the strongest proponent for this candidate. He advocated harder for that candidate than he has for anyone else in a year.
When things don't go well, just keep at it and don't give up hope.
Don't be rude to your interviewer.
This should be obvious, but I have been surprised. One engineering candidate said to me, "Wow, I can't believe you're really my interviewer! You look so young!! I thought you were 18! Once you told me your credentials, I understand now, but at first I thought, 'This person is interviewing me?!?!'"
That wasn't so smart.
Other things that I recommend against saying:
"Wow, you're really my interviewer? You look so old!"
"Wow, you're really my interviewer? You look so fat!"
Another time, the candidate's cell phone rang 15 minutes into the interview. She let it go, and we were both distracted by it ringing for the next 20 seconds. 5 minutes later, it happened again. Another 5 minutes later, it rang for a third time.
She finally reached for her purse and fumbled inside it for the phone. "It's about time", I thought, "she should've turned it off before coming in here." She dug the phone out of the purse and then proceeded to take the phone call right there in the middle of the interview.
The only justification is if there is a family emergency, and in that case, warn your interviewer explicitly at the start of the interview.
Don't hijack the interview.
I've had a couple of candidates who came into the interview with the mindset that they MUST tell me all about their recent project Zoolander. I start the interview and they break in with, "I want to tell you about Zoolander. 10 years ago, this project started as a side feature..." and then go on for 5 minutes without taking a breath.
Sometimes they decide that they must tell every interviewer about Zoolander, repeating the same description over and over during the day.
Your interviewer has specific questions that they need to get through. If you hijack the interview, they may not have enough data from their own questions to be able to endorse your hiring. They may also think that you would be difficult to work with.
If you really want to talk about a project, ask your interviewer, "I think project Zoolander really shows off my abilities. Can you or another interviewer fit in 10 minutes for me to explain it?" The interviewer can then refit their plan for the interview, instead of suddenly having their schedule be shanghaied.
When answering questions expecting a specific answer, give a high-level summary first.
Sometimes I ask a question expecting a short answer, "How many people worked with you on project Zoolander?" The candidate then gives me an audiobook, "Well, there was Jimmy -- he did the UI and I had to mentor him quite a bit on it. Then there was Mary who ran the backend servers. She worked remotely from Pennsylvania. Two years later, we got another backend person David..."
Three minutes later, the candidate is still talking, and I still don't know the answer of how many people worked on the project.
Give an answer first, and then expound. "There were 3 when I joined, and 12 when I left. First there was Jimmy ..."
Better yet, give the answer and offer to expound. "There were 3 when I joined, and 12 when I left. Would you like me to tell you what each one did?"
(Not as important) Wear something comfortable to your interview. Business casual is the most typical.
People sometimes wonder how they should dress. The most important thing is that you feel comfortable. If you still want a recommendation, I say a button-down shirt or even a T-shirt. A suit can come off as too formal in some companies (e.g. Google).
This point is not as important, because people won't really care. You should ask your recruiter about what to wear, since this differs by country and East Coast / West Coast. A company like Google is more casual, so if you come in a three-piece suit, your interviewers may raise an eyebrow. If you've got the goods in terms of engineering skills, it's not a dealbreaker though. One candidate came to an interview wearing a gothic mesh shirt with holes through which his nipples were clearly visible. He still got the job. (I don't recommend taking this.) |
|
» 1 »
|