程序员面试注意事项(共8篇)
程序员面试简历注意事项
据统计,80%的简历都是不合格的。不少人事管理者抱怨收到的许多简历在格式上很糟糕。简历应该如何做到在格式上简洁明了,重点突出?求职信应该如何有足够的内容推销自己?如何控制长度,言简意赅?相信读了本章你会对简历的撰写有一个新的认识。 2.1 简历注意事项 1.简历不要太长 一般的简历普遍都太长。其实简历内容过多反而会淹没一些有价值的闪光点。而且,每到招聘的时候,一个企业,尤其是大企业会收到很多份简历,工作人员不可能都仔细研读,一份简历一般只用1分钟就看完了,再长的简历也超不过3分钟。所以,简历要尽量短。我们做过一个计算,一份中文简历压缩在2页左右就可以把所有的内容突出了。1页显得求职者过于轻浮,三四页就太多了。 简历过长的一个重要原因是有的人把中学经历都写了上去,其实这完全没有必要,除非你中学时代有特殊成就,比如在奥林匹克竞赛中获过奖。一般来说,学习经历应该从大学开始写起。 很多学生的求职简历都附了厚厚一摞成绩单、荣誉证书的复印件,其实简历上可以不要这些东西,只需要在简历上列出所获得的比较重要的荣誉。如果企业对此感兴趣,会要求求职者在面试时把这些带去。 2.简历一定要真实客观 求职简历一定要按照实际情况填写,任何虚假的内容都不要写。即使有的人靠含有水分的简历得到面试的机会,面试时也会露出马脚的。千万不要为了得到一次面试机会就编写虚假简历。被招聘方发现后,你几乎就再也没有机会进入这家公司了。而且对于应届生来说,出现这种情况后,还有可能影响到同校的其他同学。 北京某高校一位计算机专业本科毕业的女孩子,简历上写的是毕业,但面试中被发现她是毕业的,而且没有任何工作经验。这女孩儿比较诚实,说是同学教她这样做的。 她这种编制虚假简历的做法应该否定,因为谁都不希望被骗。作为面试官来说,首先希望应聘者是一个诚实的人。我希望她在听到同学那个不明智的建议时,首先不应选择这种做法,其次要尽力阻止其他人这样做。因为,就像面试官代表公司形象一样,她在某种程度上也代表了她所毕业的学校来参加面试!最起码在她传达给HR的信息中,与她同专业应届生的简历可信度较差。 3.不要过分谦虚 简历中不要注水并不等于把自己的一切,包括弱项都要写进去。有的学生在简历里特别注明自己某项能力不强,这就是过分谦虚了,实际上不写这些并不代表说假话。有的求职学生在简历上写道:“我刚刚走入社会,没有工作经验,愿意从事贵公司任何基层工作。”这也是过分谦虚的表现,这会让招聘者认为你什么职位都适合,其实也就是什么职位都不适合。 4.简历要写上求职的职位 求职简历上一定要注明求职的职位。每份简历都要根据你所申请的职位来设计,突出你在这方面的优点,不能把自己说成是一个全才,任何职位都适合。不要只准备一份简历,要根据工作性质有侧重地表现自己。如果你认为一家单位有两个职位都适合你,可以向该单位同时投两份简历。 在我曾看到的一些简历中,经常有如下的错误:简历上描述的多为Windows操作系统下C/C++开发经验,但申请的目标职位为“Linux操作系统下的C/C++开发工程师”。这样当然不容易得到应聘职位的面试机会。还有就是去应聘ERP、CRM方面的职位,而简历里却大肆强调自己在嵌入式编程方面的优势。就算你非常优秀,你对这个企业还是没有用处。 有些简历里面没有详细的项目描述及责任描述,在责任描述栏仅仅填写“软件开发”或者在工作业绩栏仅仅填写“可以”两字。这样的信息传达无疑是不成功的。 作为求职的开始,我们要编写一份或者几份有针对性的简历,也就是按照对方的要求突出自己相关的经历。只要你的优势与招聘方的需要吻合,并且比其他应聘者突出的话,你就胜利了。 5.在文字、排版、格式上不要出现错误 用人单位最不能容忍的事是简历上出现错别字或是在格式、排版上有技术性错误,以及简历被折叠得皱皱巴巴、有污点,这会让用人单位认为你连自己求职这样的事都不用心,那工作也不会用心。 6.简历不必做得太花哨 一般来说简历不必做得太花哨,用质量好一些的白纸就可以了,尽量用A4规格的纸。曾看到过一份简历封面上赫然写着4个大字“通缉伯乐”,给人的感觉就像是在威胁用人单位。现在学生简历中比较流行做封面的形式,其实没有必要,这会增加简历的厚度,实际上完全可以不用封皮。 7.简历言辞要简洁直白 大学生的求职简历很多言辞过于华丽,形容词、修饰语过多,这样的简历一般不会打动招聘者。简历最好多用动宾结构的句子,简洁直白。 8.不要写上对薪水的要求 在简历上写上对工资的要求要冒很大的风险,最好不写。如果薪水要求太高,会让企业感觉雇不起你;如果要求太低,会让企业感觉你无足轻重。对于刚出校门的大学生来说,第一份工作的薪水不重要,不要在这方面费太多脑筋。 9.不要写太多个人情况 不要把个人资料写得如此详细,姓名、电话是必需的,出生年月可有可无。如果应聘国家机关、事业单位,应该写政治面貌。如果到外企求职,这一项也可省去,其他都可不写。 10.不要用怪字怪体 我见过一份简历,用中空字体,还有斜体字。这些都是很忌讳的。试想一个HR挑了一天的简历,很累了,还要歪着头看你的简历。你想你的胜算能有多大?其实用简单的宋体5号字就很好了,不用标新立异。 笔试,电话面试,面试,是顺利求职的`3个过程。三关全过才能顺利签约,只要有一关没能通过,就会被“刷”掉。 3.1 笔试 我认为笔试是程序员面试3个过程中最重要的一个环节,也是最难以提升的一个环节。本书中主要叙述的也是程序员的笔试经历。不论你有多么大的才干,多么广博的知识,如果未能通过笔试,则无缘下面的进程。下面是一个表,描述了各种IT公司笔试所考题目的类型。 公 司 名 称 公 司 类 型 笔 试 内 容 Trend 网络公司 C++ 或Java,网络,数据库,设计模式,智力测试,英语阅读 SAP 软件咨询,ERP,CRM C++,概率问题,设计模式,智力测试 Advantech 硬件,自动化公司 C++(尤其是指针问题),嵌入式编程 Synopsys 电子类公司 C++(尤其是指针问题),数据结构 NEC 综合软件公司 C,数据结构 金山 综合软件公司 C++或PHP,数据库,数据结构,设计模式 华为 通信公司 C++或Java,数据结构,数据库 中兴 通信公司 C++或Java,数据结构,数据库 VIA 硬件公司 C++(尤其是指针问题),嵌入式编程 华为3COM 网络公司 C++,网络 SPSS 数据统计软件公司 C++(尤其是继承、多态问题),数据结构 (续表) 公 司 名 称 公 司 类 型 笔 试 内 容 Sybase 数据库公司 C++,Linux,UNIX Motorola 网络公司 C++,网络 IBM 综合软件公司 C++或Java Oracle 数据库公司 Java,数据库 HP 综合软件公司 C++ 腾讯 综合软件公司 C++ Yahoo 综合软件公司 C++或Java或C# 微软 综合软件公司 C++,数据结构,智力测试 神州数码 金融软件公司 C++或Java,数据结构,数据库(SQL) 大唐移动 通信公司 C++ Siemens 数据通信公司 C++,设计模式 Grapecity 软件公司 C++,C#,智力测验 根据上表,对各大IT公司的笔试题目和所考的内容,我们可以窥见一斑,并得出以下几个结论。 1.语言的偏向性 综合上表所示,IT公司笔试在编程语言上有一定偏向性,以C、C++为主或者是以Java为主。语言本身并没有什么高低贵贱之分,但相对来说,考到Delphi或者VB的可能性很小。作为应届毕业生,如果只是学过VB、VF却从来没有接触过C系语言,则在笔试中是比较吃亏的。 2.英语的重要性 我所经历过的外企的笔试卷子基本上都是英语试卷,无论从出题到解答,都是让你用英文去回答,所以必须有很好的英文阅读能力,这也是外企招人对英语非常看重的原因。其实也不需要一定通过六级,但一定要有相对多的单词量,能够看懂考题的意思。然后按自己的想法组织语言来描述就可以。 国内企业一般对外语要求不是很看重,题目也是中文的。如果不想进外企的话,也不用特别准备英语。 3.淡看智力测试 之所以要强调这一点,是和市面上过度强调外企智力测试有关。实际上笔者参加过的微软等外企笔试,智力测试只占很小的比例,约3%~5%左右。而华为、神州数码等国内IT企业基本上没有智力测试,完全是技术考试。所以奉劝大家不要把精力都投在所谓的外企智力测试上面,还是应该以准备技术方面的笔试为主。 4.有的放矢准备简历 不同的公司会考不同的内容,这就像高中时准备不同科目考试的差别。比如说神州数码不会考嵌入式编程,而VIA考设计模式的可能性很小。一般有点儿偏“硬”的IT公司会对C++中指针的用法、数据结构考得比较多。偏“软”的企业会对设计模式、模板着重一些。所以本书分得很细,力求对各种IT公司的笔试题目做一个详尽的阐述。 作为求职者,笔试前你要首先搞清这个公司的基本情况,它是做什么的,它有什么产品,你是学什么方面的。有的放矢才能折桂。 5.纸上写程序 搞计算机的肯定不习惯在纸上写程序,然而技术面试的时候这是面试官最常用的一招。让写的常见程序有:数据结构书上的程序,经典C程序(strcmp、strcpy、atoi……),C++程序(表现C++经典特性的)。第一次在面试官眼皮底下在纸上写程序,思路容易紊乱。建议大家事先多练习,找个同学坐在边上,在他面前写程序,把该同学当成面试官。经过多次考验,在纸上写程序就基本不慌了。 每次面试总会有些问题回答得不好,回来之后一定要总结,把不懂的问题搞明白。一个求职者就碰到两家公司问了同样的问题,第一次答不出,回去没查,第二次又被问到,当然这是很郁闷的事情。 3.2 电话面试 电话面试主要是对简历上一些模糊信息的确认、之前经历的验证、针对应聘职位简单技术问题的提问,以及英文方面的考查。 由于模式的限制,电话面试时间不会很长。在这个环节中,一定要表现得自信、礼貌、认真、严肃,这样会在声音上给对方一个良好的印象。如果声音慵懒,语气生硬,除非是技术题目及英文方面表现得足够好,否则很难予以平衡。 在回答电话面试的问题时,不要过于紧张,要留心对方的问题,这些问题也许在当面的面试中还会再出现。如果对方在电话面试中要求你做英文的自我介绍,或者干脆用英文和你对话,那在电话面试结束后一定要好好准备英文面试的内容。 笔者曾经参加过Thoughtworks、Sybase、SAP、麒麟原创等公司的电话面试。外企一般都会要求你做一个英文自我介绍和一些小问题,总的来说不会太过涉及技术方面,因为用英语来描述技术对国人而言还是有一定困难的。国企会问到技术问题,我就曾被问到如何在C++中调用C程序、索引的分类等技术问题,回答基本上要靠平时的积累和对知识的掌控能力。电话面试的具体内容可参见第18章。 3.3 面试 一个比较好的面试是能够问出求职者擅长哪方面而哪方面不足的面试。如果面试官针对求职者不足之处穷追猛打,或是炫耀自己的才能,这是不足取的。 对于求职者而言,面试是重点环节,要守时是当然的了。如果不能按时参加面试,最好提前通知对方。着装上不需要过分准备,舒服、干净就好了。一般的IT公司对技术人员都不会有很高的着装要求。虽然着装不要求,但精神状态一定要好。饱满的精神状态会显得你很自信。 有笔试的话(有时笔试和面试是同时进行的,即面试官会在提问后请你回答并写下详细描述),也无非是与应聘职位相关的技术考查或者英文考查,如英汉互译等。应视你应聘职位的等级进行准备。 应聘初级职位,会针对你的编程能力和以往的项目经验进行重点的考查。如果面试官针对你做的某个项目反复提问,那么你就需要注意了,要么面试官在这个方面特别精通,要么就是未来的职位需要用到这方面的技术。我们应该抱着一种诚恳的态度来回答,对熟悉的技术点可以详细阐述,对于不熟悉的部分可以诚实地告诉面试官,千万不要不懂装懂。不过,我们同意可以引导与面试官的谈话,把他尽量引导到我们所擅长的领域。在SPSS公司面试时,在回答完面试官单链表逆置和拷贝构造函数问题之后,我把话题引入了我所擅长的设计模式方面,这是一种谈话的艺术。 应聘中级职位,不但会考查代码编写,而且会对软件架构或相关行业知识方面进行考查。代码编写方面,主要以考查某种编程技巧来判断你对代码的驾驭能力。比如某国际知名软件公司经常会让面试者编写malloc或atoi函数。越是简单的函数越能考验应聘者的编码能力。你不但要实现功能,而且还要对可能出现的错误编写防御性代码,这些经验都需要在实际编程过程中积累。 应聘高级职位,应聘者肯定对技术或某个行业有相当程度的了解,这时主要是看你与职位的契合程度、企业文化的配比性(即将人力资源及成本配比作为服务体系的重要组成部分,将公司企业文化中核心理念及价值观作为客户服务的重要媒介)及整体感觉。应聘管理职位的话,考查的更多是管理技巧、沟通技巧和性格因素。架构师一般会考查行业背景与软件架构方面的知识,比如UML或建模工具的使用等;技术专家的职位则会针对相关技术进行深度考查,而不会再考查一般性的编码能力。 面谈的时候,要与面试官保持目光接触,显示出你的友好、真诚、自信和果断。如果你不与对方保持目光接触,或者习惯性地瞟着左上角或者右上角的话,会传达给对方你对目前话题表现冷淡、紧张、说谎或者缺乏安全感的感觉。 如果对方问到的某个问题你不是很熟悉,有一段沉默的话,请不要尴尬和紧张。面试过程中允许沉默,你完全可以用这段时间来思考。可以用呼吸调整自己的状态。如果过于紧张,可以直接告诉对方。表达出自己的紧张情绪,能够起到很好的舒缓作用。而且紧张本来也是正常的表现。 在面试过程中,应聘者也保有自己的权利。比如面试时间过长,从上午一直拖到下午,而你未进午餐就被要求开始下午的面试的话,你完全可以要求进餐后再开始。面试是一个双方信息沟通及达成合作目的的会谈,是一个双方彼此考量和认知的过程。不要忽略自己应有的权利。 面谈后,如果对方觉得你技术、沟通、态度各方面都不错,也许会增加一个素质测评确认一下对你的判断。 素质测评一般考查性格、能力、职业等方面,以判断你的价值观是否与企业相符。我们不需要去猜测这些题目到底要考查些什么,凭着你的第一感觉填写就可以了。在几十道甚至上百道题目中,都有几道题是从不同角度考查一个方向的,凭猜测答题反而会前后有悖。 当然,要先看清楚题目,搞清楚是选择一个最适合你自己的,还是描述得最不恰当的。在通过面试之后,如果有多家公司和职位的Offer可以选择的话,我们可以将公司的行业排名、公司性质、人员规模、发展前景、企业文化、培训机制,结合自身的生活水平、职业生涯发展规划来进行排列,选出最适合自己的公司和职位。 建议准备一个日程本,记录每一次宣讲会、笔试和面试的时间,这样一旦公司打电话来预约面试,可以马上查找日程本上的空闲时间,不至于发生时间上的冲突。每投一份简历,记录下公司的职位和要求,如果一段时间以后(1个月或更长)有面试机会,可以翻出来看看,有所准备。根据不同的公司,准备不同的简历,千万不要一概而论,不同的公司care(在意)的东西不一样。每参加完一次笔试或面试,把题目回忆一下,核对一下答案,不会做的题目更要好好弄懂。同学们之间信息共享,总有人有你没有的信息。如果投了很多份简历,一点儿回音都没有,你得好好看看简历是否有问题,增加一些吸引HR眼球的东西。
出版时间:2014-01-01
ISBN:9787111444343
所属分类:
图书>计算机与互联网>编程语言与程序设计
顶级软件公司的程序设计面试通常是很艰难的, 即使是非常优秀的程序员, 如果没有经历过这类面试并进行充分的准备, 也很难通过。拥有扎实的编程技能和丰富的计算机基础知识通常还不足以让你轻松通过这类面试, 你还需要掌握面试中的沟通技巧与答题技巧。这样才能在有限的面试时间中让面试官了解你的真实能力。
本书深入探究了顶级软件公司的程序设计面试过程, 并且对可能出现的面试题目进行了分类汇总, 引导你学习解决各类问题的方法.而不是通过罗列大量面试问题, 通过死记硬背来教你准备程序设计面试。此外, 由于程序设计题目干变万化, 通过死记硬背不能给你通过面试带来实质性的帮助。
耀明的面试时间是上午9时。文军的面试时间是下午2时。他们考核的内容是一样的,回答的是同样的五个问题。
第一个问题:是什么促使你来我们公司应聘?
耀明回答:我现在的单位效益不好,我的一些下属都跳槽到外企和合资企业去了,干得都不错,收入比我高许多。我想,我的能力、经验要高于他们,所以一定能胜任贵公司的工作。
文军回答:我看到了贵公司的广告,经过仔细考虑,我认为自己具备贵公司要求的条件,能够胜任贵公司的工作。
第二个问题:你以前知道我们公司吗?
耀明回答:听说过!贵公司是大公司,可以说是“家喻户晓、妇孺皆知”,嗯,也可以说是“人见人爱”呀。
文军回答:知道。我对贵公司有一定的了解。我读过一些介绍贵公司的书和文章,对贵公司的经营理念和企业文化深表赞同。
第三个问题:你的履历表上列出了成就和爱好,还有什么强调或补充吗?
耀明回答:我最重要的一项成就,应该是参加全国商业系统“现代企业管理”研讨会,论文获一等奖;最大的爱好是踢足球。
文军回答:我毕业后一直做管理工作,也取得了一些成就,但那只能说明我的部分能力,也只能代表过去。至于爱好嘛,我实际上一直是把工作放在第一位的。
第四个问题:你能评价一下原来所在的公司吗?
耀明回答:我工作的那家公司是国营企业,在计划经济时期还不错,现在不行了。领导思想僵化,跟不上潮流,我早就想出来了,一直没有合适的机会。
文军回答:我原来的公司也是一家不错的公司,领导对我很重视,我的职位、成就便是很好的证明。但是我想贵公司能够给我提供更广阔的发展空间,来展现我的才能。
第五个问题:本公司出色的业务经理,收入高于中层管理人员。如果本公司向你提供业务经理的岗位,你愿意接受吗?
耀明回答:我从毕业就一直在公司做管理工作,管理是我的强项,但业务经理的工作我没干过。
文军回答:能加盟贵公司是我的荣幸。虽然我认为在管理的岗位上更有利于我长处的发挥,能更多地给公司贡献我的才能,但业务经理这个职位我也会认真考虑的。如果最终我能得到这一职位,我相信,我能做得很好,不会辜负公司的信任。
三天过去了,结果耀明未被录用,而文军进入了下一轮,最后被聘为经营部部长助理。
从耀明和文军的面试过程中,我们可以总结出首次面试的六项注意:
1.要表现出对应聘单位和业务的了解和热爱
热爱是最好的老师,也是最好的自荐函。在面试中,你对业务的热爱和精通会感染面试官,会让他做出有利于你的选择。面试之前,还应对该单位及主要人物的情况做一些了解,这样你就会有别于其他的应聘者,在时间有限的面试中谈及比较深入的内容。此外,每个人都希望被关注,如果你对用人单位的情况有很全面的了解,也就是在向他释放这样一个信号:我很在意贵单位,我很重视这次面试,我很尊重您的成就。
2.不要明确表示你只想要什么工作或职务
你去应聘某个职位,面试官可能会认为你并不特别适合你期望的岗位,而认为其他岗位适合你;面试官还可能认为你很优秀,但没有一个现成的岗位能让你十分满意。这时,如果你把自己限定在某个特定的职位或目标上,他们会误以为你对其他岗位不感兴趣,因而不提出建议。那会使你成功的机会减少。当然,也要小心那种借其他岗位之名,招聘某个特定岗位的公司,比如有些公司打出招聘业务经理、培训讲师的幌子,结果对前来应聘的人一律往销售人员上引导。
3.强调对方能够感兴趣的技能和相关经验
要清楚他们考核你采用的主要衡量标准。他们希望听到的是,你喜欢这份工作并具有他们所要求的技能。你必须采用某种方式告诉对方:你会满足他们的需求!在谈及你的工作能力和工作成绩时,要谈的不一定是你经历中最辉煌的部分。对面试官来说,与你所应聘的工作岗位相关的那一部分职业特质才是他们感兴趣的。
4.不谈或少谈原来供职过的公司
应聘这一行为本身已表明你对原单位某种程度的不满意。如果表现出相当程度的厌恶,容易使人感到你对已得到的东西缺乏感恩之情。原公司毕竟曾满足过你的某些需求,新公司也不能肯定会成为你最后一家供职单位。凡事都可能成为过去,谁愿意任用“忘恩负义”的人呢?
5.表明你关注的是工作机会,并非职位
说明你应聘的理由是你具备胜任这份工作的能力,愿意为之贡献力量。不要让对方感到你急需工作才来应聘,更不要使用乞求的方式。要使他们相信,他们需要你这一类人才,而你是在寻找更能体现自我价值的机会,而不是在寻找一个职位。
6.在首次面试中不要过分强调报酬
一些Java软件工程师求职者们,可能因为种种原因,对Java语言及其深层原理掌握不牢固,以至于在面试中犯各种错误。本期乔布简历小编将为大家带来的主题是java程序员面试经验,一起来了解一下java程序员面试宝典吧~
关键词:java程序员面试宝典,java程序员面试经验
以下是一些java程序员面试需要注意的地方:
1、对于此类岗位而言,具体的项目是用人单位招聘时最看重的参考因素。即便是没有工作经验的应届生,也要准备可作为自己能力参考的具体作品。如果从未参加过任何项目,可以准备自己在相关领域的课程设计,如有必要还可以将其修改为完整的项目。对于这份具体作品,求职者要有相当的了解。通过求职者对于该作品的讲解,招聘官会判断求职者的技术能力到底如何。
2、Java程序员要求掌握的技能会比较多,求职者在简历上可以分类依次列举出自己所掌握的专业技能,有证书的列出自己所持有的证书名称。在面试的时候,可以对自己所掌握的技能做出介绍,并辅以实例证明,这样会更具有说服力。
3、基础很重要,不要生疏了。不管应聘什么程序员岗位,基础永远都是最重要的。只有有了踏实的基础,再辅以较好的学习能力,这样才不会被互联网日新月异的变化甩开。很多程序员在面试时往往是因为答不出最基础的问题才会错失工作机会。面试前巩固一下基础知识,永远不要轻视了基础。
程序员要时刻关注技术前沿,将新技术与自己所从事的工作联系到一起,做一些深入思考,面试时谈谈这样的问题也是向面试官展现自己学习能力的好机会~
你要面试一个程序员,应该问他什么问题?
首先,最重要的是,你自己一开始就应该想清楚:
1. 需要新员工完成什么样的任务?
2. 怎样的人能完成这样的任务?
3. 哪些途径和方法可以发现这样的人?
只有明确这些根本性的问题,才能正确高效地完成面试,
假定你对上一节的三个问题,已经有了清晰的想法,那么接下来就可以设计如何提问了。
有一些提问的原则,是你应该遵循的:
每一个面试问题都有明确的目的。你不仅自己了解,还能向其他面试官解释清楚。
多提一些开放性(Open-ended)的问题,而不是那种用Yes/No就可以回答的问题。这样做使你有机会与面试者展开讨论,并且提出后续的问题,尽可能多地了解对方。
不要问宗教、家庭、健康、个人隐私等方面的问题。
不要问太复杂的问题,
因为面试者没有太多思考时间,所以无法周全地回答,你也就无从判断他的能力了。
为了确认面试者是胜任的,你可以问一些与职位相关的专业方面的问题。(不过通常来说,一次面试不足以看出一个人的专业能力。)
比如,你的招聘职位是系统管理员,你可以问如何快速地在50台机器上部署Linux?(提示:正确答案不是刻录50张安装光盘。)
另外,你还应该向面试者了解他的过去,因为过去是未来的最好预测依据。不过,提问的`重点不要仅仅是他过去的成果,更要关注在当时的环境中,他是如何决策和实施的。
因为人是会发展的,所以某种程度上,面试者的综合素质要比他的专业能力更重要。
所以,具体的技术问题(如何调用API、什么是设计模式、编程语言的语法等等)可以少问一些,更应该关注面试者的事业心、对工作的热情、进取心、自律能力、毅力等方面。
下面是一些典型问题:
答案:先行者在桌子中心放置一枚硬币,以后的硬币总是放在与后行者刚才放的地方相对称的位置。这样,只要后行者能放,先行者一定也有地方放。先行者必胜。
2.用线性时间和常数附加空间将一篇文章的单词(不是字符)倒序。
答案:先将整篇文章的所有字符逆序(从两头起不断交换位置相对称的字符);然后用同样的办法将每个单词内部的字符逆序。这样,整篇文章的单词顺序颠倒了,但单词本身又被转回来了。
3.用线性时间和常数附加空间将一个长度为n的字符串向左循环移动m位(例如,“abcdefg”移动3位就变成了“defgabc”)。答案:把字符串切成长为m和n-m的两半。将这两个部分分别逆序,再对整个字符串逆序。
4.一个矩形蛋糕,蛋糕内部有一块矩形的空洞。只用一刀,如何将蛋糕切成大小相等的两块?
答案:注意到平分矩形面积的线都经过矩形的中心。过大矩形和空心矩形各自的中心画一条线,这条线显然把两个矩形都分成了一半,它们的差当然也是相等的。
5.一块矩形的巧克力,初始时由N x M个小块组成。每一次你只能把一块巧克力掰成两个小矩形。最少需要几次才能把它们掰成N x M块1x1的小巧克力?
答案:N x M1次。
6.如何快速找出一个32位整数的二进制表达里有多少个“1”?用关于“1”的个数的线性时间?
答案1(关于数字位数线性):for(n=0;b;b >>= 1)if(b & 1)n++;
答案2(关于“1”的个数线性):for(n=0;b;n++)b &= b-1;
7.一个大小为N的数组,所有数都是不超过N-1的正整数。用O(N)的时间找出重复的那个数(假设只有一个)。一个大小为N的数组,所有数都是不超过N+1的正整数。用O(N)的时间找出没有出现过的那个数(假设只有一个)。
答案:计算数组中的所有数的和,再计算出从1到N-1的所有数的和,两者之差即为重复的那个数。计算数组中的所有数的和,再计算出从1到N+1的所有数的和,两者之差即为缺少的那个数。
8.给出一行C语言表达式,判断给定的整数是否是一个2的幂。
答案:(b &(b-1))== 0
9.地球上有多少个点,使得从该点出发向南走一英里,向东走一英里,再向北走一英里之后恰好回到了起点?
答案:“北极点”是一个传统的答案,其实这个问题还有其它的答案。事实上,满足要求的点有无穷多个。所有距离南极点1 + 1/(2π)英里的地方都是满足要求的,向南走一英里后到达距离南极点1/(2π)的地方,向东走一英里后正好绕行纬度圈一周,再向北走原路返回到起点。事实上,这仍然不是满足要求的全部点。距离南极点1 + 1/(2kπ)的地方都是可以的,其中k可以是任意一个正整数。
10.A、B两人分别在两座岛上。B生病了,A有B所需要的药。C有一艘小船和一个可以上锁的箱子。C愿意在A和B之间运东西,但东西只能放在箱子里。只要箱子没被上锁,C都会偷走箱子里的东西,不管箱子里有什么。如果A和B各自有一把锁和只能开自己那把锁的钥匙,A应该如何把东西安全递交给B?
答案:A把药放进箱子,用自己的锁把箱子锁上。B拿到箱子后,再在箱子上加一把自己的锁。箱子运回A后,A取下自己的锁。箱子再运到B手中时,B取下自己的锁,获得药物。
11.一对夫妇邀请N-1对夫妇参加聚会(因此聚会上总共有2N人)。每个人都和所有自己不认识的人握了一次手。然后,男主人问其余所有人(共2N-1个人)各自都握了几次手,得到的答案全部都不一样。假设每个人都认识自己的配偶,那么女主人握了几次手?答案:握手次数只可能是从0到2N-2这2N-1个数。除去男主人外,一共有2N-1个人,因此每个数恰好出现了一次。其中有一个人(0)没有握手,有一个人(2N-2)和所有其它的夫妇都握了手。这两个人肯定是一对夫妻,否则后者将和前者握手(从而前者的握手次数不再是0)。除去这对夫妻外,有一个人(1)只与(2N-2)握过手,有一个人(2N-3)和除了(0)以外的其它夫妇都握了手。这两个人肯定是一对夫妻,否则后者将和前者握手(从而前者的握手次数不再是1)。以此类推,直到握过N-2次手的人和握过N次手的人配成一对。此时,除了男主人及其配偶以外,其余所有人都已经配对。根据排除法,最后剩下来的那个握手次数为N-1的人就是女主人了。
12.两个机器人,初始时位于数轴上的不同位置。给这两个机器人输入一段相同的程序,使得这两个机器人保证可以相遇。程序只能包含“左移n个单位”、“右移n个单位”,条件判断语句If,循环语句while,以及两个返回Boolean值的函数“在自己的起点处”和“在对方的起点处”。你不能使用其它的变量和计数器。
答案:两个机器人同时开始以单位速度右移,直到一个机器人走到另外一个机器人的起点处。然后,该机器人以双倍速度追赶对方。程序如下。
while(!at_other_robots_start){
move_right 1
}
while(true){
move_right 2
}
13.如果叫你从下面两种游戏中选择一种,你选择哪一种?为什么?
a.写下一句话。如果这句话为真,你将获得10美元;如果这句话为假,你获得的金钱将少于10美元或多于10美元(但不能恰好为10美元)。
b.写下一句话。不管这句话的真假,你都会得到多于10美元的钱。
答案:选择第一种游戏,并写下“我既不会得到10美元,也不会得到10000000美元”。
14.你在一幢100层大楼下,有21根电线线头标有数字1..21。这些电线一直延伸到大楼楼顶,楼顶的线头处标有字母A..U。你不知道下面的数字和上面的字母的对应关系。你有一个电池,一个灯泡,和许多很短的电线。如何只上下楼一次就能确定电线线头的对应关系?
答案:在下面把2,3连在一起,把4到6全连在一起,把7到10全连在一起,等等,这样你就把电线分成了6个“等价类”,大小分
别为1, 2, 3, 4, 5, 6。然后到楼顶,测出哪根线和其它所有电线都不相连,哪些线和另外一根相连,哪些线和另外两根相连,等等,从而确定出字母A..U各属于哪个等价类。现在,把每个等价类中的第一个字母连在一起,形成一个大小为6的新等价类;再把后5个等价类中的第二个字母连在一起,形成一个大小为5的新等价类;以此类推。回到楼下,把新的等价类区别出来。这样,你就知道了每个数字对应了哪一个原等价类的第几个字母,从而解决问题。
15.某种药方要求非常严格,你每天需要同时服用A、B两种药片各一颗,不能多也不能少。这种药非常贵,你不希望有任何一点的浪费。一天,你打开装药片A的药瓶,倒出一粒药片放在手心;然后打开另一个药瓶,但不小心倒出了两粒药片。现在,你手心上有一颗药片A,两颗药片B,并且你无法区别哪个是A,哪个是B。你如何才能严格遵循药方服用药片,并且不能有任何的浪费?
答案:把手上的三片药各自切成两半,分成两堆摆放。再取出一粒药片A,也把它切成两半,然后在每一堆里加上半片的A。现在,每一堆药片恰好包含两个半片的A和两个半片的B。一天服用其中一堆即可。
16.你在一个飞船上,飞船上的计算机有n个处理器。突然,飞船受到外星激光武器的攻击,一些处理器被损坏了。你知道有超过一半的处理器仍然是好的。你可以向一个处理器询问另一个处理器是好的还是坏的。一个好的处理器总是说真话,一个坏的处理器总是说假话。用n-2次询问找出一个好的处理器。
答案:给处理器从1到n标号。用符号a->b表示向标号为a的处理器询问处理器b是不是好的。首先问1->2,如果1说不是,就把他们俩都去掉(去掉了一个好的和一个坏的,则剩下的处理器中好的仍然过半),然后从3->4开始继续发问。如果1说2是好的,就继续问2->3,3->4,……直到某一次j说j+1是坏的,把j和j+1去掉,然后问j-1-> j+2;或者从j+2-> j+3开始发问,如果前面已经没有j-1了(之前已经被去掉过了)。注意到你始终维护着这样一个“链”,前面的每一个处理器都说后面那个是好的。这条链里的所有处理器要么都是好的,要么都是坏的。当这条链越来越长,剩下的处理器越来越少时,总有一个时候这条链超过了剩下的处理器的一半,此时可以肯定这条链里的所有处理器都是好的。或者,越来越多的处理器都被去掉了,链的长度依旧为0,而最后只剩下一个或两个处理器没被问过,那他们一定就是好的了。另外注意到,第一个处理器的好坏从来没被问过,仔细想想你会发现最后一个处理器的好坏也不可能被问到(一旦链长超过剩余处理器的一半,或者最后没被去掉的就只剩这一个了时,你就不问了),因此询问次数不会超过n-2。
17.一个圆盘被涂上了黑白二色,两种颜色各占一个半圆。圆盘以一个未知的速度、按一个未知的方向旋转。你有一种特殊的相机可以让你即时观察到圆上的一个点的颜色。你需要多少个相机才能确定圆盘旋转的方向?
答案:你可以把两个相机放在圆盘上相近的两点,然后观察哪个点先变色。事实上,只需要一个相机就够了。控制相机绕圆盘中心顺时针移动,观察颜色多久变一次;然后让相机以相同的速度逆时针绕着圆盘中心移动,再次观察变色的频率。可以断定,变色频率较慢的那一次,相机的转动方向是和圆盘相同的。
今天考完美国结构语言学,稍微轻松了一些。我把前几天向大家推荐的网页好好看了一遍,挑选了10个比较精彩的、不是很常见的、本Blog之前没有提过的智力题,并且把它们都整理到了一起,与大家一同分享。希望大家能够大呼过瘾~
1.给一个瞎子52张扑克牌,并告诉他里面恰好有10张牌是正面朝上的。要求这个瞎子把牌分成两堆,使得每堆牌里正面朝上的牌的张数一样多。瞎子应该怎么做?
答案:把扑克牌分成两堆,一堆10张,一堆42张。然后,把小的那一堆里的所有牌全部翻过来。
2.如何用一枚硬币等概率地产生一个1到3之间的随机整数?如果这枚硬币是不公正的呢?
答案:如果是公正的硬币,则投掷两次,“正反”为1,“反正”为2,“正正”为3,“反反”重来。
如果是不公正的硬币,注意到出现“正反”和“反正”的概率一样,因此令“正反反正”、“反正正反”、“正反正反”分别为1、2、3,其余情况重来。另一种更妙的办法是,投掷三次硬币,“正反反”为1,“反正反”为2,“反反正”为3,其余情况重来。
3.30枚面值不全相同的硬币摆成一排,甲、乙两个人轮流选择这排硬币的其中一端,并取走最外边的那枚硬币。如果你先取硬币,能保证得到的钱不会比对手少吗?
答案:先取者可以让自己总是取奇数位置上的硬币或者总是取偶数位置上的硬币。数一数是奇数位置上的面值总和多还是偶数位置上的面值总和多,然后总是取这些位置上的硬币就可以了。
4.一个环形轨道上有n个加油站,所有加油站的油量总和正好够车跑一圈。证明,总能找到其中一个加油站,使得初始时油箱为空的汽车从这里出发,能够顺利环行一圈回到起点。
答案:总存在一个加油站,仅用它的油就足够跑到下一个加油站(否则所有加油站的油量加起来将不够全程)。把下一个加油站的所有油都提前搬到这个加油站来,并把油已被搬走的加油站无视掉。在剩下的加油站中继续寻找油量足以到达下个加油站的地方,不断合并加油站,直到只剩一个加油站为止。显然从这里出发就能顺利跑完全程。
另一种证明方法:先让汽车油箱里装好足够多的油,随便从哪个加油站出发试跑一圈。车每到一个加油站时,记录此时油箱里剩下的油量,然后把那个加油站的油全部装上。试跑完一圈后,检查刚才路上到哪个加油站时剩的油量最少,那么空着油箱从那里出发显然一定能跑完全程。
5.初始时,两个口袋里各有一个球。把后面的n-2个球依次放入口袋,放进哪个口袋其概率与各口袋已有的球数成正比。这样下来,球数较少的那个口袋平均期望有多少个球?
答案:先考虑一个看似无关的问题——怎样产生一个1到n的随机排列。首先,在纸上写下数字1;然后,把2写在1的左边或者右边;然后,把3写在最左边,最右边,或者插进1和2之间……总之,把数字i等概率地放进由前面i-1个数产生的(包括最左端和最右端在内的)共i个空位中的一个。这样生成的显然是一个完全随机的排列。
我们换一个角度来看题目描述的过程:假想用一根绳子把两个球拴在一起,把这根绳子标号为1。接下来,把其中一个小球分裂成两个小球,这两个小球用标号为2的绳子相连。总之,把“放进第i个球”的操作想象成把其中一个球分裂成两个用标有i-1的绳子相连的小球。联想我们前面的讨论,这些绳子的标号事实上是一个随机的全排列,也就是说最开始绳子1的位置最后等可能地出现在每个地方。也就是说,它两边的小球个数(1,n-1)、(2,n-2)、(3,n-3)、……、(n-1,1)这n-1种情况等可能地发生。因此,小袋子里的球数大约为n/4个。准确地说,当n为奇数时,小袋子里的球数为(n+1)/4;当n为偶数时,小袋子里的球数为n^2/(4n-4)。
6.考虑一个n*n的棋盘,把有公共边的两个格子叫做相邻的格子。初始时,有些格子里有病毒。每一秒钟后,只要一个格子至少有两个相邻格子染上了病毒,那么他自己也会被感染。为了让所有的格子都被感染,初始时最少需要有几个带病毒的格子?给出一种方案并证明最优性。
答案:至少要n个,比如一条对角线上的n个格子。n个格子也是必需的。当一个新的格子被感染后,全体被感染的格子所组成的图形的周长将减少0个、2个或4个单位(具体减少了多少要看它周围被感染的格子有多少个)。又因为当所有格子都被感染后,图形的周长为4n,因此初始时至少要有n个被感染的格子。
7.在一个m*n的棋盘上,有k个格子里放有棋子。是否总能对所有棋子进行红蓝二染色,使得每行每列的红色棋子和蓝色棋子最多差一个?
答案:可以。建一个二分图G(X,Y),其中X有m个顶点代表了棋盘的m个行,Y有n个顶点代表了棋盘的n个列。第i行第j列有棋子就在X(i)和Y(j)之间连一条边。先找出图G里的所有环(由于是二分图,环的长度一定是偶数),把环里的边红蓝交替染色。剩下的没染色的图一定是一些树。对每棵树递归地进行操作:去掉一个叶子节点和对应边,把剩下的树进行合法的红蓝二染色,再把刚才去掉的顶点和边加回去,给这个边适当的颜色以满足要求。
8.任意给一个8*8的01矩阵,你每次只能选一个3*3或者4*4的子矩阵并把里面的元素全部取反。是否总有办法把矩阵里的所有数全部变为1?
答案:不能。大矩阵中有36个3*3的小矩阵和25个4*4的小矩阵,因此总共有61种可能的操作。显然,给定一个操作序列,这些操作的先后顺序是无关紧要的;另外,在一个操作序列中使用两种或两种以上相同的操作也是无用的。因此,实质不同的操作序列只有2^61种。但8*8的01矩阵一共有2^64种,因此不是每种情况都有办法达到目的。
9.五个洞排成一排,其中一个洞里藏有一只狐狸。每个夜晚,狐狸都会跳到一个相邻的洞里;每个白天,你都只允许检查其中一个洞。怎样才能保证狐狸最终会被抓住?
答案:按照2, 3, 4, 2, 3, 4的顺序检查狐狸洞可以保证抓住狐狸。为了说明这个方案是可行的,用集合F表示狐狸可能出现的位置,初始时F = {1, 2, 3, 4, 5}。如果它不在2号洞,则第二天狐狸已经跑到了F = {2, 3, 4, 5}。如果此时它不在3号洞,则第三天狐狸一定跑到了F = {1, 3, 4, 5}。如果此时它不在4号洞,则再过一晚后F = {2, 4}。如果此时它不在2号洞,则再过一天F = {3, 5}。如果此时它不在3号洞,再过一天它就一定跑到4号洞了。
方案不是唯一的,下面这些方案都是可行的:
2, 3, 4, 4, 3, 2
4, 3, 2, 2, 3, 4
4, 3, 2, 4, 3, 2
10.一个经典老题是说,把一个3*3*3的立方体切成27个单位立方体,若每一刀切完后都允许重新摆放各个小块的位置,最少可以用几刀?答案仍然是6刀,因为正中间那个单位立方体的6个面都是后来才切出来的,因此怎么也需要6刀。考虑这个问题:若把一个n*n*n的立方体切成一个个单位立方体,最少需要几刀?
1免疫程序
1日龄:鸡马立克氏病疫苗, 皮下注射。在雏鸡出壳后24h内, 将疫苗稀释于专用稀释液中, 按照疫苗规定剂量, 颈部皮下注射。
5日龄:鸡新城疫-传染性支气管炎 (肾型传染性支气管炎) 二联多价苗, 1头份, 滴鼻或点眼;或者2头份, 饮水。
12日龄:鸡传染性法氏囊病中等毒力活疫苗, 倍量饮水。
17日龄:鸡大肠杆菌病疫苗, 0.3 mL, 颈部皮下注射。
23日龄:鸡新城疫-传染性支气管炎 (肾型传染性支气管炎) 二联多价苗, 倍量滴鼻或点眼。同时, 鸡新城疫-传染性支气管炎二联油苗, 0.3mL, 皮下或肌肉注射;为防止感染, 可在250mL油苗中加入10mL氧氟沙星油剂。
28日龄:禽流感疫苗, 0.3 mL, 颈部皮下注射;同时, 鸡传染性法氏囊病活疫苗, 2倍饮水。
35日龄:鸡痘刺种。将疫苗用冷开水或生理盐水稀释50倍, 用接种针或干净的钢笔尖蘸取疫苗, 刺种于鸡翅内侧无血管处的翼膜内。免疫5~7d后, 观察刺种处有无红色小肿块。若有则表示免疫成功;若无则表示免疫无效, 应补种。
42日龄:鸡大肠杆菌病疫苗, 0.5 mL, 皮下注射。
50日龄:鸡新城疫-传染性支气管炎二联冻干活苗, 2头份, 饮水。
60日龄:禽流感疫苗, 0.5mL, 肌肉注射。70日龄:鸡痘, 2头份, 刺种。
85日龄:鸡新城疫低毒力活疫苗 (L系) , 2头份, 饮水。
95日龄:鸡传染性鼻炎-支原体二联灭活疫苗, 0.5mL, 肌肉注射。
110日龄:鸡新城疫-传染性支气管炎-减蛋综合症三联灭活疫苗, 0.5mL, 肌肉注射。
130日龄:禽流感疫苗, 0.5mL, 肌肉注射。
200日龄:鸡新城疫-传染性支气管炎二联油苗, 0.5mL, 颈部皮下或胸部肌肉注射。
以后每隔60d, 鸡新城疫低毒力活疫苗 (L系) , 倍量饮水1次。
2免疫注意事项
1) 确保疫苗来源可靠, 并按规定温度保存。疫苗使用前, 应仔细检查是否在有效期内;对于瓶盖破损、有异物或杂质的疫苗, 应禁止使用。开封后的疫苗要一次性用完;残留的疫苗不能再用, 并进行无害化处理。同时, 做好记录, 以便出现免疫失败时查找原因。
2) 为了尽可能减轻免疫应激反应, 可在免疫前2d喂给鸡群电解多维和其他抗应激的药物。另外, 在免疫前后24h内不得进行消毒。
3) 饮水免疫时, 不得使用铁质饮水器, 且免疫前要断水2~3h。稀释疫苗最好使用无菌蒸馏水, 不得使用有氯制剂的水;若使用自来水, 要静置2h以上, 并于每10L水中加50g脱脂奶粉。含疫苗的水应让鸡群在1h内饮完, 饮完之前不能加水。
在申请者申请学校的材料中,尤为关键的录取材料以及学校宣传册要备好;在学历材料中,一定不要忽略了学历学位原件及中英文证明原件、成绩单中英文证明原件;在家庭及资金材料中,申请者如有配偶,提供工作收入证明;在面试中,尽量拉近与考官之间的距离,让你们的交流氛围变得轻松、欢愉;在谈话时,眼睛要直视对方,不要目光游移不定,它会影响考官对你的信赖……
首先,申请者签证材料须备齐并主动出示
在基本材料中,护照、身份证、签证申请表及照片(一般领事馆附近相馆)、签证申请交费收据(2张)、以及英文成绩(TOEFL或GRE或GMAT或IELTS)需备齐;记得面试前要预约时间。
在申请者申请学校的材料中,尤为关键的录取材料以及学校宣传册要备好;强调一下,申请学校及专业在相应院校网站能够下载材料(学校首页、院系首页、专业课程、教授信息),并且掌握同级别其它3-5所美国学校的基本信息,如学校名称、位置、专业等也是必要的。
在学历材料中,一定不要忽略了学历学位原件及中英文证明原件、成绩单中英文证明原件;如果申请硕士,在提供的工作资料,不要忽略工作及收入证明(中英文,公司正式信笺上);如果本人是公司法人,提供营业执照原件及公司证明文件。
在家庭及资金材料中,申请者如有配偶,提供工作收入证明;如果是父母或其他人资助,提供其收入证明;要是有家庭产业,需提供企业或公司证明材料原件,不要忽略了房产证原件(本人、父母或资助人)。值得强调的是,提供在美留学期间能够支付留学费用的存款证明至关重要。这些材料在面签时,考官不会主动要求申请者出示,申请者在与考官交谈过程中,要随着谈话内容的需要适时出示相应证明材料,不要等到考官质疑询问后才有所反应,造成双方之间尴尬。
其次,考察申请者的语言能力及综合素质
毋庸置疑,与申请院校在语言要求上设有门槛相似,面签时考官要考察申请者灵活运用外语的能力,因此,已经通过语言成绩要求的申请者,只要在面签时保持清醒头脑、以自信平和的心态与考官对答如流,相信这道语言关并不是难事。
但是,面签考官除了检验申请者的语言水平,还要多方面考察申请者,以此来确认其是否具备一定的综合素质胜任国外学习生活。比如说,国内学生的性格相对内敛,考官会观察你的性格特点,以便判断申请者是否具有适应海外各种环境变化的生存能力;不仅如此,考官还会在交流中考察申请者的逻辑推理、应变等综合素质。另外,亚洲学生的成熟度一般是考官最大的顾虑所在,考官会从种种线索来判断申请者的成熟度。
第三,考察申请者有关学业方面
申请院校或考官,尤其是“学校的评审委员”希望招收对于学校能有贡献的学生。因此申请人在面签过程中。应尽量表明自己的特质与潜力能够为学校带来一定贡献。
在专业选择及涉及就业方面,如果申请去美国留学,要注意的是,学习目的要单纯并具有合理性。没有移民倾向并且计划学成回国,能够保障获得美国面签的条件之一。此外,要对自己未来的发展阐述明晰,让签证官听的清楚,而不是被认为你会移民留在美国工作,否则就会增加拒签风险。
最后,面签时申请者需掌握一定情感技巧
【程序员面试注意事项】推荐阅读:
java程序员面试题(笔试&面试题)10-07
程序员的面试自我介绍06-09
java程序员面试问题10-15
程序员面试一分钟自我介绍05-26
程序员面试题及答案12-24
java程序员面试技巧02-16
空姐面试程序01-28
招聘面试程序03-15
黑马程序员:IOS面试宝典之c语言07-20
庭审程序及旁听注意事项02-24