程序员面试注意的事项

时间:2019-05-13 20:06:53下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《程序员面试注意的事项》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《程序员面试注意的事项》。

第一篇:程序员面试注意的事项

作为面试官,在面试程序员时,都会关注哪些问题?而程序员应该从哪些方面做好面试的准备?本期话题相信对面试官和程序员都会有所启示。刘秋伟 深圳市万兴软件有限公司研发总监

与其他岗位相比,程序员相对来说会内向一些,思维也会更严谨、更有个性。企业招聘程序员就是要求他能和团队一起完成既定的开发任务,所以重点从技能水平、学习能力、团队合作及工作心态等几个方面考察程序员。

技术水平是对程序员最基本的要求,很多企业会通过笔试来辅助考察。技能的考察主要看面试者技能匹配度、对技术发展趋势的了解以及自己的职业规划。1.你认为自己最擅长的技术是什么?

2.谈谈你对XX行业/技术发展趋势的看法?对最近XX技术问题发表下你的看法?

3.在五年的时间内,你有什么样的职业发展规划?

技术快速更替,员工的求知欲和学习能力比他现在的技能更为重要。宁愿招聘一个学习能力很强的员工,也不要一个靠吃老本、不愿学习的员工。1.你最近有看哪些书或参加过什么样的培训?有灌技术论坛的习惯吗? 2.今年有什么学习计划?今年有什么目标? 3.研究过开源项目吗?有什么收获? 在现在的软件开发中,已经没有所谓的“孤胆英雄”,项目主要靠团队合作来完成,而团队合作能力可以通过考察以往项目,来了解面试者对团队的理解、遇到问题的解决思路等。

1.你做过哪些项目?最成功的是哪个?为什么? 2.辛辛苦苦工作半年的项目失败了,你怎么办?

3.评价下你过去的团队?你喜欢在什么样的团队中工作? 4.你的业余爱好是什么?

招聘新员工,需要了解面试者对工作的心态和价值取向,并且与他沟通公司的企业文 化。如果你所在企业需要快速发展,有高强度的研发任务,而他想找一份轻松的工作,可能就不是很合适了。1.为什么选择离开上一家公司? 2.有了解过我们公司的产品/服务吗?

3.你对加班的看法?你家人或朋友抱怨你加班怎么办? 4.如果在试用期发现你技能不符合要求,该怎么办?

