赴美工作常识(Part 4 - 面试)
最近跟同事讨论面试的事情比较多,所以就综合大家所说的列举几条面试建议吧。这些建议是针对中国候选人应聘美国职位而写的,但适用范围可能更广。假若你实际的实力是 X,面试官感知到你的实力是 Y,这些建议既不能让你实力暴增(X++),也不能让你展现超乎实际的实力(Y > X),只能帮助你避免由于沟通问题而造成的实力不被发现(Y < X)。
当做讨论而非考试
尽管面试有个「试」字,但在真正好的技术面试其实不是一问一答的考试,更多是如同同事之间的技术讨论一样,从比较糟糕的解决方案开始做优化,直到做到大家都可以接受的程度为之。这个观点在《理想的技术面试过程》中也提到过,在这里就说一下具体应该怎么做。
首先你要自信,不能觉得面试是公司对你的单向选择,其实是同时包括你对公司的双向选择。有些心理学上的技巧可以让你显得自信一点的,例如说在公司大堂等待的时候尝试深呼吸和伸展一下四肢。由于人的心理状态和身体语言是互相加强的,所以如果你使用自信的身体语言,你就会无意识地被「误导」以为自己确实自信,不过这正是你想要的效果。(如果你想更多的了解什么身体语言表示自信,可以去找本身体语言方面的书来看。)
然后你不要高估题目的难度。有些人可能被 Google 中国的某些面试官虐待过,觉得越是好的公司题目自然越难,但这其实是中国应试体系的思维方式而已,题目难度不是筛选出少数人的唯一手段。就好像同事问你问题一样,问及的事情有可能是你完全没做过的,你就凭借常识来提供一些基本的判断;也有可能是你深入研究过的领域,你可以说出很多细节和难以遇见的问题。面对后面一种情况,假设你说的都是对的,面试官会很开心;面对前面一种情况,面试官会让你说出更多细节,或者问你哪里还能继续优化,这时候你就知道你的答案和已知最优答案还有差距了。(有些 Google 面试官会在你给出该问题业界已知最优解后仍然问你能不能继续优化。)所以千万不要一开始就假设题目很难,觉得给出一个没有优化过的答案很丢脸。
英语说慢一点
很多时候人一紧张起来,说话就会越说越快,在有点口音的情况下只会让对方越来越难听懂。在对自己技术自信的基础上,同时也需要对自己的英语表达能力自信。其实语法或者词汇有点问题,说话有口音,这些影响都不大,只要对方能够听到关键词汇,意思还是能明白的。有时候可能双方都要多说几次「excuse me」和「what is it」才能问明白对方的意思,但只要最后问题能讨论清楚,那你至少还是让面试官了解到了你的真实实力。
代码要易读易改
这个问题来源自某人的一句评论:
有 ACM 背景的人往往在面试过程中都很不介意写全局变量,但我更期望这个问题的解决方案就是一个函数,所以实现细节都在内部解决。
其实「全局变量」不是重点,代码的易读性和可维护性才是重点,而这往往是 ACM 或个人项目所缺乏的训练,这种问题尤其容易出现在编码能力很强但很少跟人合作的人身上。
对于 ACM 而言,只要程序能运行代码怎么写都没所谓,反正代码的生命周期也就是几个小时,无论是否通过几个小时后你就不会再去阅读或者修改这段代码了。这种训练使得写 hacky 代码缺少惩罚。但在实际工作当中,任何 hacky 的代码都会引入新的 technical debt,最终肯定是你以及你的同事承担。你写下的第一个版本,可能要在代码库中停留几年才有人完全推倒重写,这几年内不停地有人在上面做修改,你需要保证在这个过程当中大家都还能明白这段代码是干什么的。
如果你把面试官看做同事,那么你写的代码自然是要经过他 code review 的。不要为了追求高性能而写出很难读的代码来,面试官读不懂就判断不了代码的正确性,性能再好也没有用。你宁可先写下来最清晰可读的版本,如果面试官说需要优化性能时再做优化。
其它参考资料
我暂时能想到的就这么多了。此外推荐 David Wei 的《面试硅谷创业公司:请把面试官当成你的同事》。
赴美工作常识(Part 4 - 面试)的更多相关文章
- 赴美工作常识(Part 5 - 绿卡优先级)
这个系列的第一篇<赴美工作常识(Part 1 - 签证)>是三年前写的,过了这么久这个系列终于要继续下去了.接下来当然时讨论绿卡的事情了.跟讨论签证一样,这里必须要有免责声名.因为我不是移 ...
- 赴美工作常识(Part 6 - 绿卡排队)
上一篇<赴美工作常识(Part 5 - 绿卡优先级)>解释完排队的优先级是怎么确定的,以及 PERM 和 I–140 表的意义,接下来就要解释一下队具体是怎么排的以及排到之后的 I–485 ...
- 赴美工作常识(Part 2 - 申请)
在<Part 1 - 签证>的评论中有人提到,说我还没说如何申请职位就说签证的事情了.一方面,签证的周期决定了你申请职位的时间,错过关键时间点的话就可能错过重要的机会.另一方面,传统意义上 ...
- 赴美工作常识(Part 3 - 英语)
在<Part 2 - 申请>的评论中有人问英语要达到何种水平,以及如何提高.其实英语也不是我的强项,只是刚刚好做到能够沟通而已.由于我在知乎上回到过一个类似问题,我就基于那个答案简单说一下 ...
- 一个赴美的应届毕业生Kevin,在美国做程序员的访谈
作者MUM计算机 转载请注明 在国内IT市场人才日渐饱和且竞争激烈的今天,作为一名代号996的程序猿,你是否也会对赴美工作心生向往呢?作为国内普通院校的应届本科生年薪就能轻松破40万 (人民币), ...
- 阿里IPO弃港赴美?
最近,关于阿里巴巴和香港联交所博弈的新闻一直长时间占据了各大科技媒体的头条.9月25日,香港联交所行政总裁在港交所其个人专栏“小加网志”中贴出一则名为<投资者保障杂谈>的博客文章,谈及“香 ...
- Software Engineer(百赴美)
http://talent.baidu.com/component1000/corp/baidu/html/BFM.html http://talent.baidu.com/baidu/web/tem ...
- 中国科技股赴美IPO的游戏结束了吗?
编辑 | 于斌 出品 | 于见(mpyujian) 有关斗鱼直播的消息,一直层出不求.最近前几天又有捷报传出,斗鱼走出国门,在美国上市,开始了自己的新征程. 但据悉,斗鱼国际控股有限公司可能刚刚达到外 ...
- 从赴美IPO绝迹 看那些烧成泡沫的互联网企业
曾经,赴美上市是很多中国企业的终极梦想.然而在当下,随着中概股在美国股市股价的不断走低.中国赴美上市企业私有化速度的加快,大众才发现,原来美国股市并不是那么好混的.但不管怎样,赴美上市始终是一种荣耀. ...
随机推荐
- PIL show() 报错
将 PIL 安装目录下的 ImageShow.py 文件的第 99 行:(我的 Python 安装在 D:\Program Files\python 2.6,那 ImageShow.py 文件在: ...
- Java使用Scanner接收中文并输出时出现乱码
Java中使用Scanner接收输入的中文并输出时会出现乱码现象,怎么解决此问题呢? 1.方法一 在声明Scanner时添加对应的编码格式就可以了,如下所示: Scanner sc = new Sca ...
- MySql之安装配置
1.解压Mysql.zip后,添加bin目录的环境变量 2.配置my.ini文件中的 # basedir =D:\mysql-5.6.24-winx64 # datadir = D:\mysql-5. ...
- Android视图绘制流程完全解析,带你一步步深入了解View(二)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/16330267 在上一篇文章中,我带着大家一起剖析了一下LayoutInflater ...
- SmartUpload实现文件上传时file和表单文本同时提交的问题
JSP页面: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8 ...
- python 版本升级(CentOS) 从2.6.6升级到2.7.6
安装必须的包 yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readli ...
- bdb log file 预设长度的性能优化
看代码随手记:log_put.c, __log_write() /* * If we're writing the first block in a log file on a filesystem ...
- mysql监控和优化(2)
mysql主从复制 3个线程完成复制:主库1个线程负责记录数据库变更日志从库1个线程负责拉取主库的变更日志从库1个线程负责执行主库的变更日志实现了获取事件和重放事件的解耦,允许异步进行.复制的瓶颈:主 ...
- 数据库SQL语句中根据当前日期计算其他日期小结
问题描述:我们在写存储过程和函数的时候经常会碰到利用当前日期计算出上周开始日期.结束日期,或者计算上个月的开始日期结束日期等问题.最近写了几个存储过程和函数,其中都涉及到了日期计算问题,在这里简单做一 ...
- linux(centos)源码安装git
最近使用一个开源库,部署的的时候需要用git克隆依赖库.刚好系统没安装git.就尝试了源码安装git. 源码下载地址:http://codemonkey.org.uk/projects/git-sna ...