以下是小编为大家准备的程序员面试项目经验(共含9篇),仅供参考,欢迎大家阅读。同时,但愿您也能像本文投稿人“haha358”一样,积极向本站投稿分享好文章。
1:请你介绍一下你自己这是面试官常问的问题。一般人回答这个问题过于平常,只说姓名、爱好、工作经验,这些简历上都有。其实,面试官最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分等。
2:说说你的家庭面试时询问家庭问题不是非要知道求职者家庭情况,探究隐私,而是要了解家庭背景对求职者的塑造和影响。面试官希望听到的重点也在于家庭对求职者的积极影响。
3:说说你的最大优缺点这个问题的概率很大,面试官喜欢求职者从自己的优点说起,中间加一些小缺点,最后再把问题转回到优点上,突出优点的部分。
4:就你申请的这个职位,你认为你还缺什么?面试官喜欢问求职者的弱点,但精明的求职者一般不直接回答。他们希望看到这样的求职者:继续重复自己的优势,然后说:“对于这个职位和我的能力来说,我相信自己可以胜任的,只是缺乏经验,这个问题我想我可以进入公司以后以最短的时间来解决。”
5:你期望的工资是多少?这个问题不能直接回答,面试官希望听到:“以我的能力和优势,我完全可以胜任这个职位,我相信我可以做的很好。但是贵公司对这个职位的描述不是很具体,我想我可以延后再讨论”。
6:你还有什么问题吗?这个问题看上去可有可无,其实很关键,面试官不喜欢说“没有问题”的人,因为其很注重员工的个性和创新能力。如果有人这样问:贵公司对新入公司的员工有没有什么培训的项目?或者说贵公司的晋升机制是什么样的?面试官将很欢迎,因为体现出你对学习的热情和以及你的上进心。注意:面试过程中,求职者要尊重面试官,认真回答每一个问题,在回答问题之后说一句“谢谢”,能提高获胜的机会.
面试进行曲之技术面试(项目经验) 收藏
在前期已经讲过怎样分析自己,对自己进行一个准确的定位,选择一个合适的求职方向!并结合自己的实际个人情况来写一份针对性很强的个人简历!个人简历就是个人的广告!好的简历可以更受到用人需求单位青睐!好的简历才能让你获得面试的机会!我们还针对面试列出了j2ee方面的知识点!不管是笔试还是面试都是会考到这些非常重要的知识点!面试的技术内容并不会有想象中的那么难,主要注重基础和细节!细节决定一切!所以列罗的那些知识点是需要下功夫去准备的!当然列罗的那些知识点只是一些在面试中经常会出现的问题集!每家企业都可能超出这些知识点的可能(就不要骂我了)!自己去准备吧!技术方面的考核通常分为笔试,技术面试;其中技术面试又分为专业知识面试和项目经验考核。
应该说来笔试和专业知识面试都是考核你对某方面(j2ee或.net)知识的掌握和熟练程度!而项目经验考核则是看你是不是拥有项目经验,是不是适合企业的用人需要,是不是需要企业为你付出培养的成本,是不是你能够马上投入到工作中去.企业是以你的项目经验作为衡量你的工资标准的!所以就是会出现有些同学可能在学校学习成绩很好而企业给他开的工资并不高,而有些同学的学习成绩一般反而得到高工资的原因!专业知识的考核只是企业了解你具有这方面的专业素养和能力!其实有时笔试成绩差一点或者你感觉在做笔试题的时候有些题目没有做出来或答错了并没有关系的。在技术面试的时候,在回答专业知识方面的题目不够理想,也并不起决定性的作用!总之笔试和专业知识面试的答题达到企业要求的70%就可以了!当然如果你在专业知识方面表现的太差,考官对你也就没有多大的兴趣了!但是最能决定企业下定决心录用你的关键在于你的项目经验(排除企业特别强调英文等其它方面能力外)。说了这么多好像都没有说到正题,这是因为让大家更清楚的了解回答好项目经验方面的问题是多么的重要。而这方面又正好是刚从学校出来的学员十分薄弱的,并且针对这方面介绍也十分少! 下面我们就来谈谈面试中关于项目经验的问题及应该从哪些方面进行回答!
问题一、请简单的介绍一下你自己吧!
分析:这是在任何面试中都会遇到一个题目,看起来这个问题是十分简单的,但是往往我们并不知道考官问这个题目是希望从你的回答中获得什么信息!所以我们就很容易走题,跑题,不入正题!不能马上就吸引考官。请记住抓住面试的每一个机会来推销自己。但是往往我们不知道从哪里谈起。所以我们得先了解考官想要获取什么信息呢?
1. 你的从业时间 你从事相关的工作有多长了
2. 你的教育背景 你是否受过良好的教育
3. 你的工作经验 你是否有过具有一定的工作经验
4. 你的项目经验 你是否有过丰富的项目经验
5. 你与众不同之处 你是怎么进行项目开发的,有什么特别之处,或者你在哪些项目中
取得过哪些成功,或者有哪些自己觉得骄傲的地方
6. 你最擅长的地方 你最擅长的技术是什么?
7. 你的性格 你是怎么样的一个人
怎么回答: 我们一一来分析吧,首先从业时间一般回答你进行软件项目专业开发的时间.千万不要把你以前在大街上卖过鱼蛋或到夜市卖烧鸡等乱七八糟的时间计算进来.工作经验也是,你至少有在一家公司呆过吧.不要告诉我你只学过j2ee或.net半年时间,就想来我公司混饭吃.要和你的简历对应起来.一般至少1年半以上.
教育背景:如果你上的大学及所上的专业比较对口,就说出来,非否就不要提了.总之是要扬长避短
工作经验:也就是以前在什么公司上过班,与你简历上的一致就可以了.只说与软件开发的工作经验,其它的就不要提了
项目经验:你曾经做过的自认为比较好的项目,这里特别重要,先用一句话来概括项目,然后把项目的功能及子功能全部叙述出来.
你与众不同之处:也以说你在项目你以什么独特的方法获得什么不同的效果,主要是能够结果具体的项目或能举例说出来.
最擅长的地方:主要告诉对方你最擅长哪方面的技术,是需求分析?编码,或数据库或架构
你的性格:用一两个词来形容你自己,描述你的性格.
回答实例:
面试官:请简单的介绍一下你自己吧!
令狐冲:您好,在下令狐冲.从事j2ee开发工作3年时间.200至在大宋桃花岛软件谷皇室软件公司从事j2ee项目开发.其间开发过大宋侠士综合管理平台.大宋侠士综合管理平台能够自动收集大宋各路侠士,英雄好汉,隐居高人信息并对他们的个人信息及所作所为进行跟踪管理,实现侠士信息维护,查询.侠义事件维护,侠士等级管理,侠士奖惩管理,侠义活动发布,抗灾募捐管理等。鄙人在项目中主要负责需求分析,架构设计和框架类代码实现。在项目开发中善于与客户沟通,充分理解客户需求。具有极强自学能力,在大宋藏经阁中通读了大量的软件项目开发秘籍,具有藏文,印度文,金文的读写能力。
问题之二、谈谈你的XXX项目吧!
分析:考官通过看你的简历或者你的介绍来了解你所做的项目,那么考官肯定想更详细的了解您的项目,看是不是与你的简历写的项目经验一致。也就是考核你是否具有真实的项目经验。一般来说,在你的简历至少有一个重点项目,放在简历项目经验栏的第一位。把项目的业务功能描述清楚。在这里你就是重点谈一个项目就可以了。从下面几个方面来进行陈述
1. 用一句话简述项目
2. 详细的列出项目实现的功能
3. 说出项目实现的技术和架构,能说出项目的不寻常之处,比如采用了某项新技术,采用了良好的架框等
4. 能让别人感觉出项目的规模
5. 说出你在项目中的责任
通过这些来证明你是的确开发过了这个项目,并且这个项目是一个真实的。还有就是你是真正具有项目经验的。合乎企业的用人需要。
特别注意要把项目所实现的功能描述得越详细越好。当然用词要简洁,表达要流利。其次要尽可能采用专业术语,显得你的专业。不要犯低级错误。
请记住,你要描述的是整个项目而不仅仅是你做的那一个模块。有些项目你只参与了其中一个模块,但是你要把整个项目描述出来,不要仅仅描述你参与的那一个模块。
说出你项目采用的技术及架构,还要能说明你在项目中的责任。
回答实例:
面试官:令狐冲,能介绍一下你做的大宋侠士综合管理平台吧!
令狐冲:好的,大宋侠士综合管理平台是为大宋武林联盟开发的,实现武林联盟管理的自动化。大宋侠士综合管理平台能够自动收集大宋各路侠士,英雄好汉,隐居高人信息并对他们的个人信息及所作所为进行跟踪管理,实现侠士信息维护,查询.侠义事件维护,侠士等级管理,侠士奖惩管理,侠义活动发布,抗灾募捐管理等。
系统基于B/S三层架构,采用Spring + Hibernate + Spring MVC框架.使用Oracle 数据库.
本项目只投入15个人,开发周期为6个月。本人在项目中进行了前期的需求分析,系统架构实现,数据库建模,及部分编码工作。
问题之三、谈谈你们是怎么对这个项目进行开发的?(谈谈你们是怎么进行项目开发的?)
分析:这个问题是考核你是否熟悉软件开发的流程,同时也是考核你的项目经验,你的专业素养,从这里可以判断出你参与过多少项目,可以判断你对软件工程的理解和熟悉程度。这个问题是十分关键的,你需要准备的知识点有:软件项目的生命周期、软件项目的开发模型、面向对象的分析和设计、软件质量保证等。
软件项目的生命周期:
项目计划
需求分析
设计(概要设计和详细设计)
编码
测试
发布
维护
项目计划阶段:走访客户,进行交流沟通,获得客户原始需求。
对客户的需求和市场等进行调研,分析,编写可行性分析报告。
通过不断的与客户沟通,找客户不同环节的用户进行交流来获取需求。召开评审会议,报告可行性分析,报告用户原始需求,报告项目远景规化。
需求分析阶段:
在客户原始需求的基础上不断与客户沟通,充分的熟悉和深入客户业务,获得充分的业务需求,完善用户需求和功能性需求,了解客户的相关约束而获得非功能性需求。最终编写《需求规格说明书》;召开需求评审会议,客户确定需求,并签定合同;编写项目计划说明书;编写测试计划;召开项目启动会议,项目正式启动。
概要设计阶段:根据《需求分析说明书》,进行用例分析,获得充分而有效的用例。编写界面原型,编写编码规范和界面风格规范,数据库设计规范。用uml工具画用例图,编写有效的用例规约文档。划分项目功能模块.评审用例及用例规约文档。
详细设计阶段:根据完整的用例及需求进行分析,获得数据库所需的相关信息,画数据库E-R图,编写数据设计说明书.进行数据库建模。进行详细的分析,用uml工具画类图,确定每个功能模块的子功能,抽取项目的公共部分成为一个公共模块。确定项目的架构基础。确定需要用到的类及类成员和方法。确定一些辅助类及方法。对每一个用例都用uml工具画出顺序图。编写详细设计说明书,评审详细设计说明书, 进行基础框架搭建。列出任务清单,进行任务分配。
编码阶段:以小组的形式进行代码编写,编写单元测试用例,每完成一个类都要进行单元测试。每完成一个功能点和模块都要进行集成测试。确保每一个功能点和模块完成后都是一个可以看得见、摸得着的产品。而不是等到最后才进行统一的调试和搭配。每天都要对代码进行检查和优化,也就是所谓的重构。
测试阶段:根据测试计划对项目进行系统测试,以及用户的验收测试
产品发布:交付完整的产品和设计文档。把产品布署到客户的计算机上,确保产品的正常运行。客户签收。
维护阶段:为客户提供技术保障,对产品进行相应的维护和升级工作
软件常见开发模型
瀑布模型:最经典的过程模型,适用于需求明确,规模较小的项目
喷泉模型:迭代,无间隙特点,适用于面向对象的软件开发过程
螺旋模型:
MSF模型:微软解决方案过程模型
什么是极限(XP)编程:极限编程是对敏捷软件开发方法的一种实现。它强调测试先行,也就是在编写代码的时候先编写测试用例;循环迭代,每一次迭代都是一个可用的产品;重构,不断的对代码进行优化;结对编程,两个人为一对共同进行代码编写;它强调团队之间的知识传播,让团队的每个人都能熟悉软件开发的各种技术。如:支持熟悉数据库的人去做界面,做界面的人去做数据库等,通过不定期的角色转换来增强团队的能力。要求客户参与到软件开发中来,开发出最适合客户需求的产品。
单元测试一般是在编码的时候同步进行的,一般是以类为单位进行测试,当一个类完成了编码,并编译正确后才进行的测试,测试这个类是否已经能够实现指定的功能。一个类能够正常的编译成功并不意味着这个类就已经完成了,还要通过测试,设置断言来确定他是否已经达到了预期的效果,实现了特定的功能。调试,编译通过只能证明代码的语法没有错误。
单元测试由程序员自己来进行,也可以在项目小组内交互进行。单元测试是采用白盒测试
集成测试一般指实现了一个功能点或一个模块后,为了测试这个模块是否已经实现了需求要求的功能。集成测试可能需要对多个类进行组装,也可能需要与以前已经测试通过的模块进行组装,是对产品组件的系统整合和执行。集成测试可以根据模块的大小分不同的级别,在现行的软件开发中,每完成一个功能模块都必须要进行一次集成测试,使得你完成的模块是一个可以运行的产品。集成测试一般可以由项目小组的负责人(或指定一个小组成员)来完成。集成测试采用白盒式测试和黑盒测试
系统测试一般指项完代码已经全部完成,交给测试小组来进行测试。进行系统测试的人员独立于开发小组,系统测试人员把完成的产品布署在相应的计算机环境中,按照测试计划进行测试,验证系统是否满足了指定的需求。系统测试除了测试产品应满足基本的功能需求外,还要对产品的性能,用户界面,安全性,压力,可靠性,安装和反安装等几个方面进行测试
系统测试采用黑盒测试
验收测试一般指产品交付给客户,负责把产品布署在指定的计算机环境中。由用户根据需求文档,进行的总体测试。验收测试的内容和系统测试一样,只是执行者不同。都是除了测试系统完成基本功能外还要对性能,安全性,可靠性等进行测试。验收测试也是采用黑盒测试
为什么需要测试?测试是对软件质量的保证,只能通过严格测试的软件才是合格的软件,测试并不是说让软件能够编译通过,测试是让软件产品最大程度的满足客户的需求度。
回答实例:
考官:令狐冲,能谈谈你们是怎么样对这个项目开发的吗?
令狐冲:首先,我们这个项目已经有了一个基本的用户原始需求。但这是不够的,我们都知道需求分析是十分重要的,所以我们在用户原始需求文档的基础上,再次进行了分析,通过不断的与客户沟通,充分的了解和熟悉用户的业务,完善了业务需求和功能需求。还对用户业务需求和功能需求分析完善为实现软件的必须的非功能性需求。得出项目需求规格说明书,经过评审会议确认通过。
根据需求规格说明书进行用例分析,通过分析和讨论找出充分的有效用例,并用Rose画用例图。对每一个用例进行详细的分析,完成每个用例的用例规约文档,并编写界面原型。划分项目模块。最后对用例及用例规约文档进行评审验证。编写”代码编写规范”及界面风格规范,数据库设计规范,编写概要设计说明书。
根据需求规格说明书和分析各个用例规约文档,获得数据库的基本信息原型。也可以说是数据库表的草稿,根据数据库表草搞进行分析,进行数据库设计和优化。编写数据库设计说明书。采用PowerDesigner进行数据库建模,并生成SQL脚本。确定项目框架,设计公共模块和辅助类。根据对数据库模型和用例规约文档的分析,列出对象清单和理清对象关系。用Rose来画类图。对每一个用例都用rose画出时序图。编写详细设计说明书。列出任务清单,分组进行代码编写。
在代码编写阶段,先统一完成所有的实体类。对于非实体类则先完成类的框架,也就是只写方法和注释文字。具体方法的实现暂时为空。然后再进行代码填写。每完成一个类的代码编译通过后都要进行重构和单元测试。每完成一个功能和模块都由会由小组长进行集成测试。使得完成的模块是一个真正可以运行的,可见的功能实现。
在各个小组都完成自己的模块后就进行模块整合,进行一次大规模的集成测试。然后把产品产给产品测试小组进行系统测试。
问题之四、你们是怎么保证软件开发的质量的?
分析:这个问题其实上面的讲解已经给了答案了。软件质量是软件实现对需求的满足度。开发的软件越满足客户的需求,说明软件的质量越高。反之就是质量越低。尽管你开发的软件使用了新的技术,良好的设计,丰富的功能;但是这些功能都不是客户需要的,客户需要的功能没有实现或者是很多没有实现。这样的软件也是失败的软件。为了保证软件质量,也就是让开发的软件最大程度满足客户的需求,只有两个方法。一个是获得充分完整的需求,二是能过测试,以需求为中心编写测试计划。来保证软件合乎需求。
回答实例:
考官:你们是怎么来保证软件的质量的呢?
令狐冲:要保证软件的质量首先就要获得完整的需求,在需求分析阶段做了大量的工作与客户各个环节的代表性用户进行沟通,充分了解和熟悉客户的业务。并且从需求到设计阶段都保持与用户的沟通和交流。让用户的业务专家一直参与我们的需求,分析和设计工作。
其次我们会在需求分析后就编写测试计划,在开发的每个阶段都进行相应的测试来保证代码是乎合相应需求的。在代码编写过程中,每完成一个类都由程序进行单元测试,每完成一个功能点或模块都要进行集成测试,每一次集成测试都对上一次的已经测试通过的产品进行迭代, 也就是以前测试成功的都会加入到本次测试中来。使得每个完成的功能和模块完成后都是一个可以运行的,可以看得到的产品;同时也欢迎用户来见证我们的集成测试结果。代码编写完成后进行最后一次集成测试,然后交由独立的测试小组对项目进行系统测试。
问题之五、你为什么离职的?(你为什么离开以前公司的?)
分析:这个问题几乎在任何场合的面试都会有,有时是在技术面试的时候问,有时是在人事面试的时候问,有时会在技术面试和人事面试的时候都问。其实也比较好回答,回答的抽象一点比好。切记不要说以前公司的坏话,如果你这样做。人家会想,你以后离职后同样也会说这家公司的坏话.一般都是说为了某求更好的发展空间。让人感觉你是经过深思熟虑后才选择他们公司的。
回答实例:
考官:你为什么离开以前公司的?
令狐冲:以前公司对我很好,我在以前公司干得也很愉快。我因为合同到期,为了获得更好的发展空间及谋求对自己能持续发展的环境。并向公司办理了离职手续,完成了工作交结。(后面这句也可以不谈)
问题之六、谈谈你的职业规化
分析:企业都希望他所招聘的人是潜力股,看你是不是一个追求上劲的人,还有想看看你能够在企业长期干还是仅把其当着一个跳板。总的说来,回答这个问题要让人觉得你是一个可培养,有潜力人。记住要看是什么样的人来面试你。如果是项目经理来面试你,你就不要说你以后的职业规化是项目经理。你就可以说你的职业规化是成为架构师,或者是技术专家等。否则他可能会认为你是一个对其有威胁的人。就算他内心知道这不算什么,可能心理总会有一点点不爽。如果是老总面试或人事问你这样的问题,你则可以说项目经理也无妨,不过要给人有一种觉稳的感觉。
回答实例:
考官:你的职业规化是怎么样的呢?(考官是项目经理)
令狐冲:我思维能力比较强,擅于逻辑分析。在之前的工作中积累了一定的架构经验,以后就想成为一名架构师和技术专家
写在最后:上面的这些问题都是面试中十分常见的的问题,比较难以回答的。有些看似简单却不知从何说起。有些看似复杂却又并不复杂。因为很多人都缺少项目经验,对软件开发的过程相对陌生,而老师讲这方面的知识也比较少,如果你没有一定的代码和项目积累就算老师讲你也很难去体会、理解。再说这方面的内容太要求实际经验和日月积累,老师也不好讲。现在我采用把枯燥的概念和实际的项目结合起来进行归纳,从而形成这样一个答题技巧。并且对其中的一些技术结合实际进行分析和总结。希望阅读者能快速的知其然也知其所以然。从而能够提高面试的成功率。当然这仅仅是一个答题技巧,关键还是需要知识的积累。有道是“不积跬步,无以至千里;不聚细流,不以成江河”。这次完成此文也是我自己对知识的一次梳理,我并没有去查阅和考证书本。我想完全通过自己的语言来描述项目开发的过程和一些细节。又因我实在是才疏学浅,真的希望大家能对我的不当及错误之处指出并加以指教,我就涕感泪流了。不管是技术还是人生,我才刚刚上路呢!
程序员面试项目经验
光阴如梭,半年的工作转瞬即将成为历史,伴随着新年钟声的临近,我们依依惜别硕果累累的xx年,满怀热情的迎来即将到来的。在这年终之际,现对来公司5个月的时间里所作的工作汇报如下:
1、正义ERP项目的编码工作。从了解新疆正义项目的背景、及计划安排,熟悉正义公司制度及业务流程,再到熟悉新能开发模式,之后我根据需求调研报告,从基本 的数据库创建,到编码,完成了销售部、生产部、采购部、质检部四个模块的基本单据的制单、审核、选单、查询、打印等系列的编码工作;完成了正义项目的模块 测试及流程测试。
通过这段时间的努力,使我个人的耐心、细心程度及对工作的合理安排得到了锻炼,学会了在繁忙之中找条理,危难之中找希望。同时自己也有一些不足之处,一些细节地方技术上还不太成熟,还需加以学习与钻研。
2、、正义ERP项目的实施工作。从十一月初开始进行正义项目的实施,每天早起赶在企业上班前赶到企业进行ERP的实施。实施期间主要是软件的安装实施及对企业 的ERP系统的使用人员进行软件使用培训;纪录客户使用过程中出现的问题,晚上下班后加班加点将每天的小错误及客户变更修改完毕。
通过这项工作,使我原本欠缺的业务能力得到了很大的提高,并学到了很多与客户交流的技巧及业务上的知识,更加明晰了ERP系统的流程。但离一个成功程序开发人员的标准还差得很远,在今后工作中,定会多多注意,加以改善。
3、帮助和使用手册文档的编写。帮助的编写使我熟悉了Dreameweaver和Fireworks的使用,为后期的OA开发也奠定一定的基础,使用说明的编 写,使我更加加深了项目开发的整体思路与技术要点,总结了前期开发和实施中碰到的问题,并又一次的对软件整体进行了测试,对暴露出的小BUG进行了最后的 修改。
4、利用工作之余的休息时间加强学习。平时注意收集有关PB方面的资料文件,提高自己的处理新问题和解决新问题的能力,并加强学习Java及OA方面的知识(现转为学习.net),为后期的工作打好基础。
以上为本人粗略的个人工作小结,请领导审阅,如工作上有不到之处,请领导不吝指出,以便本人及时改正,从而能更好地工作。
展望临近的xx年,我会更加努力、工作上认真负责,再接再厉,更上一层楼。相信自己会完成新的任务,能迎接新的挑战。
程序员面试笔试经验
【目标】
相信和不少朋友一样,有了几年工作经验成为Senior后就开始了面试别人的经历,我在最初这个阶段只是按照自己的想象把”找到基础好的程序员 “,”找到算法能力优秀的程序员“,”找到有Android开发经验的程序员“等作为面试的目标。但是,实际的经历告诉我,尤其是按“基础好”,“算法好”这些目标招到的人最终效果并不好。比如,有的面试者基础知识和算法掌握情况不错,进程、线程、内存等概念清晰,基本的Hash,二叉树,快速排序等数据结构和算法也比较熟悉,但是进公司后在实际工作中表现得很糟糕。后来,我才发现原来是我的面试目标出了问题,我原先的面试方法更像是大学的算法或操作系统期末考试,按照这种方法让许多并不合适的人通过了面试,同时也可能错过了许多合适的人。
后来,我的反思是,从公司的角度讲,面试的根本目的是找到“能够干好工作”的人,而“高学历”,“算法好”,“基础好”,“有经验”这些都是表象而不是根本,它们并不能直接和“工作好”划等号。
【方法】
目标明确了,但接下来的问题是假设面试者是一个黑盒系统,“工作好”不是直接可观测变量,你所能直接观测的变量是基础、算法、经验、学历、性格、谈吐、年龄等等。所以,实际上,你只能从“基础好”,“算法好”等可以直接观测的量去推测“工作好”的概率,这就是一个在“X好“条件下"工作好“的条件概率问题:P(工作好 | X好)。
根据这个模型,面试所应该考察哪些方面就很明显了,那就是选择那种最具有区分性的方面来考察。比如,考察面试者的体型特征没有太大意义,因为 P(工作好|高),P(工作好|矮),P(工作好|胖),P(工作好|瘦)的概率都差不多;所以,体型特征不具有区分性,这不是面试所应该关注的内容。
面试官应当结合职位的要求明确哪些因素具有比较好的区分性。比如,如果要招一名技术门槛比较高的3D游戏引擎开发工程师,面试者A具有3D游戏引擎开发的经验,但是在基础知识和算法面试方面表现一般;面试者B相反,基础知识和算法面试表现很好,但没有游戏开发经验,而你只能选择其一。你选谁呢? 其实,这就是两个条件概率问题P(工作好|经验好,基础一般,算法一般)和P(工作好|没经验,基础好,算法好)。这个问题就留给面试官来判断了,就我个人而言,对于技术门槛较高需要技术积累的职位,经验更加说明问题,因此,我更倾向于面试者A。
下面,我再结合自己的经验谈谈对面试中常见方面的看法。
【算法】
算法是Google和MS等大公司面试所重点考察的内容。我个人很喜欢算法,曾经参加ACM/ICPC拿过北京赛区的13名,
但是,就个人经验来看,我所接触过的绝大多数开发职位而言,算法都不适合作为考察面试者优劣的主要因素。对于普通的非算法性开发职位,考察面试者的算法就相当于考察他打乒乓球好不好一样,与目标“工作好”的相关性太低。就我个人的经验来看,差不多P(工作好|算法好)=50%,也就是算法面试没有太大的区分性。
甚至,还有一种很不好的情况特别多地出现在算法好的'面试者身上,我称之为“只磨刀,不砍柴”。什么意思呢?有类人只对什么A*算法,异步编程,JVM类加载机制这种纯技术问题感兴趣,对实现用户需求毫无兴趣。这类人看起来有一定的技术能力,但是对公司来讲贡献十分有限,甚至不如技术一般但认真负责的人。所以,一旦遇到面试者算法好,我就特别留意考察会不会是这种“只磨刀,不砍柴”的人。
另外,虽然我个人不了解Google和MS,但我对于其特别重视考察算法能力的面试策略是持怀疑态度的。即使在这样的世界级大公司,算法虽然重要,但可以想象在项目实施过程所遇到的各种各样问题中,算法问题绝大多数时候不会是主要瓶颈,没有到那种需要每个人都是算法高手的情况。实际上,绝大多数项目真正难点并不是一两个算法瓶颈,甚至也不是单点的技术瓶颈,而是系统性的组织、协调、设计、开发问题,有大量的看起来不是那么有技术含量的脏活累活,也有许多问题是由于信息不足,并不是技术能力强就能克服这些困难。一个团队最好优势互补,有人算法强,有人业务分析能力强,有人擅长后端服务,有人擅长前端界面,有人聪明,有人踏实,这是最好的。如果按照“算法好”的单一标准选材,必定会把许多优秀的人才拒之门外。
补充:在更多地了解了Google和Facebook等一流公司的面试细节之后,我对这个问题的认识有了一定的改变,实际上这些公司在面试过程中并不完全强调技巧性很强的算法,而是更加注重编码(Coding)能力,只是在进行编码测试的过程中往往是通过一些简单算法题来进行的。我对于这种面试方法越来越欣赏,并且也作为了我们公司面试过程中的重点环节,因为编码能力的测试是十分必要的,它有着知识性问题无法取代的作用,如果一个面试者连“判断一个字符串是否是另一个字符串的子串”这样的题目都无法正确并快速地实现,那么基本上可以直接排除了。我这里所强调的是不必考察高难度的算法问题,并非不重视编码能力测试,请读者不要误解。
【基础】
基础面试是指考察诸如指针使用、进程线程概念等基础知识的面试,十分类似于大学期末考试题。我曾经以为基础面试十分重要,但是现在不这么看了。在工作中基础的确是重要的,但是在面试过程中,它必须具有区分性才有意义,也就是说P(工作好|基础好)的概率要高,那么考察指针使用,进程线程区别这样的基础题目才有它的意义。我的实际经验是,基础面试并不具有很好的区分性,和算法一样, 差不多P(工作好|基础好) = 50%。同时,基础面试是最容易准备的,中国人有长期的应试教育经验,要准备几个把玩指针题目太容易了。
我曾经遇到过这样的面试者,他的C语言基础和编译、链接等原理掌握得非常好,给我留下了深刻的印象,我给的面试结论是:知识面不宽,只会C语言,但基础很扎实,建议录用。后来的事情证明了那个结论的前半部分是对的,但是”建议录用“错了。他在实际工作中表现得一塌糊涂,不理解需求,不理解整体架构;同时,上班时间不是花在项目上,而是花在阅读诸如《程序员的自我修养》之类的书籍上。最后,这位同事由于长期“不出活”离开了公司。
JAVA程序员面试经验
以下要介绍的是一份JAVA程序员面试经验
1.数据结构,主要涉及java.util包中的一些集合类。
2.OO。按照他的一段描述建模。主要是类的.继承关系以及接口实现。还有构造函数和析构函数在继承体系中的作用等等。
3.Java和C++在内存管理的不同之处。
4.JAVA的多线程机制。
5.反射机制的作用,以及在哪些方面使用了反射机制。
6.网络:TCP/IP协议,
HTTP访问机制。还问到了SSL之类。
7.DesignPatten:用过几种DesignPattern,J2EE中有哪些Pattern已经自动实现等等
8.数据库:比较EJB中的QL语言和SQL。还写了一段QL查询语句。
9.CMP中Home接口,Remote接口是如何实现的。
10.软件工程:常见的开发模型。平常项目管理中软件工程的运用。
技术面试大概从3:40开始,面完已经4:50了。最后面试官说看你的项目经历,再安排一个.Net技术面试。反正到此地 步,只能随意。不一会他回来说,有点晚了,.Net面试就取消吧,不过还有一个英语面试。小吃了一惊,因为根据sirily的 面经,不应该有英语面试的。还好,问了一些很简单的问题,马马虎虎混了过去。
程序员应聘面试经验
面试对于求职者来讲,应该也是属于一门必修课吧!因为面试之前都要进行一番了解,只有这样,我们在面试的时候,才能更好的发挥自己的能力和水平,才能赢得面试官的认可,下面是一位程序员的应聘面试经验之谈,对大家应该很有用,所以就跟大家分享分享。
第一、基础很重要,不要生疏了。
不管应聘什么开发岗位,基础永远是最重要的。IT业不停地在炒作新概念,昨天是SOA,今天是云计算。我们永远不知道明天流行什么,但是只要有踏实的基础,辅以较好的学习能力,要跟上步伐也不会太难。
所以绝大多数公司都会特别看重应聘人员的基础能力,比如编程语言本身的特性、基本的算法和数据结构、进程间通信等等,毕竟这些具体技术问题有客观的答案,而且在各具体行业都是相通的。
工作三年以上的人,往往都习惯了“拷贝+修改”式的工作,用不到的基础知识基本上都忘掉了,一到应聘的时候就难免眼高手低,总是抓不住机会。
而事实上,技术基础即便是遗忘了,也是可以很快捡起来的。如果你确实忘了很多基础知识,那么参加面试的前夜,花点时间把大学里的课本再翻出来看看吧。似乎很土的方法,但确实是有效的。
第二、要关注技术前沿。
不管做任何工作,如果只顾着低头做事,而不晓得抬头看天。那么不管做多久,自身的水平总是停留在毕业时的水平;如果基础又忘记了太多,那还不如毕业生。
关注技术前沿,并不是要求跟进每一个新技术,而只需关注目前主流媒体经常宣传的一些新技术、新思想。关注这些技术前沿的动向,并能将他们与自己从事的工作联系起来作一些深入思考,那么这是向面试官宣扬你的学习能力的一种好办法。
第三、小公司比较看重知识的广度,大公司更看重知识的深度。
如果你想去一些小公司工作,那么由于他们人少,分工没那么细,所以他们大多喜欢知识面广的应聘者--你会听到更多的“怎么做”。对于应聘这样的公司,你可以着重培养知识的广度,比如做网站后台开发,最好也能js、css、apache、mysql都懂一些,能独自搭建一套完整的网站,这样去很多小公司难度都不太大。但是由于个人的精力总是有限的,所以要注意不要铺得太开,重点还是在后台开发本身。
而大公司由于分工比较明细,所以往往更喜欢考量重点知识面的深度--你会听到更多的“为什么”。所以平常解决问题时,不要光搜索一把解决了就完了,还需要仔细研究各种问题的来龙去脉,并能分析总结,将这些收获系统化、理论化。
当然,广度和深度的需求不是绝对的,一个优秀的开发人员应该对至少一到两个专业领域有着深入的了解,并熟悉其他相关领域,也就是所谓的一专多能。
第四、良好的简历设计可以为你的应聘加分。
社会应聘的简历往往比校园应聘的简历写得随意,因为有工作经验的'人往往认为面试官会更看重他的工作经验,而不是简历格式。其实不然。
大多数简历只会出现在面试官面前10秒到1分钟不等。这个短短的时间内,如何让你脱颖而出?这个方面有很多的攻略,我只说重点建议,不解释原因。
一是简历要突出优势,而不是描述经历。比如出身名校、就职过名企、参与过著名项目、拿过大奖,这些比较客观的优势要重点突出。如果你没有UI的功底,那么简单地放大加粗也可以达到效果。当然有些公司只接受文本型简历,那就设法加一些特殊符号吧。
二是技术简历减少模糊化的语句,最好能数字化,
例如项目代码量,维护的数据量,网站的访问量,请求平均耗时等等。
三是简历要能结合应聘岗位做一些匹配的修改。撇开招聘网站通用的简历不谈,如果你明确对一个特定公司的特定岗位投出简历,那么你有必要把跟对应岗位无关的内容弱化,并强化跟其业务相关的内容。如果实在行业差别太大,那么表达几句对其行业的见解和兴趣也是可以的。
第五、要有积极的沟通意识。
优秀的面试官会激励应聘者讲他原先工作的内容,并从而评估出应聘者的能力水平。但隔行如隔山,绝大多数面试官会慢慢将问题引向自己熟悉的领域--这往往又是应聘者不太熟悉的领域。这就要求应聘者能积极分析面试官的兴趣点,并将自己相近的特长表现出来。一种可能的引子是这样:“唔,你问的问题我并没有直接遇到过。但是我做的XXX系统也许跟你的这个问题有些关联,你有没有兴趣听一听?”有哪个面试官会回绝你呢?
面试管也许会故意问一些模糊的问题来混乱你。但是不要怕,多问几个问题,定位清楚他的意向再简明扼要地回答一下就好了。
如果跟面试官有了意见冲突,也尽量不要再同一个问题上纠缠。那也许是故意制造的陷阱--看看你的团队意识。应聘者需要明白的是,在面试场合中不要妄图“战胜”面试官,即便是碰上一个期望“战胜”应聘者的面试官。
第六、要有良好的表达能力。
没有哪个面试官喜欢嗦嗦说了半天还是没说到点子上的应聘者,所以要尽量简明扼要地回答问题,除非面试官确实表现出对具体细节的兴趣。
回答问题时注意面试官的情绪变化,一旦他表现出任何想打断的意愿,立即一句话结束这个话题。
有些比较复杂的问题,可以先思考十到二十秒钟,因为一旦开口就没有思考的时间,话多的人不容易收住话题。
跟学校考试不一样,大多数主观性问题并不要求应聘者一二三四说得滴水不漏,能说到大部分关键点就是可以的了。
另外注意,各种技术术语不要搞混了。搞不清楚的理论概念,不如不说。免得面试官听到个术语就拉出来穷追猛打,把自己问挂。
第七、自信。
大多数做技术的,平时都信心满满,一到应聘的时候却总觉得自己不懂的东西还太多。回答问题时声音太小,或者畏畏缩缩用很多“可能”“也许”“大概”。
这个不一定影响你的录用,但是不自信的表现无疑会影响在跟HR谈薪水时候的议价能力。所以,无论如何,应聘的时候表现得轻松镇定一些,还是很有好处的。
当然,自信和自大之间往往只有一线之差。千万小心,不要过度地表现自信搞成了自大,因为HR往往对这一点非常敏感。
如果你只是要谨慎地表现自信的话,我觉得回答问题时面带微笑就够了。
最后需要特别提醒的是,以上种种其实只不过是应聘时的技巧和注意点而已。职业规划需要有长远的眼光和坚持不懈的学习。台上一分钟,台下十年功。真正的实力还是要在平时工作和学习中进行积累。
如果你真是NB到别人要来挖你的话,那你压根不需要应聘就总是能有好工作了。
更多相关的面试问题文章推荐,大家敬请继续阅读:SAP面试回顾销售工程师面试经验分享 技术工程师面试经验分享
时间:.4-2015.5
项目名称:Ting-Android 音乐播放器
项目简介:该款 App 界面设计使用的是 Material Design,遵循 Google 设计规范 , 界面开起来清新简洁,目前 App 只能获取 Ting 音乐社交网站上用户分享的前 20 首歌曲 , 以及歌曲评论信息,App 可以在线播放从 Ting 网站上取回来的歌曲,也能播放本地歌曲,播放本地歌曲可以进行随机播放、循环播放、单曲循环播放,使用到的开源库有:Picasso、Volley、Gson等.
项目名称:门窗 DIY 软件-Android
该款软件运行环境是安卓手机以及平板电脑,面向的用户是门厂销售人员,主要用来为客户介绍展示门与门框款式,以及让客户进行门与门框的搭配并收藏起来,同时也能将收藏的搭配删除 ,该款软件有些图片是绑定在安装包当中的,当安装完软件第一次启动时会把图片写入到 SDcard 当中,图片取出来使用 Picasso 库对图片进行缓存处理.
时间:.9-2014.12
项目名称:个人博客网站
该网站前台使用到BootStarp响应式框架,后台服务端主要使用Jsp+Servlet ,实现基本博客网站功能:发文章,阅读文章,对文章评论,博主管理所有文章,修改密码,更换头像.
大家好,我叫__,天津大学计算机应用专业硕士,6月份毕业,研究方向__,
我想从三个方面介绍自己:
(1)学习方面。大三时保送研究生,之后进入实验室开展项目研究。在_年时间里,先后参与了_个项目,其中_个纵向项目,_个横向项目,纵向项目主要是关于__,横向项目主要是关于__。这些分别对应我简历里的项目经历(1,2,3)。我本科绩点3.8,研究生绩点3.4。我__年一次性通过大学英语四、六级考试,__年通过托业英语考试,考试成绩__分(满分__分),__年通过软件工程师/网络工程师/系统分析师考试。
(2)实践方面。曾在软件公司实习了__年时间,曾在__当过计算机讲师,主讲__,另外,本科时曾参加过__比赛,并获得了__奖。实习期间,我的最大收获是:学校学习与工作知识的衔接,深切感悟将理论应用于实践的重要性和快乐。
(3)社会工作方面。本科和研究生都担任所在班级班长/ 部长,同时也在校学生会工作过。在担任班干部的日子里我具备了一定的组织、协调能力,并深深体会团队协作的重要性。
我的性格特点是,1.性格沉稳,2.考虑问题全面、仔细,3.做事有自己明确的想法和计划。
我的优势是1.自己全面的综合素质;2.做事分清轻重缓急;3.喜欢总结,避免犯同样的错误。
我的座右铭是:人因为梦想而伟大,机遇永远属于那些有准备、立即行动并能坚持到底的人!
我的职业生涯目标是,将来有一天能带领一个团队,做出亿万网民喜爱和尊敬的软件!做一个既懂技术,又懂业务的复合型人才。
看了程序员自我介绍的还看了:
单片机程序员的面试经验
需要掌握哪些技能
● 需要了解并使用过几款常见的单片机,
● 需要熟悉常见的硬件接口譬如 UART 、SPI 、I2C
● 需要了解一些传感器相关的知识,譬如声、光、磁、温、惯性器件
● 需要能看懂 datasheet 读懂芯片的操作规范,就是用代码对传感器的寄存器进行配置
● 能读懂原理图、看懂 PCB
● 会使用示波器、会分析电路
实际面试考什么
● C语言基础知识,算法水题
● 聊天,聊项目、聊如何实现的
工作中实际用什么
我面试成功的机会都是来源于这些主要做单片机的公司,而且都是小公司,进入的团队也小,做的东西也是两三个人就可以搞定的事情。虽然我自认为写程序还可以,但是每次答算法水题都答不好,让我着实比较郁闷,虽然近期已经补充了不少相关知识了,但是我还是感觉如果一直做这些单片机嵌入式的项目,我可能永远都用不到这些算法知识。
很早以前我就知道这些,计算机数据结构及算法之于单片机程序开发就是水月镜花。而另外一种意义上的算法倒是很实用,比如早在我毕业之前就买过一本北航出的《嵌入式系统软件设计中的常用算法》这本算是很使用的一本工具书,很多方法在实际的嵌入式软件开发当中十分有效,我把这一类算法归为DSP,也就是数字信号处理,要处理单片机中的数据都是数字信号的'数据,要对这些数据分析总结,处理之后是从传感器得到的信息,之后再使用控制器或通讯器对外界进行反馈
一点点感悟
我从事单片机开发这些年就是用这些技术一点点的做着一个又一个的不靠谱的项目,现在想想我一直在磨练自己的技术,然后丝毫没有用在成型的产品上,那么我做这些到底有什么用呢?之前使用PIC单片机做的电能检测器件可能小批量的生产了一些,但是远没有成为一个值得我骄傲的产品。每一次我都是在找公司的原因,其实我真正的倾注了多少心血在这些产品上面呢?每一次我都是把做这些东西仅仅当作一个工作来做,虽然我的技术不断的在进步,处理一些技术难点越来越游刃有余,但是我早已失去了当初在学校时的那份热情,
我开始在业余学习一些其他的技术,只把手中做的工作当作是一份糊口的工作,我觉得自己做的东西是没什么技术含量的,而且有些东西是慢慢打磨的,我倒不如趁着现在大好年华投身更丰富的技术海洋之中。久而久之,当初的那份赤成之心早已不在,我变得只是追逐工资增长的不断跳槽。而最近一年的嵌入式 Linux 工作经历也确实让我学习到了很多在操作系统下编程的技能,接触了以前不曾用到的文件编程、网络编程、也开始认真的研究计算机算法,现在我发现之前很多在单片机之下我迫切想使用的技术也不过如此。还记得我曾经想要自己打造一款实时操作系统。想要在单片机下实现多线程或是协程,有了操作系统这些反而是简单的,没有之前的程序写的复杂了。而这些简单的实现了之前在单片机上的复杂之后的事情,又有新的复杂的事情。有了多线程编程,要关注的同步和互斥的问题一点不比在单片机下要同时做很多事情简单。
还有视音频的流式传输,需要 buffer 的缓冲,处理起来也需要十分小心。而单片机开发更需要关注的是物理世界、电气世界的各种特性,需要将模拟的连续的信号变成数字的离散的数据,实时性强、过程简单的顺序结构。
一点点建议
● 还是认清自己最重要,不要被过去从事的技术束缚住,其实我现在看到很多以前做软件的人也在尝试单片机硬件编程,直接面对物理世界的反馈是一种很奇妙的感觉,相比于抽象的要处理数据库信息,处理真实世界的各种数据也许在某种意义上更加有趣,更加给人一种踏实的感觉。
● 每个人都可以不断学习新的东西,作为一个近二十年才普遍在人类社会兴起的工种,我们有太多要学习和探索的事情要做,身边少有工作二十年的工程师是因为这个行业还没有完全发展起来,因此绝对不要被别人软件技术是青春饭的胡话给蒙蔽。做一个坚持学习的人是值得别人尊敬的。
● 单片机程序员也是软件工程师的一种,做的事情一样有用而且有趣,做好了也能赚到不错的薪水,在其他软件程序员来说可能被看作是做硬件的,做底层的。但我理解的差别可能比写 java 和 python 的区别差不多大吧。反正没有一辈子不成长、不学习的软件工程师,除非他们转去做“管理”这样“高端”的职位去了。
面试-项目经验介绍
应届毕业生网为大家说说面试中项目经验这个问题
无论是应届毕业生招聘还是社会招聘,项目经验介绍都是一个非常重要的部分,
每个面试者都可能有不同的项目背景,不同的专业方向,面试官的.技术背景也有可能跟你完全不同,所以项目经验介绍很难做到对口,但是作为面试者,应该具备找到对口话题的能力。如何做到呢?
我认为在表达一个项目时,下面几个方面是必须要知道的:
用一到两句话简述你所做的项目。通常使用通俗的语言,不要有太多的技术词汇,如果你发现面试官的技术背景跟你的项目相关,你可以显得更有技术点,
详细介绍你所做的项目所实现的功能,这一点跟上一条基本相同。另外,还要让面试官感受到你在项目中的角色,介绍自己所完成的功能。
项目的实现技术和整体架构,能够表达出项目的不寻常之处,比如说开发项目时采用了何种新技术?什么样的架构保证软件质量等等。总之,让面试官听完之后有问题可问。
谈谈自己做完项目的感受,可以是项目管理上的体会,也可以是技术上的进步
★ 如何面试程序员
★ 面试经验