最后,技术人员的有效沟通能力也非常关键,特别是对问题的分析和说明,所以在整个面试过程中你要观察面试者的分析思路,对问题重点的把握以及表达。经常有一些滔滔不绝、但不知所云的面试者,让人非常头疼!蒋建华 北方跃龙项目经理,微软最有价值专家(C#MVP)

程 序员的能力分为两种:技术能力和非技术能力。技术能力包括编码能力、系统分析与设计能力;非技术能力包括写作能力、沟通与协作能力、组织与管理能力等。而 根据程序员的能力水平,可以将程序员分成初级、中级、高级三个级别。因此,在面试过程中我会针对初级、中级、高级程序员三个级别来提出不同的问题。

在技术能力方面,重点考查初级程序员的编程能力、中级程序员编程能力并兼顾系统分析的能力、高级程序员的系统分析与设计能力。在非技术能力方面,重 点考查初级程序员的沟通与协作能力、中级程序员的写作能力(主要指编写技术文档,如需求分析文档、用户手册、部署手册等)、高级程序员的组织与管理能力(如指导、协助中级程序员进行问题分析和开发)。

在面试时,程序员首先要将自己的技术能力展现出来,以一种交流的心态去面对,不要紧张,要有自信,即使面试失败自己也要下去总结失败的原因,找到技 术弱点加以弥补;其次,面试中遇到不会的问题要讲明自己的思路,因为有些问题不是考你的编程能力,而是逻辑思维的能力;最后,对照程序员能力模型进行自我 分析与评价,做好职业规划,不断学习,提高自己的编程能力和抽象思维能力。

以SQL Server为例,我来分享一下面试时常问的一些技术问题。1.聚集索引和非聚集索引有何区别?应该怎样使用?

2.SQL的一张表中有一个自增的ID字段,但是现在不连续,写一条SQL语句取出某个位置到另一位置(如50~60)之间的数据。3.如何判断和防止SQL注入? 4.如何对海量数据进行处理? 第1题考查基础知识;第2题考查SQL语句的编写能力和技巧,属于初级程序员的问题;第3题考查SQLServer的安全性,属于中级程序员的问题;第4题考查SQLServer的性能,属于高级程序员的问题。通过这几个问题可以判断出应聘程序员的数据库水平。

毛颖 法国CAPS公司销售工程师

从个人经历来说,我会对以下五个问题比较感兴趣。

1.请说出3个你觉得至今都没有算法可以解决的问题。

这是一个开放式问题。从回答中我们可以了解到被面试者的思维方式和思维敏捷度,而这两点是一名优秀程序员不可或缺的。我预料一般有两类回答:第一,学术类,比如有人会说一些关于寻找质数之类的现在还无法解决的问题;第二,生活类,我比较期待这一类有意思的回答,如果被面试者可以结合一些现在的社会现 象作出回答,也可以从另一个角度反射出其社会属性。2.请从技术角度谈一下《黑客帝国》的观后感。

同样又是一个开放式问题,完全没有所谓的标准答案。《黑客帝国》是程序员的必看“教材”,整个故事最精彩的莫过于构思。我觉得能具备这样的构思能力 是程序员的最高境界。那么从技术角度,对于这个构思的框架搭建以及实现等,我想听听程序员的不同理解和实现方法,从侧面了解他们的潜在创造能力和对身边事 物的建模能力。

3.你比较偏向于把程序员比作翻译、建筑师还是设计师?

问这个问题的目的是看你怎样理解程序员这个职业。一个人对自己职业的认识以及定位将直接决定其在这个职位上的积极性和创造能力。我的答案是程序员既是翻译,又是建筑师,更应该是设计师。并且随着这三个职业的排序,正是我认为的程序员职业能力升华台阶。

4.请设计至少两个不同的算法解决将一个蛋糕平均分为6份的问题。比较实际的专业能力题。这是一个既简单又综合的考验。除了对程序员这个职位的正确认识之外,实际操作能力毕竟是影响今后实际工作的第一要素。这道操作题,考察应聘者对问题的思考,以及分析能力和解决问题的动手能力。5.比较一下这两个算法,你觉得哪个更好,依据是什么?

比较算法,还是考察的专业能力,目的是看你怎样判断一个算法的好坏。对这道题,没有接受过专业训练的应聘者应该无法给出全面且科学的分析。并且请他们评论自己设计的算法,也是对自我认识的一种衡量。李颜杉 某外资人力资源顾问公司猎头顾问

程序员的概念有点宽泛,为更有针对性,我主要分享对“网络程序员”的观点。简言之,我们主要关注面试者的硬条件、软条件两个方面。

硬条件是指学历、技术经验、语言等能直接呈现的能力。技术是实在的东西,有就有,没有就没有,由不得半点浮夸。我们比较感兴趣的问题如下。

1.做过什么:是写代码、设计还是架构?

2.做成功过什么:是大型的平台吗?其特质如可扩展、高并发、交互式。3.擅长做什么:使用的编程语言是哪种?使用经验有几年? 4.Debug的经验,遭遇什么复杂的问题(需例证其复杂性)?

技术面试的后续往往是笔试或上机,比如,在所有你使用过的DesignPattern中,请解释对比其中两种,如CommandPattern和 VisitorPattern(可以文字回答,也可以画图)?DOMparser与SAXparser的区别在哪儿?什么情况下采用DOMparser而 不是SAXparser?大家在面试之前可以Google一下类似的题目。如果面试外资公司,需要英文达到流利读写的水平。因为项目的完成往往需要协同全球多个国家的同事,如果缺乏英文技能,在外企的发展是比较受限的。计划今后进入外资公司的朋友,一定要加强练习。

软条件是指性格、兴趣、职业规划等非直接呈现的能力。公司对于程序员一般会看重两种性格特质:爱技术、乐分享。

“爱技术”的人才会自发的钻研,不浮躁,也才会在这一行做得长久。对于这点,面试官可能希望了解你工作之外喜欢做什么。我听到过很多分享:经营自己的博客或者技术论坛;尝试新技术、新设备,学习新技术是一种乐趣而不是负担;当然,下次你可以说你平时喜欢阅读《程序员》。

“乐分享”的人才能带动团队整体进步。对于这点,面试官可能希望了解你在团队中是什么角色。有的人可能讲我是Mentor,我们遇到技术问题时要内 部讨论,我往往是能给出solution的人,所有人都解决不了,我们会求助于互联网——说明你不只愿意分享,而且有东西可以分享。

以前曾在面试中听说,程序员是青春饭,3~5年之后一定要转做Manager。我觉得职业发展一定要切合自己的性格,并不是每个人都很享受并善于处 理人事管理。有的资深开发人员转成Manager几年之后,又转回纯技术(IndividualContributor)。而资深技术人员对于公司是非常 宝贵的财富,不管从受重视程度、薪资福利待遇都是非常有吸引力的。

第二篇:Java程序员面试注意事项(模版)

Java程序员面试注意事项

随着Java框架的逐渐成熟,其功能越来越强大,使用越来越简便,其使用范围越来越广,使用人数也越来越多。Java在带来方便的同时,无形中也带了不便,作为软件开发的王牌语言,各企业对Java程序员的要求也不断的提升,所以,求职面试成了Java程序员们最头疼又不得不面对的现实。瑭锦Tanjurd为了给广大Java程序员面试提供最贴心的指导,Tanjurd特意列举了一些面试常见问题希望能对广大Java程序员的面试具有一定的 指导意义。

Java程序员的面试具有一定的指导意义面试常见的问题如下:从企业面试的角度来 Java程序员的技术功底以技术经理的眼光来审视对Java编程知识的掌握

1.谈谈final, finally, finalize的区别

final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。

Finally在异常处理时提供 finally 块来执行任何清除操作。瑭锦Tanjurd解释如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

finalize方法名。Java 技术允许使用 finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。

2.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别?

Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。

equals()和==方法决定引用值是否指向同一对象

equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

3.HashMap和Hashtable之间的区别

经常问到。这两个都是Map接口的类,实现了将唯一键映射到特定的值上。

HashMap类没有排序,可以一个null键和多个null值

Hashtable,不可以有null键和null值。比Hash慢,因为他是同步的。

4.abstract class和interface有什么区别

Tanjurd说此问题经常被问。声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

5.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

经常被问。方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

第三篇:Java程序员面试注意事项

一、回答问题的思路

先正面叙述一些基本的核心知识,然后描述一些特殊的东西,最后再来一些锦上添花的东西。要注意有些不是锦上添花,而是画蛇添足的东西,不要随便写上。把答题像写书一样写。我要回答一个新技术的问题大概思路和步骤是:我们想干什么,干这个遇到了什么问题,现在用什么方式来解决。其实我们讲课也是这样一个思路。

答题时,先答是什么,再答有什么作用和要注意什么(这部分最重要,展现自己的心得)。答案的层次分明,条理清楚都非常重要,从这些表面的东西也可以看出一个人的习惯、办事风格、条理等。要讲你做出答案的思路过程,或者说你记住答案的思想都写下来。把答题想着是辩论赛。答题就是给别人讲道理、摆事实。答题不局限于什么格式和形式,就是要将自己的学识展现出来!

另外,不要因为人家题目本来就模棱两可,你就心里胆怯和没底气了,不敢回答了。你要大胆地指出对方题目很模糊和你的观点,不要把面试官想得有多高,其实他和你就是差不多的,你想想,如果他把你招进去了,你们以后就是同事了,可不是差不多的吗?

二、关于就业薪水

如果你是应届生,那不能要高工资,好比大饼的故事,要拿高工资,就去中关村!少数人基础确实很好,在校期间确实又做过一些项目,那仍然是可以要到相对高的工资的。

初级程序员薪水:2000-4500

中级程序员薪水:4000-7000

高级程序员薪水:7000以上

公司招聘程序员更看重的要用到的编码技术、而不是那些业务不太相关的所谓项目经历:

三、公司想招什么样的人

对于一些公司接到了一些项目,想招聘一些初中级的程序员过来帮助写代码,完成这个项目,你更看重的是他的专业技术功底,还是以前做过几个项目的经历呢?我们先排除掉那些编码技术功底好,又正好做过相似项目的情况,实际上,这种鱼和熊掌兼得的情况并不常见。其实公司很清楚,只要招聘进来的人技术真的很明白,那他什么项目都可以做出来,公司招人不是让你去重复做你以前的项目,而是做一个新项目,业务方面,你只要进了项目团队,自然就能掌握。所以,大多数招聘单位在招聘那些编码级别的程序员时也没指望能招聘到做过类似项目的人,也不会刻意去找做过类似项目的人,用人单位也不是想把你招进,然后把你以前做过的项目重做一遍,所以,用人单位更看重招进来的人对要用到的编码技术的功底到底怎样,技术扎实不扎实,项目则只要跟着开发团队走,自然就没问题。除非是一些非常专业的行业,要招聘特别高级的开发人员和系统分析师,招聘单位才特别注重他的项目经验和行业经验,要去找到行业高手,公司才关心项目和与你聊项目的细节,这样的人通常都不是通过常规招聘渠道去招聘进来的,而是通过各种手段挖过来的,这情况不再我今天要讨论的范围中。

四、公司面试会问什么,.技术学得明白不明白,人家几个问题就把你的深浅问出来了,只要问一些具体的技术点,就很容易看出你是真懂还是假懂,很容看出你的技术深度和实力,所以,技术是来不得半点虚假的,必须扎扎实实。

由于项目的种类繁多,涉及到现实生活中的各行各业,什么五花八门的业务都有,例如,酒店房间预定管理,公司车辆调度管理,学校课程教室管理,超市进销存管理,知识内容管理,等等……成千上万等等,但是,不管是什么项目,采用的无非都是我们学习的那些目前流行和常用的技术。技术好、经验丰富,则项目做出来的效率高些,程序更稳定和更容易维护些;技术差点,碰碰磕磕最后也能把项目做出来,无非是做的周期长点、返工的次数多点,程序代码写得差些,用的技术笨拙点。如果一个人不是完完全全做过某个项目,他是不太关心该项目的业务的,对其中的一些具体细节更是一窍不知,(如果我招你来做图书管理,你项目经历说你做过汽车调度,那我能问你汽车调度具体怎么回事吗?不会,所以,你很容易蒙混过去的)而一个程序员的整个职业生涯中能实实在在和完完整整做出来的项目没几个,更别说在多个不同行业的项目了,有的程序员更是一辈子都只是在做某一个行业的项目,结果他就成了这个行业的专家(专门干一件事的家伙)。所以,技术面试官通常没正好亲身经历过你简历写的那些项目,他不可能去问你写的那些项目的具体细节,而是只能泛泛地问你这个项目是多少人做的,做了多长时间,开发的过程,你在做项目的过程中有什么心得和收获,用的什么技术等面上的问题,所以,简历上的项目经历可以含有很多水分,很容易作假,技术面试官也无法在项目上甄别你的真伪。

五、简历怎么写

简历该怎么写:精通哪些技术,有一些什么项目经历

六、怎样达到简历上的标准(培训中心教项目的目的)

教项目是为了巩固和灵活整合运用技术,增强学习的趣味性,熟悉做项目的流程,或得一些专业课程中无法获得的特有项目经验,增强自己面试的信心。讲的项目应该真实可靠才有价值,否则,表面上是项目,实际上还是知识点的整合,对巩固技术点和增强学习的趣味性,但无法获得实际的项目经验。

总之,项目主要是增加你经验的可信度,获得更多面试机会,真正能不能找到工作,找到好工作,主要看你键盘上的功夫了

第四篇:求职面试程序员的技巧和注意事项

我们在面试程序员的时候一定要注意一些面试技巧和注意事项。程序员是从事程序开发、维护的专业人员。大家都知道求职程序员岗位一定要专业知识雄厚,但是在求职过程中注意基本礼仪和技巧是必不可少的。还需要对自我的认知,是否适合此工作。

了解自己

与很多人的看法不同,所有的程序员都是不一样的。了解您是哪一种类型的程序员对找到合适的工作是很关键的。尽管您也许能完成许多不同类型的编程任务,但您对这些任务的兴趣却是不同的。做并非真正喜欢的事情在短时间内是可以的,但对于需要长时间持续做的事情,您需要有兴趣,对所做的事情感到兴奋。最好的程序员对他们的工作充满激情,对于兴趣一般的事情,您是不会真正产生激情的。如果您不能确定自己是否喜欢,可以问自己以下问题:

1.您是一名架构师还是一名编码人员?

每一个编码职位都需要某方面的设计能力,但某些工作比其他工作更需要设计能力。如果您喜欢设计甚于喜欢编码,软件架构师的职位可能更有吸引力。也就是说,架构师的职位可能涉及许多与他人的互动,较少涉及编码或根本不涉及编码,尽管您需要很好地理解如何进行编码才能有效地进行架构设计。除非您接受软件架构方面的正规培训,否则成为一名架构师的一般途径就是先参加编码工作,然后展示出您在设计和项目各部分集成方面的才能。

前面这些问题涉及您对哪一种类型的工作感兴趣,下面的问题与编程无关,但也是需要考虑的。

2.您是一名系统程序员还是一名应用程序员?

系统程序员与保持计算机系统运行的代码打交道,这些代码包括框架、工具、编译器、驱动程序、服务器等。另一些程序员是他们自己的主要听众,他们很少与非程序员打交道。应用程序开发者与此不同,他们所编写的程序被非程序员用来完成其工作,他们与非技术人员的互动更为频繁。

3.您喜欢编写用户界面吗?

如果是这样,而且如果您拥有这方面的技能,那就要恭喜自己的好运气了。用户界面设计是极为讲究的工作,容易被批评,很难做好,特别是在要考虑国际化和易用性问题的时候。

4.您更喜欢开放源码项目吗?

绝大部分编程工作通常都涉及知识产权,封闭源代码的项目,某些程序员是反对这一点的。现在有一些向更开放的软件开发转变的倾向,为像您这样的人提供了更多的机会,可以参与开放源码项目并同时获得报酬。

5.您喜欢测试吗?

测试也称为品质保证,或缩写为QA,常常遭到缺乏经验的程序员的诋毁,但那些有经验的程序员非常看重独立测试的价值。好的测试人员很难找到。编写工具和自动化的测试用例常常需要编程技能。

6.您善于除错吗?

如果您认为在自己的代码中除错已经是够麻烦了,请想像一下替别人的代码除错是怎样的感觉。这需要很强的分析能力和解决问题的能力。找到并消除缺陷可能是很有价值的,但肯定不是每个人都适合这项工作。

7.您想为小公司工作吗?

薪水可能少一些,但随着公司的发展和成功,从底层进入一个新公司肯定对将来有好处(可能会带来相当大的报酬)。当然,不好的一面是大部分新的尝试都会失败,您可能在一两年内失去这份工作。

8.您想为大公司工作吗?

在大的公司中工作既有好的一面也有不利的一面。例如,大的公司通常能够提供更大的工作稳定性,以及某种类型的职业发展途径。它也可能拥有非技术人员知道的品牌。但在另一方面,您也可能对大公司中常常发生的繁文缛节、要求严格和公司内部斗争感到窒息。

9.您希望参加长期的项目还是短期的项目?

某些程序员渴望改变,最多在每个项目上花上几个月的时间。如果您喜欢短期的项目,而且不介意出差,那么成为一名咨询公司的雇员可能比成为一名传统公司的雇员要更好一些。重要的是您必须明白,这些问题没有标准答案,没有正确或错误的答题方式。但是,您在这些问题上对自己越诚实,就越有可能找到真正喜欢的编程工作。

10.您对管理有兴趣吗?

某些程序员的长期目标是成为一名经理,但另一些程序员对这个想法会产生恐惧。但如果您的目标是成为管理者,就需要培养自己的领导才能,并展示出您在处理技术问题的同时,也能够管理软件开发中“人”的问题。如果您的目标不是成为管理者,请寻找那些提供良好的技术职业发展途径的公司,这样在提升时就不需要被迫去管理人。

此文由传邦人才网 整理转载请注明出处。

第五篇:java程序员应职面试注意事项

第1部分 求职过程

古人云:凡事预则立,不预则废。机会都是垂青有准备的人的。为了得到一份满意的工作,大家一定要对整个求职过程有清醒的了解。把能够预见的、必须做的事情早一些做完,这样在大规模招聘开始的时候就可以专心地为面试做准备。

第1章 应聘求职 3

每年的二三月份,都是应届生求职、在职人员跳槽的高峰期。对于即将成为程序员的应届毕业生们,在求职过程中怎样确定目标公司和目标职位;对于已经是程序员的跳槽大军,是按照技术路线发展自己的职业生涯,还是走向管理岗位继续自己的职业道路,或者是改变自己的发展轨迹;大家在求职过程中要注意哪些细节?这些都是大家所关心的话题。

1.1 应聘渠道 3

1.2 应聘流程 4

第2章 简历书写 5

据统计,80%的简历都是不合格的。不少人事管理者抱怨收到的许多简历在格式上很糟糕。简历应该如何做到在格式上简洁明了,重点突出?求职信应该如何有足够的内容推销自己?如何控制长度,言简意赅?相信读了本章你会对简历的撰写有一个新的认识。

2.1 简历注意事项 5

2.2 简历模板 8

第3章 3种考试 13

笔试,电话面试,面试,是顺利求职的3个过程。三关全过才能顺利签约,只要有一关没能通过,就会被“刷”掉。

3.1 笔试 13

3.2 电话面试 15

3.3 面试 16

第4章 职业生涯发展规划 19

在一般情况下,我们工作一年之后,对自己的喜好及擅长都有了更加深刻的了解,这时会有较为明确的职业发展规划。

4.1 缺乏工作经验的应届毕业生 19

4.2 更换工作的程序员们 21

第5章 3个求职技巧 23

笔者作为一个专业的技术人员,一直不相信面试有什么真正的技巧可言。在求职面试中主要还是以实力为主,用能力说话。至于求职技巧,我觉得是一些待人接物的基本常识而已,你的家教,你的品行,你处理问题和对待朋友的态度,你的情操和品德,这些都是无法掩饰的。如果真的有什么技巧培养,那在幼儿园的时候就已经形成了。

5.1 应届生面试技巧 23

5.2 主考者的观点 25

5.3 谈话的技巧 26

第2部分 Java程序设计

本部分主要以Java设计语言为基础,通过大量实际例子分析各大公司Java面试题目,从技术上分析面试题的内涵。许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。

第6章 Java程序设计基本概念 31

对于一个求职者或者应届毕业生,公司除了对项目经验有所问询之外,最好的考量办法就是检查基本功,包括编程风格,以及对赋值语句、递增语句、类型转换、数据交换等程序设计基本概念的理解。当然,在考试之前最好对自己所掌握的程序概念知识有所复习,尤其是对各种细致的考点要加以重视。

6.1 Java配置 31

6.2 i++ 33

6.3 类型转换 37

6.4 程序结构 38

6.5 其他相关问题 41

第7章 异常与反射 43

可以说,实现了反射机制的系统都具有开放性,但具有开放性的系统并不一定采用了反射机制,开放性是反射系统的必要条件。在Java类反射的主要方法中,获得字段信息的class反射调用不同于那些用于接入构造函数的调用,在参数类型数组中使用了字段名。反射让我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实例,或对其fields设值,或唤起其methods1。

7.1 final定义 43

7.2 异常处理 46

7.3 Reflection定义 47

第8章 传递与引用 53

Java语言明确说明取消了指针,因为指针往往是在带来方便的同时导致代码不安全的根源,而且还会使程序变得非常复杂和难以理解,滥用指针写成的代码不亚于使用早已臭名昭著的GOTO语句。Java放弃指针的概念绝对是极其明智的。但这只是在Java语言中没有明确的指针定义,实质上每一个new语句返回的都是一个指针的引用,只不过在大多数时候Java中不用关心如何操作这个“指针”,更不用像在操作C++的指针那样胆战心惊。唯一要多多关心的是在给函数传递对象的时候。

8.1 传值基本问题 53

8.2 静态变量与私有变量 58

8.3 输入/输出流 60

8.4 序列化 67

第9章 循环、条件、概率 71

递归过程的执行总是一个过程体未执行完,就带着本次执行的结果又进入另一轮过程体的执行……如此反复,不断深入,直到某次过程的执行遇到终止递归调用的条件成立时,则不再深入,而执行本次的过程体余下的部分,然后又返回到上一次调用的过程体中,执行其余下的部分……如此反复,直到回到起始位置上,才最终结束整个递归过程的执行,得到相应的执行结果。递归过程的程序设计的核心就是参照这种执行流程,设计出一种适合“逐步深入,而后又逐步返回”的递归调用模型,以解决实际面试例题。

9.1 典型递归问题 71

9.2 Switch 76

9.3 条件语言 78

9.4 Java排序 80

9.5 随机数 89

第10章 Java内存管理 93

内存管理太重要了,花多少口舌介绍它都不过分。我曾经见到这样一句话:“C++程序员觉得内存管理太重要了,所以一定要自己进行管理;Java/C#程序员觉得内存管理太重要了,所以一定不能自己去管理。”从某种意义上说,两者都是对的。面试中内存管理涉及堆、栈、哈希表、内存泄漏等诸方面。

10.1 堆栈 9

310.2 垃圾收集 99

10.3 clone 107

10.4 Java线程 109

第11章 面向对象 111

面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看做是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心、以算法为驱动的话,面向对象的编程语言则是以对象为中心,以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。

11.1 面向对象的基本概念 112

11.2 类和对象 115

11.3 嵌套类 118

11.4 构造函数和析构函数 119

11.5 复制构造函数和赋值函数 120

11.6 多态的概念 121

第12章 继承与接口 129

接口在实际语言,如Delphi、Java、C++等中,都有广义和狭义之分,这很重要,以前就是因为没明白接口的广义和狭义之分,始终没能真正理解接口的真正意义。广义接口从一般意义上说,凡是一个类提供给外部使用的部分都可以被称为接口。但是在引入继承和抽象类之前,这个广义接口并没有太大意义。广义接口的真正意义是在类的继承中体现多态的功能,这种接口又被称为抽象类接口。

12.1 基础知识 129

12.2 Super 133

12.3 this 138

12.4 不能继承的情况 142

12.5 抽象类与接口 144

12.6 设计有效的继承 154

第13章 JavaScript 161

越来越发现很多灵巧的功能都是由JS实现的。这是因为Web模式现在还是Pull为主,要实现灵巧的功能,客户端必须有一定的主动性,简单的页面刷新是不够的,越来越多的应用要求互动刷新或者实时刷新。在Push技术还未成主流的情况下,JS的价值就体现出来了。13.1 网页脚本 161

13.2 APPLET 162

第14章 Java架构技术及相关中间件 163

Push软件开发的过程中,人们越来越意识到软件重用的重要性。异构的系统、不同的实现方案使软件的重用变得复杂。在中间件产生以前,应用软件不得不直接面对非常底层的东西。不同的硬件体系、不同的操作系统、不同的网络协议实现和不同的数据库等,这些使得应用程序复杂多变。面对易变的东西,软件设计师们已经习惯于通过添加中间层的方式来隔离变化。把应用软件所要面临的共性问题进行提炼、抽象,在操作系统之上添加一个可复用的部分,供成千上万的应用软件重复使用。这一技术思想最终构成了中间件。

14.1 WebLogic 164

14.2 WebSphere 178

14.3 WebService 182

第3部分 数据结构和设计模式

本部分主要介绍求职面试过程中出现的第二个重要的板块-数据结构,包括字符串的使用、堆、栈、排序方法等。此外随着外企研发机构大量迁入我国,外企针对软件工程知识的考核,包括设计模式、UML、敏捷软件开发,以及.NET技术和完全面向对象语言C#的面试题目将会有增无减,今后设计模式在面试中的比重会进一步提高。

第15章 字符串 191

基本上求职者进行笔试时没有不考字符串的。字符串也是一种相对简单的数据结构,结合指针,容易多次引起面试官反复发问。笔者曾不止一次在笔试或面试时遇到字符串试题。事实上,字符串也是一个考验程序员编程规范和编程习惯的重要考点。不能忽视这些细节,因为这些细节会体现你在操作系统、软件工程、边界内存处理等方面的知识掌控能力。15.1 字符串基础问题 191

15.2 StringBuffer 194

15.3 正则表达式 202

15.4 数字流和数组声明 209

15.5 字符串其他问题 210

第16章 设计模式 221

地上本没有路,走的人多了也就成了路。设计模式如同此理,它是经验的传承,并非体系;是被前人发现,经过总结形成了一套某一类问题的一般性解决方案,而不是被设计出来的定性规则;它不像算法那样可以照搬照用。

16.1 UML 222

16.2 23种模式 235

16.3 软件工程 248

第4部分 UNIX、Oracle、网络

作为一个几十年来几乎没有修改过技术架构的系统,UNIX本身的性能和特点决定了它的成功。除了精细、谨慎地继承、改造现有技术以外,UNIX在总体设计思想方面也有所发展。这主要表现在操作系统的功能设计方面。在设计UNIX时,着眼于向用户提供包含有多种工具而且便于综合应用它们的程序设计环境,即构成一个能够提供各种服务的基础。本部分主要介绍求职面试过程中出现的第三个重要的板块-UNIX操作系统、Oracle数据库、网络知识。作为一个程序员,尤其是系统管理方面的程序员,对这几部分有深刻理解和领悟是相当重要的。

第17章 操作系统 253

操作系统面试例题主要涉及进程、线程、内存管理、垃圾回收,以及缓存等诸方面。17.1 进程 253

17.2 线程 255

17.3 UNIX 259

17.4 AIX 264

17.5 Solaris 273

第18章 数据库和SQL语言 277

数据库面试例题主要涉及范式、事物、存储过程、SQL语言,以及索引等诸方面。18.1 数据库理论问题 277

18.2 Oracle基础 280

18.3 Oracle-SQL语言 283

18.4 SQL语言常见选择题 289

第19章 计算机网络及分布式系统 303

网络面试例题主要涉及局域网、广域网和IP管理等诸方面。

19.1 网络结构 303

19.2 TCP/IP 305

19.3 网络安全 308

19.4 网络其他问题 309

第5部分 Java开源

EJB组件曾经被认为是一个重量级的组件。EJB 3.0规范的重要目标就是简化EJB的开发,提供一个相对轻量级的组件方案。Spring基于轻量内核,然后通过集成第三方的服务器来提供完整的架构。其实,当EJB 3.0推出,当Spring 2.0的程序需要特别的Javac进行编译时,重和轻模糊了。追求简单、轻量,是每一个应用架构的目标。对于企业应用的构建来说,不论轻重,只有架构合适的应用平台,才能最终适应项目的需要。

第20章 J2EE技术 323

从整体上讲,J2EE是使用Java技术开发企业级应用的一种事实上的工业标准,它是Java技术在不断适应和促进企业级应用过程中的产物。目前,Java平台有3个版本:适用于小型设备和智能卡的J2ME(Java 2 Platform Micro Edition)、适用于桌面系统的J2SE和适用于企业级应用的J2EE。Sun推出J2EE的目的是为了消除传统Client/Server模式的弊病,迎合Browser/Server架构的潮流,为应用Java技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。J2EE是一个标准,而不是一个现成的产品。

20.1 Spring轻量级架构 323

20.2 Hibernate 330

20.3 实体EJB技术 334

20.4 Java Bean技术 338

第21章 数据库相关 339

数据库相关面试例题主要包括JDO、事务、数据源架构、接口、分布式事务、结果集、数据连接池等方面。

21.1 JDO 339

21.2 数据源架构 340

第22章 Java中的Web设计 347

关于Web设计的面试题目涉及Session、Servlet和JSP等方面。

22.1 JSP代码 347

22.2 Servlet 349

第23章 Java中的网页设计 353

关于网页设计的面试题目涉及HTML、DHTML和XML等方面。

23.1 HTML 353

23.2 XML 3

54第24章 Struts结构设计 359

Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入地了解其内部实现机制。除此之外,Struts的优点主要集中体现在两个方面:TagLib和页面导航。TagLib是Struts的标记库,灵活运用,能大大提高开发效率。24.1 AWT 359

24.2 Struts体系结构 361

第25章 Java安全性 371

Java平台提供的原始安全模式是沙箱模型。对于从开放网络中得到的不被信任的代码,该模

型提供了一个非常严格的使用环境。沙箱模型的实质在于信任本地代码,使其可以完全访问重要的系统资源(例如文件系统);而下载的远程代码则不被信任,因此只能访问沙箱内提供的有限资源。沙箱模型通过Java开发工具包(JDK)发布,一般被用JDK编写的应用程序所采纳(包括支持Java的网络浏览器)。

25.1 内存管理 372

25.2 Java安全设置 380

第6部分 综合面试题

本部分主要介绍求职面试过程中出现的第五个重要的板块-英语面试、电话面试和智力测试。这里的英语面试不同于普通的英语面试。就一个程序员而言,最好能够用英文流利地介绍自己的求职经历,这是进外企非常重要的一步。此外还必须对几个常用的问题有相关的解答,比如你最大的缺点是什么。有些问题即便是中文你都很难回答,更何况是用英文去回答。但是求职过程本身就是一个准备的过程,精心地准备,等待机会-机会总是垂青于那些精心准备的人。

第26章 英语面试 389

如果你是一个具有战略眼光,期待进入国际性跨国大企业的求职者,本章值得你仔细研读。26.1 面试过程和技巧 389

26.2 关于工作(About Job)391

26.3 关于个人(About Person)395

26.4 关于未来(About Future)397

26.5 其他建议(Other Tips)399

26.6 英文面试常用词汇 400

26.6.1 工作经历相关词汇 400

26.6.2 个人资料相关词汇 400

26.6.3 个人品质相关词汇 401

26.6.4 学历相关词汇 403

26.6.5 离职原因相关词汇 405

第27章 电话面试 407

求职时,经常会遭遇电话面试,戏称“触电”。我曾经在开会、洗澡、吃饭、坐车时都接到过电话。问的问题也是五花八门,千奇百怪。

27.1 电话面试之前的准备工作 407

27.2 电话面试交流常见问题 408

第28章 智力测试 417

智力测试,其实是考查应聘者在限制条件下解决问题的能力。这类题目会出现于跨国企业的招聘面试中,对考查一个人的思维方式及思维方式转变能力有极其明显的作用。而据一些研究显示,这样的能力往往也与工作中的应变与创新状态息息相关。

28.1 关于数字的智力测试 417

28.2 关于推理的智力测试 427

28.3 综合智力测试 429

下载程序员面试注意的事项word格式文档
下载程序员面试注意的事项.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    程序员面试总结

    广州金博信息技术有限公司 总结: 广州市乐天科技有限公司 总结 面试题 委托的关键字:delegate 数据库设计模式:单例,抽象工厂模式,工厂数据库中having: 一个条件 面向对象:封装......

    程序员面试常见问题

    程序员面试常见问题 1.如果我们不能提供你所要求的薪水,你还愿意来我们公司吗?你的期望薪水是多少?你想得到的薪水是多 少?如果达不到你的要求,怎么办? 答:我认为工作最重要的是合......

    程序员面试自我介绍

    程序员面试自我介绍 程序员面试自我介绍1 我叫朱新仲,今年22岁,毕业于山东理工大学计算机科学与技术专业。由于非常喜欢本专业,并期待将来从事专业方向的工作,因而在校期间十分......

    程序员面试问题分享

    面试问题一:是否有过团队合作的经历?你认为团队合作的重要性表现在哪些方面?问题二:有人说,中国的程序员个个是高手,但是中国的开发团队个个不行,你对这一观点怎么看待?你认为团队竞......

    程序员面试自我介绍

    当去到一个新环境下,我们时常会需要作自我介绍,通过自我介绍可以得到他人的认识。到底应如何写自我介绍呢?以下是小编为大家整理的程序员面试自我介绍,仅供参考,希望能够帮助到大......

    程序员面试总结

    程序员面试总结 这篇侧重于具体的笔试、面试的问题,至于是哪个公司的就 不去追究了,但一定是经常问到的,而且我嵌入式系统工程师和移动 开发工程师都参与了,问题要区别看待,那么......

    程序员面试自我介绍

    程序员面试自我介绍1我叫朱新仲,今年22岁,毕业于山东理工大学计算机科学与技术专业。由于非常喜欢本专业,并期待将来从事专业方向的工作,因而在校期间十分注重对专业课的学习,拥......

    程序员面试智力题

    1. 考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分......