转:java项⽬经验⾯试总结
转载:
在前期已经讲过怎样分析⾃⼰,对⾃⼰进⾏⼀个准确的定位,选择⼀个合适的求职⽅向!并结合⾃⼰的实际个⼈情况来写⼀份针对性很强的个⼈简历!个⼈简历就是个⼈的⼴告!好的简历可以更受到⽤⼈需求单位青睐!好的简历才能让你获得⾯试的机会!我们还针对⾯试列出了
j2ee⽅⾯的知识点!不管是笔试还是⾯试都是会考到这些⾮常重要的知识点!⾯试的技术内容并不会有想象中的那么难,主要注重基础和细节!细节决定⼀切!所以列罗的那些知识点是需要下功夫去准备的!当然列罗的那些知识点只是⼀些在⾯试中经常会出现的问题集!每家企业都可能超出这些知识点的可能(就不要骂我了)!⾃⼰去准备吧!
技术⽅⾯的考核通常分为笔试,技术⾯试;其中技术⾯试⼜分为专业知识⾯试和项⽬经验考核。应该说来笔试和专业知识⾯试都是考核你对某⽅⾯(j2ee或)知识的掌握和熟练程度!⽽项⽬经验考核则是看你是不是拥有项⽬经验,是不是适合企业的⽤⼈需要,是不是需要企业为你付出培养的成本,是不是你能够马上投⼊到⼯作中去.企业是以你的项⽬经验作为衡量你的⼯资标准的!所以就是会出现有些同学可能在学校学习成绩很好⽽企业给他开的⼯资并不⾼,⽽有些同学的学习成绩⼀般反⽽得到⾼⼯资的原因!专业知识的考核只是企业了解你具有这⽅⾯的专业素养和能⼒!其实有时笔试成绩差⼀点或者你感
觉在做笔试题的时候有些题⽬没有做出来或答错了并没有关系的。在技术⾯试的时候,在回答专业知识⽅⾯的题⽬不够理想,也并不起决定性的作⽤!总之笔试和专业知识⾯试的答题达到企业要求的70%就可以了!当然如果你在专业知识⽅⾯表现的太差,考官对你也就没有多⼤的兴趣了!但是最能决定企业下定决⼼录⽤你的关键在于你的项⽬经验(排除企业特别强调英⽂等其它⽅⾯能⼒外)。说了这么多好像都没有说到正题,这是因为让⼤家更清楚的了解回答好项⽬经验⽅⾯的问题是多么的重要。⽽这⽅⾯⼜正好是刚从学校出来的学员⼗分薄弱的,并且针对这⽅⾯介绍也⼗分少!下⾯我们就来谈谈⾯试中关于项⽬经验的问题及应该从哪些⽅⾯进⾏回答!
问题⼀、请简单的介绍⼀下你⾃⼰吧!
分析:这是在任何⾯试中都会遇到⼀个题⽬,看起来这个问题是⼗分简单的,但是往往我们并不知道考官问这个题⽬是希望从你的回答中获得什么信息!所以我们就很容易⾛题,跑题,不⼊正题!不能马上就吸引考官。请记住抓住⾯试的每⼀个机会来推销⾃⼰。但是往往我们不知道从哪⾥谈起。所以我们得先了解考官想要获取什么信息呢?
1.你的从业时间你从事相关的⼯作有多长了
2.你的教育背景你是否受过良好的教育
3.你的⼯作经验你是否有过具有⼀定的⼯作经验
4.你的项⽬经验你是否有过丰富的项⽬经验
5.你与众不同之处你是怎么进⾏项⽬开发的,有什么特别之处,或者你在哪些项⽬中
取得过哪些成功,或者有哪些⾃⼰觉得骄傲的地⽅
6.你最擅长的地⽅你最擅长的技术是什么?
7.你的性格你是怎么样的⼀个⼈
怎么回答: 我们⼀⼀来分析吧,⾸先从业时间⼀般回答你进⾏软件项⽬专业开发的时间.千万不要把你以前在⼤街上卖过鱼蛋或到夜市卖烧鸡等乱七⼋糟的时间计算进来.⼯作经验也是,你⾄少有在⼀家公司呆过吧.不要告诉我你只学过j2ee或半年时间,就想来我公司混饭吃.要和你的简历对应起来.⼀般⾄少1年半以上.
教育背景:如果你上的⼤学及所上的专业⽐较对⼝,就说出来,⾮否就不要提了.总之是要扬长避短
⼯作经验:也就是以前在什么公司上过班,与你简历上的⼀致就可以了.只说与软件开发的⼯作经验,其它的就不要提了
项⽬经验:你曾经做过的⾃认为⽐较好的项⽬,这⾥特别重要,先⽤⼀句话来概括项⽬,然后把项⽬的功能及⼦功能全部叙述出来.
你与众不同之处:也以说你在项⽬你以什么独特的⽅法获得什么不同的效果,主要是能够结果具体的项⽬或能举例说出来.
最擅长的地⽅:主要告诉对⽅你最擅长哪⽅⾯的技术,是需求分析?编码,或或
你的性格:⽤⼀两个词来形容你⾃⼰,描述你的性格.
回答实例:
⾯试官:请简单的介绍⼀下你⾃⼰吧!
令狐冲:您好,在下令狐冲.从事j2ee开发⼯作3年时间.20002年⾄2005年在⼤宋桃花岛软件⾕皇室软件公司从事j2ee项⽬开发.其间开发过⼤宋侠⼠综合管理平台.⼤宋侠⼠综合管理平台能够⾃动收集⼤宋各路侠⼠,英雄好汉,隐居⾼⼈信息并对他们的个⼈信息及所作所为进⾏跟踪管理,实现侠⼠信息维护,查询.侠义事件维护,侠⼠等级管理,侠⼠奖惩管理,侠义活动发布,抗灾募捐管理等。鄙⼈在项⽬中主要负责需求分
析,架构设计和框架类代码实现。在项⽬开发中善于与客户沟通,充分理解客户需求。具有极强⾃学能⼒,在⼤宋藏经阁中通读了⼤量的软件项⽬开发秘籍,具有藏⽂,印度⽂,⾦⽂的读写能⼒。
问题之⼆、谈谈你的XXX项⽬吧!
分析:考官通过看你的简历或者你的介绍来了解你所做的项⽬,那么考官肯定想更详细的了解您的项⽬,看是不是与你的简历写的项⽬经验⼀致。也就是考核你是否具有真实的项⽬经验。⼀般来说,在你的简历⾄少有⼀个重点项⽬,放在简历项⽬经验栏的第⼀位。把项⽬的业务功能描述清楚。在这⾥你就是重点谈⼀个项⽬就可以了。从下⾯⼏个⽅⾯来进⾏陈述
1.⽤⼀句话简述项⽬
2.详细的列出项⽬实现的功能
3.说出项⽬实现的技术和架构,能说出项⽬的不寻常之处,⽐如采⽤了某项新技术,采⽤了良好的架框等
4.能让别⼈感觉出项⽬的规模
5.说出你在项⽬中的责任
通过这些来证明你是的确开发过了这个项⽬,并且这个项⽬是⼀个真实的。还有就是你是真正具有项⽬经验的。乎合企业的⽤⼈需要。
特别注意要把项⽬所实现的功能描述得越详细越好。当然⽤词要简洁,表达要流利。其次要尽可能采⽤专业术语,显得你的专业。不要犯低级错误。
请记住,你要描述的是整个项⽬⽽不仅仅是你做的那⼀个模块。有些项⽬你只参与了其中⼀个模块,但是你要把整个项⽬描述出来,不要仅仅描述你参与的那⼀个模块。
说出你项⽬采⽤的技术及架构,还要能说明你在项⽬中的责任。
回答实例:
⾯试官:令狐冲,能介绍⼀下你做的⼤宋侠⼠综合管理平台吧!
令狐冲:好的,⼤宋侠⼠综合管理平台是为⼤宋武林联盟开发的,实现武林联盟管理的⾃动化。⼤宋侠⼠综合管理平台能够⾃动收集⼤宋各路侠⼠,英雄好汉,隐居⾼⼈信息并对他们的个⼈信息及所作所为进⾏跟踪管理,实现侠⼠信息维护,查询.侠义事件维护,侠⼠等级管理,侠⼠奖惩管理,侠义活动发布,抗灾募捐管理等。
系统基于B/S三层架构,采⽤ + + Spring MVC框架.使⽤数据库.
本项⽬只投⼊15个⼈,开发周期为6个⽉。本⼈在项⽬中进⾏了前期的需求分析,系统架构实现,数据库建模,及部分编码⼯作。
问题之三、谈谈你们是怎么对这个项⽬进⾏开发的?(谈谈你们是怎么进⾏项⽬开发的?)
分析:这个问题是考核你是否熟悉软件开发的流程,同时也是考核你的项⽬经验,你的专业素养,从这⾥可以判断出你参与过多少项⽬,可以判断你对软件⼯程的理解和熟悉程度。这个问题是⼗分关键的,你需要准备的知识点有:软件项⽬的⽣命周期、软件项⽬的开发模型、⾯向对象的分析和设计、软件质量保证等。
软件项⽬的⽣命周期:
项⽬计划
需求分析
设计(概要设计和详细设计)
编码java可以开发什么软件
发布
维护
项⽬计划阶段:⾛访客户,进⾏交流沟通,获得客户原始需求。
对客户的需求和市场等进⾏调研,分析,编写可⾏性分析报告。
通过不断的与客户沟通,客户不同环节的⽤户进⾏交流来获取需求。召开评审会议,报告可⾏性分析,报告⽤户原始需求,报告项⽬远景规化。
需求分析阶段:
在客户原始需求的基础上不断与客户沟通,充分的熟悉和深⼊客户业务,获得充分的业务需求,完善⽤户需求和功能性需求,了解客户的相关约束⽽获得⾮功能性需求。最终编写《需求规格说明书》;召开需求评审会议,客户确定需求,并签定合同;编写项⽬计划说明书;编写测试计划;召开项⽬启动会议,项⽬正式启动。
概要设计阶段:根据《需求分析说明书》,进⾏⽤例分析,获得充分⽽有效的⽤例。编写界⾯原型,编写编码规范和界⾯风格规范,数据库设计规范。⽤uml⼯具画⽤例图,编写有效的⽤例规约⽂档。划分项⽬功能模块.评审⽤例及⽤例规约⽂档。
详细设计阶段:根据完整的⽤例及需求进⾏分析,获得数据库所需的相关信息,画数据库E-R图,编写数据设计说明书.进⾏数据库建模。进⾏详细的分析,⽤uml⼯具画类图,确定每个功能模块的⼦功能,抽取项⽬的公共部分成为⼀个公共模块。确定项⽬的架构基础。确定需要⽤到的类及类成员和⽅法。确定⼀些辅助类及⽅法。对每⼀个⽤例都⽤uml⼯具画出顺序图。编写详细设计说明书,评审详细设计说明书,进⾏基础框架搭建。列出任务清单,进⾏任务分配。
编码阶段:以⼩组的形式进⾏代码编写,编写单元测试⽤例,每完成⼀个类都要进⾏单元测试。每完成⼀个功能点和模块都要进⾏集成测试。确保每⼀个功能点和模块完成后都是⼀个可以看得见、摸得着的产品。⽽不是等到最后才进⾏统⼀的调试和搭配。每天都要对代码进⾏检查和优化,也就是所谓的重构。
测试阶段:根据测试计划对项⽬进⾏系统测试,以及⽤户的验收测试
产品发布:交付完整的产品和设计⽂档。把产品布署到客户的计算机上,确保产品的正常运⾏。客户签收。
维护阶段:为客户提供技术保障,对产品进⾏相应的维护和升级⼯作
软件常见开发模型
瀑布模型:最经典的过程模型,适⽤于需求明确,规模较⼩的项⽬
喷泉模型:迭代,⽆间隙特点,适⽤于⾯向对象的软件开发过程
螺旋模型:
MSF模型:微软解决⽅案过程模型
什么是极限(XP)编程:极限编程是对软件开发⽅法的⼀种实现。它强调测试先⾏,也就是在编写代码的时候先编写测试⽤例;循环迭代,每⼀次迭代都是⼀个可⽤的产品;重构,不断的对代码进⾏优化;结对编程,两个⼈为⼀对共同进⾏代码编写;它强调团队之间的知识传播,让团队的每个⼈都能熟悉软件开发的各种技术。如:⽀持熟悉数据库的⼈去做界⾯,做界⾯的⼈去做数据库等,通过不定期的⾓⾊转换来增强团队的能⼒。要求客户参与到软件开发中来,开发出最适合客户需求的产品。
单元测试⼀般是在编码的时候同步进⾏的,⼀般是以类为单位进⾏测试,当⼀个类完成了编码,并编译正确后才进⾏的测试,测试这个类是否已经能够实现指定的功能。⼀个类能够正常的编译成功并不意味着这个类就已经完成了,还要通过测试,设置断⾔来确定他是否已经达到了预期的效果,实现了特定的功能。调试,编译通过只能证明代码的语法没有错误。
单元测试由程序员⾃⼰来进⾏,也可以在项⽬⼩组内交互进⾏。单元测试是采⽤⽩盒测试
集成测试⼀般指实现了⼀个功能点或⼀个模块后,为了测试这个模块是否已经实现了需求要求的功能。集成测试可能需要对多个类进⾏组装,也可能需要与以前已经测试通过的模块进⾏组装,是对产品组件的系统整合和执⾏。集成测试可以根据模块的⼤⼩分不同的级别,在现⾏的软件开发中,每完成⼀个功能模块都必须要进⾏⼀次集成测试,使得你完成的模块是⼀个可以运⾏的产品。集成测试⼀般可以由项⽬⼩组的负责⼈(或指定⼀个⼩组成员)来完成。集成测试采⽤⽩盒式测试和⿊盒测试
系统测试⼀般指项完代码已经全部完成,交给测试⼩组来进⾏测试。进⾏系统测试的⼈员独⽴于开发⼩组,系统测试⼈员把完成的产品布署在相应的计算机环境中,按照测试计划进⾏测试,验证系统是否满⾜了指定的需求。系统测试除了测试产品应满⾜基本的功能需求外,还要对产品的性能,⽤户界⾯,安全性,压⼒,可靠性,安装和反安装等⼏个⽅⾯进⾏测试
系统测试采⽤⿊盒测试
验收测试⼀般指产品交付给客户,负责把产品布署在指定的计算机环境中。由⽤户根据需求⽂档,进⾏的总体测试。验收测试的内容和系统测试⼀样,只是执⾏者不同。都是除了测试系统完成基本功能外还要对性能,安全性,可靠性等进⾏测试。验收测试也是采⽤⿊盒测试
为什么需要测试?测试是对软件质量的保证,只能通过严格测试的软件才是合格的软件,测试并不是说让软件能够编译通过,测试是让软件
产品最⼤程度的满⾜客户的需求度。
回答实例:
考官:令狐冲,能谈谈你们是怎么样对这个项⽬开发的吗?
令狐冲:⾸先,我们这个项⽬已经有了⼀个基本的⽤户原始需求。但这是不够的,我们都知道需求分析是⼗分重要的,所以我们在⽤户原始需求⽂档的基础上,再次进⾏了分析,通过不断的与客户沟通,充分的了解和熟悉⽤户的业务,完善了业务需求和功能需求。还对⽤户业务需求和功能需求分析完善为实现软件的必须的⾮功能性需求。得出项⽬需求规格说明书,经过评审会议确认通过。
根据需求规格说明书进⾏⽤例分析,通过分析和讨论出充分的有效⽤例,并⽤Rose画⽤例图。对每⼀个⽤例进⾏详细的分析,完成每个⽤例的⽤例规约⽂档,并编写界⾯原型。划分项⽬模块。最后对⽤例及⽤例规约⽂档进⾏评审验证。编写”代码编写规范”及界⾯风格规范,数据库设计规范,编写概要设计说明书。
根据需求规格说明书和分析各个⽤例规约⽂档,获得数据库的基本信息原型。也可以说是数据库表的草稿,根据数据库表草搞进⾏分析,进⾏数据库设计和优化。编写数据库设计说明书。采⽤PowerDesigner进⾏数据库建模,并⽣成SQL脚本。确定项⽬框架,设计公共模块和辅助类。根据对
数据库模型和⽤例规约⽂档的分析,列出对象清单和理清对象关系。⽤Rose来画类图。对每⼀个⽤例都⽤rose画出时序图。编写详细设计说明书。列出任务清单,分组进⾏代码编写。
在代码编写阶段,先统⼀完成所有的实体类。对于⾮实体类则先完成类的框架,也就是只写⽅法和注释⽂字。具体⽅法的实现暂时为空。然后再进⾏代码填写。每完成⼀个类的代码编译通过后都要进⾏重构和单元测试。每完成⼀个功能和模块都由会由⼩组长进⾏集成测试。使得完成的模块是⼀个真正可以运⾏的,可见的功能实现。
在各个⼩组都完成⾃⼰的模块后就进⾏模块整合,进⾏⼀次⼤规模的集成测试。然后把产品产给产品测试⼩组进⾏系统测试。
问题之四、你们是怎么保证软件开发的质量的?
分析:这个问题其实上⾯的讲解已经给了答案了。软件质量是软件实现对需求的满⾜度。开发的软件越满⾜客户的需求,说明软件的质量越⾼。反之就是质量越低。尽管你开发的软件使⽤了新的技术,良好的设计,丰富的功能;但是这些功能都不是客户需要的,客户需要的功能没有实现或者是很多没有实现。这样的软件也是失败的软件。为了保证软件质量,也就是让开发的软件最⼤程度满⾜客户的需求,只有两个⽅法。⼀个是获得充分完整的需求,⼆是能过测试,以需求为中⼼编写测试计划。来保证软件合乎需求。
回答实例:
考官:你们是怎么来保证软件的质量的呢?
令狐冲:要保证软件的质量⾸先就要获得完整的需求,在需求分析阶段做了⼤量的⼯作与客户各个环节的代表性⽤户进⾏沟通,充分了解和熟悉客户的业务。并且从需求到设计阶段都保持与⽤户的沟通和交流。让⽤户的业务专家⼀直参与我们的需求,分析和设计⼯作。
其次我们会在需求分析后就编写测试计划,在开发的每个阶段都进⾏相应的测试来保证代码是乎合相应需求的。在代码编写过程中,每完成⼀个类都由程序进⾏单元测试,每完成⼀个功能点或模块都要进⾏集成测试,每⼀次集成测试都对上⼀次的已经测试通过的产品进⾏迭代,也就是以前测试成功的都会加⼊到本次测试中来。使得每个完成的功能和模块完成后都是⼀个可以运⾏的,可以看得到的产品;同时也欢迎⽤户来见证我们的集成测试结果。代码编写完成后进⾏最后⼀次集成测试,然后交由独⽴的测试⼩组对项⽬进⾏系统测试。
问题之五、你为什么离职的?(你为什么离开以前公司的?)
分析:这个问题⼏乎在任何场合的⾯试都会有,有时是在技术⾯试的时候问,有时是在⼈事⾯试的时候问,有时会在技术⾯试和⼈事⾯试的时候都问。其实也⽐较好回答,回答的抽象⼀点⽐好。切记不
要说以前公司的坏话,如果你这样做。⼈家会想,你以后离职后同样也会说这家公司的坏话.⼀般都是说为了某求更好的发展空间。让⼈感觉你是经过深思熟虑后才选择他们公司的。
回答实例:
考官:你为什么离开以前公司的?
令狐冲:以前公司对我很好,我在以前公司⼲得也很愉快。我因为合同到期,为了获得更好的发展空间及谋求对⾃⼰能持续发展的环境。并向公司办理了离职⼿续,完成了⼯作交结。(后⾯这句也可以不谈)
问题之六、谈谈你的职业规化
分析:企业都希望他所招聘的⼈是潜⼒股,看你是不是⼀个追求上劲的⼈,还有想看看你能够在企业长期⼲还是仅把其当着⼀个跳板。总的说来,回答这个问题要让⼈觉得你是⼀个可培养,有潜⼒⼈。记住要看是什么样的⼈来⾯试你。如果是项⽬经理来⾯试你,你就不要说你以后的职业规化是项⽬经理。你就可以说你的职业规化是成为架构师,或者是技术专家等。否则他可能会认为你是⼀个对其有威胁的⼈。就算他内⼼知道这不算什么,可能⼼理总会有⼀点点不爽。如果是⽼总⾯试或⼈事问你这样的问题,你则可以说项⽬经理也⽆妨,不过要给⼈有⼀种觉稳的感觉。
回答实例:
考官:你的职业规化是怎么样的呢?(考官是项⽬经理)
令狐冲:我思维能⼒⽐较强,擅于逻辑分析。在之前的⼯作中积累了⼀定的架构经验,以后就想成为⼀名架构师和技术专家
写在最后:上⾯的这些问题都是⾯试中⼗分常见的的问题,⽐较难以回答的。有些看似简单却不知从何说起。有些看似复杂却⼜并不复杂。因为很多⼈都缺少项⽬经验,对软件开发的过程相对陌⽣,⽽⽼师讲这⽅⾯的知识也⽐较少,如果你没有⼀定的代码和项⽬积累就算⽼师讲你也很难去体会、理解。再说这⽅⾯的内容太要求实际经验和⽇⽉积累,⽼师也不好讲。现在我采⽤把枯燥的概念和实际的项⽬结合起来进⾏归纳,从⽽形成这样⼀个答题技巧。并且对其中的⼀些技术结合实际进⾏分析和总结。希望阅读者能快速的知其然也知其所以然。从⽽能够提⾼⾯试的成功率。当然这仅仅是⼀个答题技巧,关键还是需要知识的积累。有道是“不积跬步,⽆以⾄千⾥;不聚细流,不以成江河”。这次完成此⽂也是我⾃⼰对知识的⼀次梳理,我并没有去查阅和考证书本。我想完全通过⾃⼰的语⾔来描述项⽬开发的过程和⼀些细节。⼜因我实在是才疏学浅,真的希望⼤家能对我的不当及错误之处指出并加以指教,我就涕感泪流了。不管是技术还是⼈⽣,我才刚刚上路呢!
希望它能够对未就业的学员的就业及对张⽼师的⼯作能有所帮助!
引⽤地址:blog.csdn/shz2008bj/article/details/2869522
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论