您的位置:首页 > 职场人生

面试现场编程(on-site progarmming)简单攻略

2007-11-05 08:12 351 查看
(本文首次发表于UCPU-NET(海外华人程序员工会),想了解海外华人程序员的状况,寻找海外工作机会,请访问www.ucpu.net)

onsite编程是很多公司招聘程序员的常规手段,和其它招聘题目相比,onsite编程真刀实枪,可以更全面和客观的反应一个候选人的编程功底。另外一 方面来说,对缺乏经验的编程者来说,be ready to 现场编程不是那么容易糊弄的事情,费时而且费力。面试官通常希望通过现场编程来考察应试者
1. 对编程语言的掌握;
2. 对开发环境的掌握;
3. 编程效率;
4. 结构设计能力;
5. 对数据库或者操作系统或者其它相关知识的掌握;
6. 交流、分析问题、解决问题的能力。

现 场编程一般分为两种,一种是在真实的开发环境下编程,你可以调试、调用联机帮助,直到你得到你想要的输出或者超时;另外一种是“纸上谈兵”,给你几张白纸 和一支笔,让你把代码写出来。笔者个人认为,后者更具挑战性,但也因人而异。大部分场合,面试者会让你stay alone,直到你完成编程题目(交卷)。

既然我们已经了解了面试官的企图,为了得到我们需要的offer,我们就要投其所好,尽量编出“完美”的代码。完美的代码应该:
1. 总是产生正确的输出;
2. 变量命名直观,标准统一;有合适的注释;代码结构清晰;
3. 健壮性,能够预防不正确的输入;
4. 没有明显的效率隐患;我的建议是要尽量避免O(n2)的循环;
5. 如果是用纸写的,一定要尽量做到无语法错误。

如 果你是一个初学者,你应该明白没有终南捷径可以迅速提高编程能力。你必须投入很多的时间和精力在编程练习上。考虑到编程将是你的终身职业,这些投入是非常 值得的。作者推荐一本书"progamming inerviews exposed",在mitbbs上有它的下载信息,建议读者将其中的代码全都自己再做一遍。对于C/C++程序员,还要多做些字符串处理/指针方面的题 目,本人强烈建议将string类重写一遍。这样基本上就可以对付常规现场编程题。另外,还要读一下相关语言的编程规范。比如VC++的编程规范,C++ Builder的编程规范,ASP.net的编程规范。这些资料在互联网很容易找到。参照编程规范,对于量命名、注释风格、缩进格式等形成自己的风格。

下面是针对现场编程的一些建议:

1. 现场编程是一个有效的面试手段,但仍然不能全面显示编程者的编程能力。并且现场编程有很多局限性。首先是,它只对初学者(应届毕业生)有效,对熟练的程序 员无效。其次是,由于面试时间的限制,只能给一些简单的题目,一般来说suppose代码不会超过100行。这样也给我们一个提示,如果你发现代码量要接 近或超过100行的时候,不妨重新考虑一下你要解决的问题。
2. 如果不完全懂你的assignment,一定要向面试官问清楚。当然问之前,应该先考虑一下,最好不要笼统的说“我不懂”,应该针对细节来问。运气好的话,你的问题还会给你的面试加分。比如说截取字符的时候你就可以问是不是要考虑双字节的字符比如汉字。
3. 如果是用纸写,你没有机会调试。这个时候要注意别犯低级错误,比如引用未定义/未初始化变量,大小写不区分,忘了;或者}等等。写完了要检查。
4. 如果牵涉到用户输入,先写一个空函数来检查用户输入,比如说bool CheckInputOK(){return true;}。表示你已经考虑到了这一点。有时间再fullfill这个函数,没有时间就算了。
5. 注意你的代码风格,变量名字要直观,要有注释。
6. 有时候,面试官会看着你编程。这个时候沉默不是金,一定要talk,keep talking。把你的思路说出来,自言自语但是声音大到面试官可以听见。
7. 写不完就算了,这是很常见的。即使不能拿到offer,也不是end of the world。如果虽然没有完成代码,但有清晰的思路,不妨把思路写下来。或者用空函数的方式把结构展现出来。如果面试官在你身边,和他讨论一下。BTW, 有心的人会在onsite以前就准备好得体的说辞。
8. 紧接着面试官可能会和你讨论你的代码,你要尽快从当时的情绪中摆脱出来。积极的相应面试官的吹毛求疵、提示等等。After onsite可以上网查一查资料,如果有更好的算法可以发信和他讨论。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: