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