两年 JAVA 程序员的面试总结
前言
工作两年左右,实习一年左右,正式工作一年左右,其实挺尴尬的,高不成低不就。因此在面试许多公司,找到了目前最适合自己的公司之后。于是做一个关于面试的总结。希望能够给那些依旧在找工作的同学提供帮助。
面试
其实关于面试总结这块,我也看过不少文章,但是大部分都是关于面试题以及面试中的问题所谈。但是对于一个不擅长找工作的同学来说,其实在简历制作这一块很重要。因为简历没写好的话,连面试邀请都没,何谈面试呢。
所以我准备谈谈我对简历制作这块的一些见解。如有不妥,欢迎指出!
简历制作
在写简历这方面,需要下一定的功夫。毕竟简历就是你给别人的第一印象,而印象则决定你的面试机会。简历突出的就是一个简字,简历的制作不要过多,也不要过少。2-3页最好。
简历的三个重要点就是,我是谁、我要做什么、我能做什么。
第一点,个人的基本信息。
除了个人姓名、籍贯、现住地址等外,还需加上毕业学校、所学专业、工作时间等。重要的信息填上,无关的信息则少写或不写。例如身高、体重之类的。
第二点,求职意向。
这点很重要,可以的话,排版放在个人信息下面。求职意向主要就是期望工作的岗位、工作的地址以及薪资。工作岗位建议后面加个相关工作,可以少许提升面试机会。例如,java工程师及相关工作。薪资这块则建议填写面议,过高或着过低只会降低面试机会。
第三点,也就是HR最重视的一点,技术能力这块。
就写做掌握的技术以及相关熟练度,最好多用点技术关键字,毕竟不少的HR是按照关键字来搜索的。例如 JAVA、SQL、linux等。这点排版也建议放在求职意向下面。剩下的就是工作经历以及项目经验了。工作经历这块就不细说了。重要的是项目经验。项目描述这块,个人建议,第一点,你要告诉别人,你的这个项目是做什么,为什么人群服务,怎么使用。不要过多的说明用了什么技术,用这些技术怎么开发项目。这点大致提下就可,毕竟篇幅有限,使用技术这块和面试官相谈即可。第二点,项目负责开发的模块以及技术,这点需要让别人知道你在这个项目做了什么,用到了那些技术。第三点,项目业绩,这点看个人,如果不知道怎么写,可以写个人在项目学到了什么,或者碰到了那些问题,是如何解决的。
至于自我评价、获奖之类的,可以留在最后书写,写自己的真实情况,最好不要使用招聘网上的那种模版。
简历投递
投递简历这块这块看个人而定,智联、51、BOSS直聘、拉钩、猎聘这些还行,尤其是后三个,专门为IT行业服务的。可以多试试。
如果有内推的话更好。现在微信招聘之类的也不错,还有一些社区招聘之类的也可以多看看。
注意:如果面试收费之类的,这种就不用考虑了。在投简历的时候可以去看准网查查该公司的相关情况。
面试准备
在准备好简历之后,应该做些相关面试准备。
首先,是笔试题,这点是初级程序员绕不过去的坎。
笔试题一般的公司都会出的,除非你是大牛,可以选择不做。所以,还是老老实实的准备吧。
首先,基础相关面试题要做好。
一些JAVA相关的面试题型都有。还有在一些网站上面做面试题,例如牛客网和慕课网。
一些比较常见出现的问题,顺便列举下。
JAVA
5个常用的java-api包。
String类中常用的5个方法。
API接口开发的注意事项。
TCP/IP、HTTP协议。
集合相关的问题(重点)
HashMap、TreeMap、Hashtable、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的实现和区别之类的。
上述集合中的那些是线程安全的,那些不是。
在那些场景使用这些集合。
List、Map、Set三个接口,存取元素时,各有什么特点。
线程相关问题(重点)
创建线程的几种方式。
线程同步的方法。
wait和sleep区别。
Runnable接口和Callable接口的区别。
如何实现线程安全。
框架相关知识(这块反而不多)
Mybatis#和$的区别.
Hibernate和Mybatis的区别。
Spring MVC和Struts2的区别.
Hibernate的缓存机制。
什么是Hibernate延迟加载.
为什么要用spring。
SQL(主要考察Group by和Order by相关知识)
查询每个班级成绩最高的学生。
查找出每个班级成绩第二的学生。
按照班级查询每个班上总分前三的学生。
查找入职员工时间排名倒数第三的员工所有信息。
薪水排序后薪水排名在第2--8的员工。
按工资进行排名,排名从1开始,工资相同排名相同(如果两人并列第一则没有第二名,从第三名继续排)。
用一条sql语句取出所有姓名有重复的学员姓名和重复的记录数。
JavaScript/JSP/Servet (这些一般是基础题)
JSP的内置对象以及作用。
JSTL的常用标签。
Servlet的生命周期。
URL和URI的区别。
Ajax同步和异步的区别。
使用ajax发送异步请求的流程。
其它
&和&&的区别。
==和equals的区别。
int和Integer的自动拆箱/装箱相关问题。
IO和NIO的区别。
final、finally、finalize的区别。
重载(Overload)和重写(Override)的区别。
String、StringBuffer和StringBuilder的区别。
如何实现浅克隆和深克隆。
单例模式的实现以及最优。
排序的实现(冒泡、选择、快速等)。
去除重复的元素(实际是重写equals和hashcode)。
面试流程
现在有不少公司先是人事面试,然后技术面试。所以在人事这块谈论工资的时候,最好不要说死,或者先不谈,留着技术面试过了之后再谈。有点因为在工资待遇这块没谈好,就直接走人了。毕竟面试双方都要花费不少时间,所以这块需注意!
在相谈的时候,要注意礼貌,无论是否成功,都应该注意言行和态度。
一般技术面试这块会先让做个自我介绍,这块应该充大学开始讲,不应过多,重点放在工作上和项目上。大学这块就简单介绍毕业学校、毕业时间以及所学专业。如果有关于IT之类的获奖,可以提一下,但不易多说。
项目这块,可能会提问为什么这么做,如果让你来重新设计,你回如何设计。在这个项目中的困难点是如何攻克的,在这个项目中学习到了那些等等。
在项目讲述这块,最好找面试官所感兴趣的项目,一般就是做过的项目和所招聘岗位较为符合的。
在面试结束之后,理应说声感谢!毕竟面试其实也是成长的一种。
一般来说,技术面试过了的话,基本也就过了。剩下的就看待遇相谈这块了。在待遇这块最好遵循自己的想法,不要因为当初没谈好,后来工作时心中不满,产生的一系列问题。
面试技巧
个人能力这方面无非两个方面,广度和深度。
技巧很简单,就是说自己擅长的。技术掌握广,但是不深,就可以将自己的技术广度多说点,顺便可以提下自己的优点 例如:学习新技术很快;技术掌握深,但是不广,就可以将掌握的深度多说点,可以提下自己在学习这块的专研度。如果在这两点都没有太明显的优点的,可以尝试从项目业务说,最好将项目吃透。
与面试官相谈的切记要诚实,不要弄虚作假。碰到不会的或者了解不深的,直接跳过,最好将面试官引导到自己擅长的领域。
面试总结
面试完之后,最好进行总结。毕竟每一次面试都是一次收获。如果将面试中所遇到的问题以及感悟能记下来,那就再好不过了。
在找工作的时候,除了做些相关面试和准备熟悉以前做的项目之外,还应该学习新的知识。毕竟,每多学一点,成功找到工作的机会就大一点。而且,IT这行,技术发展过于快速,如果没有学习新知识的动力,终究会被淘汰。
因为学习实在是很枯燥无味。学习是一个长期投资,短期很难道看到收益,而娱乐是一项短期投资,短时间便可以看到收益。所以学习这块最好可以给自己定一个目标,每天学习一点,慢慢的会达到的。如果没有动力的话,可以给自己设置奖励。这是可以激发学习的兴趣的。
还有一点,今天能坐完的事情,绝对不要留给明天。毕竟,人都是有惰性的。你要相信你自己,今天的你能做的没有做,明天的你也不会做的。
最后,祝在找工作的各位能找到自己心仪的公司!!!
如果你对生活感觉到了绝望,请不要气馁。因为这样只会让你更加绝望!所谓的希望往往都是在绝望中萌发的,所以,请不要放弃希望!