原本想分享毕业生和初级程序员如何进大公司的经验,但后来一想,人各有志,有程序员或许想进成长型或创业型公司或其它类型的公司,因此就干脆来分享些提高技能和经过面试的技巧,技巧我讲,公司你选,两厢便利。java
毕业生和初级程序员(通常是工做经验3年如下)大多处于事业的青黄不接的阶段,在找工做时每每会遇到缺少实际项目经验的瓶颈,做为技术面试官,我也常常在面试过程当中感觉到这些候选人缺少实际经验的缺陷。不过本人以前作过java兼职培训老师,也总结了些这批人群提高实际技能和面试技能的技巧,最近也老有人来问我这个,因此我就干脆把这写成博客文章。linux
公司通常会录用哪类人?咱们把各类答案概括成一句:须要技术匹配并且有相关项目经验的人,再简化一下,作过相关经验(通常是指商业项目经验,说再直白点就能挣钱的项目),那么用到的技术大多和公司要求匹配,也就是说,若是你有相关经验,那么和那些光有理论经验的候选人相比,就有代差优点,因此我在面试候选人时,常常会见到二本甚至三本大学生逆袭的场景。程序员
如何积累商业项目经验?尽快开始实习,若是能够,大二暑假就能够找个软件公司打工了,若是你有老师在外有项目,那最好也一块儿作,若是学校安排实习,那更得去。若是实在找不到实习公司,或者也能够去一些网站接些商业项目的兼职活。web
这里请注意,通常毕业设计的份量没商业项目的份量重,那若是你就只有毕业设计的经验,那只能和一样没商业项目的这群人一块儿竞争了。面试
代差优点能给你带来什么样的好处?算法
在校招时,大多数人没商业项目经验,但你有,你的简历经过初审的可能性就很是大,并且在实际面试时,哪怕你算法基础知识等问题没回答好,但只要让面试官确信你作过商业项目,经过面试的可能性也比无商业项目的人群要高不少。sql
在经过网站等形式投简历时,不少公司其实是要有商业项目经验的,若是你没,甚至连面试的机会都没有,但若是你有实习等的商业项目经验,那至少你经过初选的可能性就大大提高了。数据库
我在面试毕业生乃至初级程序员时,感受有过实际项目经验的人很是少,(这就更验证了有经验的人至关有利),并且,这批人经过面试的可能性比3年左右的程序员要小不少。下面我来分析下这群人的广泛问题。后端
问题1,商业项目经验不多,因此简历甚至没法经过筛选,这样根本得不到面试的机会。性能优化
问题2,即便有些项目组由于着急要人,从而让一些初级程序员获得面试机会,但在面试过程当中,这些人每每没法证实本身真的在项目中用过相关技巧,这些仅有理论经验的人经过面试的可能性很是小。
问题3:大多数初级程序员每每能经过准备,能知道算法、逻辑题和一些简单的说辞,没法证实本身掌握一些工做中必要的技能点,从而没法证实本身胜任这份工做。
上述问题的结果就是:在我手上经过面试的程序员,八成以上具备3年之上经验的,其实面试要求不难,能干活就行,但大多数的初级程序员就是无法证实这点。
针对上述问题,给出的建议是:学习和积累。
1 给本身制定一个明确的目标,工做后3年内尽可能少换,不然就得从头开始积累。
2 好比目标方向是Java后端开发,那么在工做中,别得过且过,多跟组里的前辈学,多掌握些知识点。
3 必定得围绕“性能优化”这个主题,好比内存性能优化,数据库优化,多掌握些项目中能用到的优化技能点。
4 哪怕你最近不许备面试,但也得边工做边看面试题,最好按期出去面试下。毕竟每一个人在学习过程当中都会走弯路,用句比较流行的话来说就是试错,经过不断的面试,能不断修正本身的学习方向。
这些也是能找到工做的最低标准,Java Core的标准以下。
Java Web方面的要求点大体以下:
而在数据库方面,最低的要求体如今以下三方面的需求。
第一,针对一类数据库(好比MYSQL,Oracle,SQL Server等),会基本的增删改查操做,会用一些基本的函数,会编写存储过程触发器索引等工具。
第二,知道一些基本的对项目开发有帮助的概念,好比范式,索引,分区等。
第三,能编写一些相对复杂的SQL语句,好比带链接,带子查询,嵌套查询等。
在java web轻量级开发面试教程这本书里,我对此作了详细的说明。
我知道,其实大多数的初级程序员都知道上述知识点,但没法有效地在项目中证实这点,并且,我以前也说了,上述仅仅是最低要求,接下来给出的要点将大大提高各位的面试成率。
这里给出些准备简历时的注意要点。
1 针对每份工做微调简历,在发给目标公司的简历中,多写些在该公司职位介绍时出现的关键字。
2 少写不相干的工做经验,任何经验都往目标公司的职位要求上靠,好比目标公司的职位是java后端开发,你写一些linux上项目维护的经验或数据库DBA的相关经验尚属搭边,但若是写上测试或实施等经验,就属于不相干了。
3 少写关于项目业务介绍的内容,由于目标公司不关心。
4 这个是关键,必定得结合业务实际,写上本身有过相关技能的经验。
好比目标公司要求有数据库优化的经验,那你就能够写,在xx项目里,对sql的执行时间有要求,因此在订单管理模块里,我用到了xx技术,实现了sql优化效果。
相似的文字要多,涉及到的项目年限也请尽量地长。这样当筛选简历的人和面试官看到你的简历时,不禁得不信你第一有实践项目经验,第二在实践经验中用过相关技术。
而在面试时,技术面试官必定会问到职位要求里的相关技能,你事先得准备。若是你能在面试过程当中有条理地说出你是如何在项目里用到相关技术的,那么这样的说服力要比你单纯说“你知道“要强不少,甚至有些面试官听到你的这些叙述后,会少问或不问相关问题。
这些证据能够出如今简历中,固然你更应该在面试中说出来。
我在面试中,每每会不得不从10我的符合要求的人里挑选出3人。(按我说10我的全要算了,但不行,预算不够)。这样若是某个候选人表现出优于别人的技能,那么这我的就必定是在同等条件里优先考虑的。
以下是Java Core方面能够准备的亮点。
在下表里,咱们列了些在数据库方面能够准备的亮点。
下面里列了Java Web方面能够准备的亮点
此外,你们还能够在Linux使用技能以及项目管理软件的使用经验方面展现本身的亮点。这里请注意,必定找合适的机会“顺带”地说,若是没机会宁肯别说,更不能仗着有所准备就直接自说自话地说。不然的话,反倒可能会获得“表达能力不清晰”或“叙述条理混乱”等的不良评价。