万码学堂2013级毕业学员王*堃
学员发展:
2013年学员毕业后经学校推荐就业在青岛金石文理培训学校;
2016年入职青岛出版集团 ;
毕业留言:
关于面试,网上已有很多的技术贴,很多的教程了,但还是想针对软件行业的面试,自己总结点新的经验,供万码学堂学子参考。
没有工作经验?理论/技术知识不完善或者不熟悉?没有问题。就我个人而言,经历过多次公司面试,对面试中的一些问题也有一套自己的解决方案,特此分享。
对于没有工作经验者来说,有两种情况:
1、你技术的确是有,自己做过成型的东西,至少能够独立解决问题。
2、编码能力一般,参与部分项目开发。
对于第一种,从网上找一些成型的项目需求分析文档,了解最基本的需求。这个就要根据你面试的公司了。如果公司做网站,那就要多看一些商城/论坛的项目分析,然后了解一下网站高并发的解决方案,如果公司是做企业内部系统、ERP、OA,那你就要多看一些管理系统的需求分析,甚至是财务知识都要知道一些,然后多了解一下SQL语句优化,数据库高并发解决方案等等,这样在面试过程中,自己在应届学生中还比较具有优势,薪资等福利待遇也会不错,到岗位上发展一阵不会吃亏。
对于第二种,没有好的办法,一是多看理论知识,用强大的理论体系压倒面试官,无论是问你存储过程还是数据结构,需要对答如流;二是熟悉做项目流程,便于去公司较快上手工作。
对于少有面试经验的人来说
面试的过程比较微妙,因为在两个人交流的过程中,不光是公司和应聘者的相互了解,也是面试官个人与你本人的相互了解,一定要在对话中尽量保证面试官对你本人的好感,并且尽量让谈话的内容跟着你的节奏走,当然沟通谈话能力不是我说说就能改变的。从头举个例子~一般面试官都会让你介绍一下自己,这就是你尽情发挥展示你自己最好的一面的时候,有学历可以说学历,有工作经验就可以说工作经验,但是自我介绍的结尾就要给自己留好余地,比如你对自己项目比较自信,可以在最后说,“我在之前公司一直做项目分析和设计”,这样面试官基本就会顺着你的话,问你关于项目的一些问题,比如项目都有哪些模块,有哪些功能,这时要注意,如果你对项目逻辑了解的比较深,就一定要挑着逻辑复杂的模块介绍,如果你的代码技术比较过硬,就挑着功能实现比较困难的模块介绍,这样面试官紧接着的问题就会是“某个功能你是怎样实现的”,这样你就主导了你们谈话的内容,并且给面试官的感觉是你回答的都很正确,但是切忌过分明显的引导话题走向,比如在回答问题结束时,突然来一句“我对啥啥技术了解比较多”,这样的话容易让人厌烦,适得其反,当然,在面试中如果出现冷场,比如面试官暂时没有什么问题问你,他也处于思考中,你就可以这样说,“我还会神码神码的技术~”或是“我对神码神码的有研究”,不仅引导话题,也能让面试官认识到你会的东西比较多一些。
关于人事问题
人事问题最忌讳假大空,比如“我们公司java和.net都有,你为什么选择java?”如果你说java发展前景比.net好,那么很有可能碰钉子,因为这种事每个人的看法不同,有的公司做java但是他就觉得.net好,你也没办法,但是如果你这么说了,扣分是一定的,比如“我一直就擅长java开发,因为之前公司主要是做.net,没办法”。这只是个例子,还有比如“什么是好软件?”,如果你的答案中存在“运行效率”、“代码整洁”、“逻辑清晰”、“美观”等等这些词,那就直接宣布你零分了,什么是好软件?一句话“用户说好那就是好”!千万别把你那一肚子技术词汇搬出来,糊弄外行还行,内行人可是看门道。而且大部分软件公司喜欢的都是能闷头苦干就知道加班的人,有思想是好事,但千万别过,说自己兴趣爱好的时候尽量往计算机方向扯,要么就是团队运动,比如足球篮球什么的,起码能表现出你有团队意识。
关于技术问题
切记点到为止,除非面试官让你详细说明,不然的话就把大体意思说清楚就行,面试也是在谈话,平常说话还经常会说错呢,难保话多口误,万一把一些基本的东西随口说错了,那印象分肯定大打折扣。
面试中技术问题最困难的就是你不会的东西,怎么答?我一般很少遇到这种问题,为什么呢?因为我对自己做的项目比较自信,从一开始就把话题引导到项目分析上去,这样我就可以滔滔不绝的介绍我做过哪些项目,哪些复杂逻辑,相比起来技术问题问的比例就少一些。这是一种规避策略,一是给人一种项目经验丰富的印象,二也确保了自己面对的纯技术性问题会比较少。
但是如果真遇到了,那必须保持淡定。
解决方案:交代自己没用过,但是在项目开发中用了什么样的解决方案来解决这种技术问题,或者说自己用了别的什么技术来作为替代。这样起码展现出自己在项目开发过程中不会有什么问题。
解决方案:明确表示自己曾经用过,但是因为太久没用过了,淡忘了,如果开发中遇到这种问题,稍微看一下资料就能解决。这个不是特别推荐,如果是常用技术,建议别这么答。
我个人认为程序员面试要了解的东西,这都是一些比较大的问题,只需要大体了解,问到的话能说明白就行。
1.数据库高并发解决方案
2.服务器超大访问量解决方案
3.管理系统权限分配
4.SQL语句优化
5.什么是工作流?如何实现?
6.SEO优化的一些细节
如果你能在简历上写上你了解这些问题,并且在面试中对答如流,绝对是加分的。而且如果你了解这些问题,很大程度上面试官就不会问你一些特别底层的技术问题了,对你面试成功又是一大帮助。
结语
工作就像谈恋爱,面试就是相亲,双方只要看对眼了,就不会在乎之前相过多少次亲了。其实我说的天花乱坠也没用,如果你真的技术够硬,那面试只是过程而已,所以,技术才是硬道理!