您当前的位置:首页 > 计算机 > 编程开发 > Java

Java中级软件工程师面试心得

时间:01-31来源:作者:点击数:

已经一个多月没有写文章了,这些天,我先辞职,之后在家带孩子,准备面试相关资料,然后上周开始投简历、找工作,面了两天选择了一家中型互联网公司,经历了不到一个月的时间。相较于之前甲方提需求乙方做内容的工作,我的内心其实更想挑战做自己的产品,虽然客户群体不定,但是不是更有挑战,每天都有新的感觉吗?嗯。。。这十分符合我射手座的喜新厌旧的性格

和之前面试初级时的心态和方法不一样,这次我准备了不止一个月,其实从去年我就开始在刻意准备,随着工作越来越长的时间,我越来越发觉知识的重要性,知识就像一个无底洞,永远会挖掘到更深一层的理论,比如我在学习多线程的时候,我是通过看书理解知识,书的名字是《Java并发编程的艺术》,从这本书中,我受益颇多,这本书刚开始讲的,并不是Java的多线程,而是先讲了Java的JMM(内存模型),在了解内存模型之后,你可能会有疑问,各个操作系统间运行java环境是怎样的情况?还有在学习JVM的时候,学习了JVM的内存结构,但是各个结构的具体作用和场景又有没有研究过呢?还有很多类似其他的问题需要我们思考和研究。但是,在学习过程中要讲究方法,也不能一直沿着无底洞走下去,那么学习效果可能并不是很明显或者学习成果在工作中根本用不上,对此,我的心得是:划定范围,要学会分层学习。

Java学习阶段:初级、中级、高级、架构师;每个阶段都有不同的能力要求,就像一个木桶,木桶的每块木板都差不多高,才能装水。单单某块木板很高,其他木板都很矮,水的高度是达不到最高木板的高度的。学习也是一样,初级:要求你熟练敲自己用的代码,熟悉业务场景;而中级:要求熟悉某些技术的底层原理,而且要有更加广泛的技术知识。高级:对于接触过的知识能熟练使用,并且了解其运行机制以及其他更多的技能吧。架构师:能搭建框架、项目以及掌握高级工程师的技能吧。我说的这些初级、中级、高级等等不包含像类似BAT大厂,只针对普通公司。

那么,什么是分层学习呢?

和盖楼差不多,要建一座30层的高楼,不可能先搭一栋楼的某一边直接盖到30层,需要整栋楼齐头并进,先搭一层才能搭第二层,第三层,第四层。。。学习知识也是一样的道理,举个例子:可能之前没学习过JVM,学习的时候就直接从啥也不知道到系统的指针甚至C语言的深度上去了,但是,这样的学习有个bug,就是如果你对JVM根本不了解,那么其实技术层次可能只是初级,除了JVM,对其他的基础知识可能了解的也不是很多,那么在深入了解JVM的时候,遇到比如多线程,锁,基础类型,左移右移,其他语言时,也会遇到困难。坚持学到底的话,过程会很痛苦,因为不懂。得过且过的话,学到的知识记得又不牢固,或者说根本不理解。因此,这时候,需要对所学知识做个切面,比如先了解JVM的内存结构,之后再了解类加载机制或者方法的加载机制,后者的理解有助于加强前面知识的记忆,不要贪心,每一个阶段都会有要学习的知识在等着你。

怎么分层呢?

在学习知识的时候,或者是准备面试的时候,可以从网上了解一下当前比较热门的知识点,然后自测一下,看自己的掌握程度是多少,如果只是能答出来用法,那么只是初级;如果能答出来底层是怎么运行的或者底层代码,那么是中级;高级的话,我还没研究过,这里不说掌握程度是多少。如果想面试初级或者中级,通过自测,再根据自测的结果,就能大致知道自己的水平是什么了。如果想达到某个水平,可以根据结果去针对性学习,避免“偏科”。


投简历(有些心酸)

投了很多家,大概得有一百多家吧,只有几家给我了面试邀请,我觉得面试几率低的原因有几个:

第一:我是在Boss上投的,根据我之前收藏的公司投递简历,我看其实有几十家公司根本没看到我发的信息(未标记为“已读”),我觉得要么是公司只是挂职位不想找人,要么是该岗位投递的人忒多了,把我挤在后面了(我更倾向于第一种)

第二:我的简历上项目经历比较单一,无高并发,项目周期也不长,学校是个很普通的学校。可能有些HR看到了就直接过滤掉我了

第三:我是四年工作经验,但是每家公司工作时间较短,因为某种原因,导致每家公司呆的时间不到两年,所以可能是考虑到稳定性元素。因此,能不跳槽就别跳槽,积累经验才是王道。


面试记录

周三上午:第一家公司(互联网公司):该公司是个中型(500~999)互联网公司。先是自我介绍,然后问项目以及穿插问相关知识点,我觉得感觉还可以,不算很难,面试官是个技术栈,面了两个多小时。

知识点:

(1)git和svn的区别

(2)Spring Cloud具体应用、Spring Cloud全家桶以及有没有必要使用Spring Cloud

(3)SpringBoot的具体使用

(4)SpringBoot与Spring的区别

(5)Spring的组成

(6)Spring FrameWork介绍(核心IOC和AOP等)

业务讨论:

(1)项目上的讨论,包含应用场景、技术栈、

(2)项目所用技术栈讨论

(3)针对某类业务的需求讨论

(4)未来职业规划等。

周三下午:第二家公司(制造业公司):这个公司是个知名的制造业公司,平时用的家用电器好多都出自他们家。开发业务主要是集团内部系统以及承接外包任务等等。先是自我介绍,然后根据简历问一些基础知识等等,我认为面试官技术很厉害,但是有些高傲。后面还有两个hr面我,问的都是一些像心理测试类的问题,感觉很格式化耽误时间。技术方面感觉不错,但是hr面感觉一般,浪费时间。

知识点:

(1)volatile原理

(2)ThreadLocal原理

(3)其他的忘了

业务讨论

(1)项目讨论以及技术栈的提问。

(2)职业规划

周四上午:第三家公司(国企):位置很偏的一家上市公司的研发子公司,工资比较低,但是不累。进去问我简历带没带,我把我的简历给她之后,直接甩给我几张初级面试的卷子让我答,答完之后进行面试,面试官一直说,达不到你期望的薪资,然后找了他们领导面我,领导一副懒得录取你的模样,随随便便问了一下,主要是问完之后就直接自己回工位,我还得自己找门口出去。

知识点:

忘了

业务讨论:

(1)项目以及技术栈的提问

(2)职业规划

周四下午:第一家公司(复试):由于周三上午面试官对他领导反馈不错,所以要复试一下我,复试的面试官是个经理,感觉比较注重业务以及个人思想还有职业规划,讨论的基本上没有技术。最终我也是选择的这家公司。


最后,献上周总理的一句话:学习是人类进步的阶梯!

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门