logo资料库

程序员面试手册.pdf

第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
资料共48页,剩余部分请下载后查看
Contents 技巧 1 BAT 等企业如何面试 ��������������������������������������������������� 1 1. 面试流程及问题解析 .....................................................................................................1 2. 面试时的基本礼仪及着装 .............................................................................................7 技巧 2 你的职场生涯可以这样来规划 ����������������������������������������� 9 1. 缺乏工作经验的应届毕业生 .........................................................................................9 2. 更换工作的程序员 ....................................................................................................... 11 3. 快乐地工作 ...................................................................................................................12 技巧 3 66 道面试题让你轻松拿到 Offer ����������������������������������� 13 1. 程序设计基本概念 .......................................................................................................13 2. 指针与引用 ...................................................................................................................16 3. 面向对象 .......................................................................................................................20 4. 继承与接口 ...................................................................................................................22 5. 树、图、哈希表 ...........................................................................................................26 6. 字符串 ...........................................................................................................................27 7. 软件测试 .......................................................................................................................32 8. 操作系统 .......................................................................................................................33 9. 数据库与 SQL 语言 .....................................................................................................37 10. 计算机网络及分布式系统 .........................................................................................38 11. 网络协议 .....................................................................................................................40 12. 网络安全 .....................................................................................................................41 13. 英语面试 .....................................................................................................................42 目录
技巧 1 BAT 等企业如何面试 1. 面试流程及问题解析 无论是程序员还是其他职业的面试,虽然都是提交简历、电话面试、面谈、 拿到 Offer 等这一系列过程,但是每一步都很重要!首先简历要精炼、漂亮、 大方,尽量突出自己的优势,避开自己的劣势。电话面试还好,因为不用面 对面交谈,这样可以更好地把握自己的语言。面谈是最关键的一步,准备不 充分就会紧张,一紧张就容易出错。不过很多面试官都可以接受面试者的紧 张,只要不太过分,问题就不大。一般来说中大型企业有很多轮的面试,就 拿微软来说,官方渠道需要 12 轮面试,即使内部推荐也需要 4 轮,而且只 要有一个面试官说你不行,你就没戏了。搞定面试官有很多方法,但是最重 要的一条就是:面试官也是人,所以要以最短的时间,在他 / 她了解你之前—— 了解他 / 她,并合乎时宜地与他 / 她展开对话。最后就是要用平常心去面对, 千万不要执着于某个职位,这有可能会令你失态导致失败,而平常心有时反 倒会有意想不到的效果。 (一)简历 据统计,80% 的简历都是不合格的。不少企业的人事管理者抱怨很多简 历的格式很糟糕。那么如何写好一份简历呢? 首先,简历的总篇幅要控制在 2 页左右,如下图所示。 1 技巧1 BAT等企业如何面试
太长的简历反而会淹没一些有价值的闪光点,但也不要为了减少篇幅而 字体到影响阅读的程度。 其次,简历一定要真实客观,按照实际情况填写,不要填写任何虚假内容, 否则即使侥幸通过筛选,面试时也会露出马脚的,对以后的职业生涯也会有 很严重的影响。 另外,不要过分谦虚。简历上注明你的求职岗位,要根据该岗位的要求, 有侧重地描述自己。 最后,在文字、排版、格式上不要出现错误,一份干净整洁的简历是对 面试企业最起码的尊重。如果应聘外资企业或跨国公司,则一定要认真对待 英文简历的编写,因为它会体现你的实际英文水平。 下面是英文简历模板的链接。 (二)笔试 笔试是非常关键的一个环节,不论你有多大的才干和多么广博的知识, 如果未能通过笔试,则无缘下面的面试。 目前几乎所有的 IT 公司都是以 C/C++ 或 Java 为主进行笔试,外企的话 还要求具备一定的英语基础。编程语言本身并没有高低之分,但相对来说, 考到 Delphi 或者 VB 的可能性很小。作为应届毕业生,如果只学过 VB、 VF,而对 C 系语言不熟的话,在笔试中就会很吃亏。下面是一些阿里巴巴 B2B 第一阶段面试题目。 题目 1 两个二进制数的异或结果是多少? 题目 2 递归函数最终会结束,那么这个函数一定(不定项选择题): A. 使用了局部变量 B. 有一个分支不调用自身 C. 使用了全局变量或者使用了一个或多个参数 题目 3 以下函数的结果是什么? Int cal(int x) { if(x==0) return 0; else return x+cal(x-1); } 2 程序员面试手册
题目 4 以下程序的结果是什么? Void foo(int*a,int* b) { *a = *a+*b *b = *a-*b *a = *a-*b } Void main() { int a=1, b=2, c=3 foo(&a,&b); foo(&b,&c) foo(&c,&a) printf("%d,%d,%d",a,b,c); } 题目 5 下面哪项不是链表相对于数组的特点? A 方便删除 B 方便插入 C 长度可变 D 储存空间小 题目 6 T(n)=25T(n/5)+n^2 的时间复杂程度是什么? 题目 7 n 个顶点、m 条边的全连通图,至少去掉几条边才能构成一个树? 题目 8 正则表达式(01;10;1001;0110)* 与下列哪个表达式一样? 1.(0;1)* 2.(01;01)* 3.(01;10)* 4.(11;01)* 5.(01;1)* 题目 9 如何减少换页错误? A 进程倾向于占用 CPU B 访问局部性(locality of reference)满足进程要求 C 进程倾向于占用 I/O D 使用基于最短剩余时间(shortest remaining time)的调度机制 E 减少页大小 3 技巧1 BAT等企业如何面试
题目 10 实现 N*N 矩阵的乘法,矩阵由一维数组表示。 题目 11 找到单向链表中间那个元素,如果有两个则取前面一个。 题目 12 有长度为 n 的整数数组,找出其中任意(n-1)个乘积最大的 那一组,只能用乘法,不能用除法。要求对算法的时间复杂度和空间复杂度 做出分析,不要求写程序。 从上述笔试题来看,题目本身都不是太难。对于企业而言,不管是阿里 还是微软,招聘者都只是 HR 而不是神仙,不要把题目想得太神秘了。但是 也不要太轻敌,事先要了解面试的公司,并根据情况做好相应的准备。 (三)电话面试 电话面试,一般是面试者提交简历后,面试开始的第一步,由公司 HR 负责,主要是对简历上一些模糊信息的确认、对应聘职位简单技术问题的提 问,以及对英文能力的考察。 电话面试之前要调整好电话,保证通话质量,以及电话的畅通。 电话面试常见的问题如下。 面试例题 1:请你介绍一下自己。 这个问题需要选择重点来回答,至于什么时候上的小学、什么时候初中 毕业就不用讲了。你可以这么说: A:我是某某大学毕业的,我的成绩优异。我的研究方向是计算机软件 与理论。我的本科教育给了我宽广的视野,我涉猎的课程有英语、网络和程 序设计。我对编程方面有很深的了解。以及可以说说你的业余爱好。 面试例题 2:你最大的弱点是什么? 这个问题需要正面来回答,每个人都有弱点,最佳策略是承认你的弱点, 但同时要表明你在予以克服,并有克服弱点的能力和计划。可能的话,也可 以说一项会给公司带来好处的弱点,例如“我是一个很执着的人,一件微不 足道的小事也要把它做到完美”。对于一个应届毕业生而言,缺乏工作经验 这种不是很大的弱点,你也可以说出来。 A:我缺乏工作经验,但是我正在学习。 B:我缺乏远见。但是我可以多读书。 C:我只是刚毕业。 面试例题 3:你对本公司的情况了解吗? A:了解一点。正如你刚才所提到的那样,贵公司是一家美资公司。据 4 程序员面试手册
我所知,×× 公司是一家世界闻名的生产数据库产品和应用软件的公司。 你们的产品×××和美国某数据库公司数据库都深受世界各地用户的欢迎。 面试例题 4:在你的项目中用到了哪种程序?在此过程中你学到了什么? A:基于 ASP.NET 和 SQL 2000 平台基础,我们完成了 ×× 大学网络 选课系统。学校中的每个人都可以在网上选择、取消、查询课程。这个项目 是一个 B/S 结构系统;代码是用 C# 编写的,在 .NET 平台上运行。在项目中, 我使用 ADO 接口来支持数据库程序。在此之后,我参加了对整个系统的测试。 为了实现后台数据库,我进行了数据库的设计,包括主键、外键的设计、 链接、视图及其他,并运用 SQL 语句实现数据的查找、删除和修改。其中 虽然遇到了大量的困难,但我尽我所能地去克服了它们,最终获得了提升和 自我的丰富。 面试例题 5:你如何理解你所应聘的职位?你未来几年的规划是什么? A: 我应聘的是 QA 职位,QA 意味着质量保证。我们应该很好地与研发部 门交流。我计划对项目的结构做深入的了解,与我的同事们很好地合作。希 望能充分展示我在这个行业的能力和智慧。 B: 也许有机会,我将会从事管理工作。我在上一个工作中积累了一些行 政经验,我将来也许会运用我组织和计划上的经验和技巧来完成工作。 面试例题 6:在你眼中,管理者是什么样的? A: 项目管理者是那种负责项目从概念到实施整个过程的计划、协调、控 制的人或公司,他(们)能满足项目的需求,并确保项目在有限的成本内按 时完成,达到要求的质量标准。 B: 项目管理者是一个策划者、协调者和领导者,是研发人员的好朋友, 也是项目流程的报告者。 面试例题 7:你目前所在的公司,有什么吸引你的地方吗? 不要说“没有,我讨厌现在的公司”。可以选择说一说目前公司和所申 请公司共同的优点。 如果这是你的第一份工作,你可以谈谈在学习或实习期间喜欢什么。 面试例题 8:你理想的工作环境是什么? A:我喜欢在一个和谐的环境中工作。每个人尽最大的努力为公司做事, 完成一份工作后我们会得到满足和成就感,我的努力能够得到公司的嘉许。 5 技巧1 BAT等企业如何面试
作为公司的一员我能从他人身上受益,我也会令他人受益。 面试例题 9:你觉得要获得职业上的成功需要具备什么样的特质及能力? A:首先,要有极强的爱好,以及扎实、广泛、艺术性的教育为背景, 特别是在技术为主导的职业领域中。 这些基本条件,加上对学习的热爱、 解决问题的能力、广泛的兴趣、成功与求胜的决心、很强的沟通技巧、努力 工作的能力,都是能够帮助我在职业生涯中取得成功的重要品质。如今新技 术不断取代旧的技术,为了成功我们要成为能跟上步伐的快速学习者,否则 你将被他人击倒。所有的优点联合起来,塑造成一个能在不断变换的信息社 会中生存的坚实团队中的一员。我相信我拥有的品质,我有信心成为贵公司 成功团队中的一员。 面试例题 10:你的同事或同学是怎么描述你的? 你可以通过这个问题来向面试官展示你的社交意识,可以说通过与同事或 同学的交流协作,你了解到了自己在别人眼中的样子。 同时,你可以用这个问题来表明你有自我认知感。你知道自己的长处和 短处,以及你的长处或短处能给团队带来什么。 诚实回答,不要过度自嘲。 面试例题 11:你有什么问题要问我吗? 如果你对公司已经提前了解,并且做足了功课,可以提问与你职位相关 的问题。例如,这个职位承担的职能,以及公司这个职位还有哪些期望等。 彰显你对这一职位的认识,且具有积极进取的心态。 另外,如果你对公司晋升和薪酬机制不太清楚,尽量不要直接问工资、 社保、五险一金等具体问题,尤其不要向非 HR 面试官问这类问题,可以侧 面询问这个职位的成长线、薪酬与成长的匹配关系、薪酬策略是标杆型还是 追赶型(市场分位)、自己怎么努力才能加快成长? 如果你对企业文化有所了解,可以问如果我有幸加入这个团队,我如何 尊崇公司的文化、更好地融入团队等这类开放性的问题。一方面显示你愿意 融入文化,有团队意识;另一方面也给面试官一次“谆谆教导你”的机会。 这类问题,任何面试官都可以回答你,并且会讲得头头是道,你频频点头就 可以了。面试官讲得越嗨,给你加分的可能性就越大。 (四)面试 对于求职者而言,面试是重要的环节,一定要守时。如果不能按时参加 6 程序员面试手册
分享到:
收藏