作为一个Java程序员,java开发模式面试

接口概述:

接口是Java语言中的一种引用类型,是方法的"集合",所以接口的内部主要就是定义方法,包含常量,抽象方法(JDK 7及以前),额外增加默认方法和静态方法(JDK 8),额外增加私有方法(jdk9)。
接口的定义,它与定义类方式相似,但是使用 interface 关键字。它也会被编译成.class文件,但一定要明确它并不是类,而是另外一种引用数据类型。
public class 类名.java–>.class
public interface 接口名.java–>.class
接口的使用,它不能创建对象,但是可以被实现(implements ,类似于被继承)。一个实现接口的类(可以看做是接口的子类),需要实现接口中所有的抽象方法,创建该类对象,就可以调用方法了,否则它必须是一个抽象类。

一、不少培训班候选人的简历中,缺乏足够的商业项目年限

不少同学会有这样得感受:投出去不少简历,但就没有面试机会,对培训班出身的朋友来说,可能这种情况更甚,原因是,这些简历没过筛选。

没过筛选的原因无非有两个

  • 第一,关键技术的项目实践经验没达到该职位的规定年限
  • 第二,简历上描述的技术和该职位的需求严重不符。

比如本岗位需要一个有3年Java开发经验的人,某简历上写,虽然有3年经验,但不是做Java,只是最近3个月在某培训学校里呆过,虽然这三个月的经历写得花团锦簇,但抱歉,顶天也只能算3个月学习经验,甚至还没法算成是商业项目经验,可能我所在的是大公司,所以这类简历一定没法通过筛选,更没有面试机会。

我看过不少此类简历,相关商业项目年限缺乏到不值得面试。相反,我也见过不少锦上添花型的培训经历,比如某人一直在做Java,最近参加某个培训班,上了大数据或机器学习或云等高端技术,那么此类简历是凭足够的项目年限过筛选,而在面试中,如果从培训班里学到的技能也讲得很好,那么绝对是优先考虑。

这部分能给出的建议是,不论是否参加培训班,首先得挖掘相应的商业项目经验,如果你的项目经验介于学习和商业项目之间,那么尽量往商业项目上靠。

1.兼职类项目,比如你本职干c#,但帮朋友干了私活用java,而公司职位介绍需要java,那么可以着重挖掘你的java经验。
2.我知道有些培训班有实训项目,就从外面公司里接了项目让老师带领着做,这块,一定得写成商业项目。
3.你之前在公司主要是做测试,但好歹也用过java,那么在申请java工作时,一定得重点写java。

  • 什么叫商业项目?你做的项目能挣钱就叫商业项目。如何在简历中区分商业项目和学习项目?突出客户,上线部署过程,项目管理和使用情况这些要素。

二、直接描述培训班学习经历会带来的负面影响

我拿到一份最近几个月脱产在培训班学习的简历,我首先会想:为什么他要上培训班,是不是之前没有相关经历?相信很多面试官都有相关顾虑。如果候选人刚从学校里出来,公司对他的期望不高,那还不要紧。但如果需要的是个有3年经验的岗位,那么就要着重看简历乃至重点面试了。

比如简历上,除了培训班有相关经验外其它没,那么估计连面试机会都没。有些培训班会帮忙优化简历,之前的项目经验描述虽然匹配职位介绍,但这类候选人会被非常仔细地盘问。

而且,去培训班一般会导致若干月的空档期,这对下份工作来说,不是好事,毕竟拳不离手曲不离口,而且这在背景调查时能通过看社保等看出来,无法作假。

换句话说,你在培训班学习脱产的学习经历会给你带来两大不利因素,第一暗示面试官你缺乏相关经验,第二会有“未被雇佣”的时间段。如果某些同学确实不得不通过培训班来改变自己,别无他法。但如果你目前工作还算稳定,是想通过培训班来提升自己,那么如下的建议或许对你有用。

1.有条件的话,尽量别脱产学,如果有必要,报一个周末班。
2.或者,你可以找些视频资料,边上机边学,不过这就需要一定的毅力。学什么,怎么学?找份大纲和系列的课程资料。
3.还是这句话,首先要做的是,在平时工作中挖掘相关经验。比如你在做测试,想转java,那么在学习之余,一定得在公司里找个java实践机会,怎么找?多观察,多动腿跑,多动手实践,外带多动嘴请教人。要知道,接下来换工作,更看重得是直接的项目经验。

  • 那么是否要在简历上写明培训班经历呢?其实这不是问题。当你已经在脱产学了,那么你不写,这段经历又该如何描述呢?如果你是自学,那么公司工作的经历绝对要比培训班经历好看。所以这里的问题还是会归结为:要不要报脱产的培训班,而不是简历该怎么写。

三、大龄转行Vs年轻的初级程序员,公司一般会如何选择?

如果大龄IT人要转行,去培训班咨询,我不知道相关人员会怎么说,但我就从面试官角度来说明。可能我一直在大公司,就站在这个角度来分析。

两份简历

  • 一份是28岁,本科,最近1年是java,之前是其它
  • 另一份是24岁,全部工作经验是1年,都在做java。

首先看技能,比如基础,对框架的理解,对数据库等优化的技能,如果两者差不多,年轻人很占优势,毕竟钱一般能少给,而且精力充沛。而大龄程序员的经验不对口,本职位用不到。

确实,培训班能提升学习效率,相当于用钱买时间,而有些大龄程序员缺的就是时间。但对这些人而言,更缺乏相关技能的实践经验,如果要报培训班,这是你自己的事情,但同时还得想办法补充相关经验。这点在本文里已经有过描述,在本人的其它博文里,也有相关描述。

四、经过培训班突击后,可以先面试小公司

在上文里,培训班出身的同学可能看到的是比较悲观的描述,这里要说明,因为我所在的公司规模不小,而且给出的工资不算低,所以要求也相对高些。

但大家也可以想下,更多的是中等规模或人数较少的公司,这类公司可能更需要的是能直接动手的人,所以大龄转行或通过培训班突击经验的同学,或者因为相关经验比较少,刚开始可以考虑这类公司。

又如,当我有时候招外包员工时,同等职位的要求也会大大降低。什么叫外包员工呢?

  • 比如某大公司A,出于预算的考虑,针对工作3年的初级岗,会开放若干正式员工岗和外包岗。外包岗是,这类员工和某外派公司B签合同,但和正式员工一起上班,这类员工的面试要求会低不少,也经常招些刚从培训班里出来的同学。

此类外包岗,由于要求不高,而且能获取大公司的工作经验,同时若干年后还有可能转成正式员工,可以是相关同学的首选。如果培训班推荐就业的老师没相关渠道,你可以自己通过朋友或猎头找。

五、面试官怎么面试有培训班经历的人?论培训班同学如何准备面试?

上文的主要内容是,如何规划自己的学习和如何挖掘项目经验。哪怕是培训班的学生,简历上只要稍微用心点,通过筛选并不难,但面试前更得准备。

1.如上所述,我首先得考察商业项目经验的真实性,会问:项目几个人做?做了多久?用什么管理方式?(比如敏捷方式)多久发布一次?部署在哪类服务上?如何部署?打包部署流程是什么样的?目前有哪些客户在用?诸如此类问题,确认的是项目真实性。

我听到的不大好的回答有,项目直接部署在windows系统上,直接打成jar包然后手动放到服务器上,没有日志监控等手段,说不清项目的管理方式和发布周期等一定会经历过的要素。有人还会说,做完了,但过了很久,还没客户用,所以没部署,产品网站没流量。至于该怎么说,项目是大家做的,自己得想好。 在我其它博文里,也有相关说辞的介绍。

2.问全栈流程,比如前端用什么,后端用什么,数据库用什么?更重要的是,部署相关的分布式组件大致用什么。我不求候选人讲清楚业务,但要候选人用一个需求点讲清楚全栈流程。培训班出来的同学,往往会某块讲比较清楚,而缺乏整体流程。这块其实也未必要讲非常仔细,比如nginx如何配置负载均衡,我不要求你结合底层代码讲清楚实现机制,你通过配置文件简单说明即可。同时,每块你至少能通过简单的配置和代码讲清楚流程。

3.随后再问技术点。这里的建议是,先刷题,再精通,最好结合需求,通过底层代码说明。

比如考察Java核心知识点,你先通过刷题,了解些基本说辞,先让面试官感觉你全都会。然后深挖一块,比如线程并发,你可以结合你业务需求,说这块你用到线程池,具体参数怎么配,如何同业务整合,这里你可以背一些底层代码,说下线程如何回收,超时时如何处理,这样面试官就会认为你很精通。

4.再问优化点和组件。其实这块已经属于加分项了。比如数据库调优你有哪些经验?框架层面Spring Cloud你用过哪些组件。这里的回答要求是,不求多,但要结合业务说清楚一块。比如数据库调优方面,你说你知道索引,执行计划,分库分表,但都是理论经验。这还不如你就结合一个业务点,本来sql语句怎么样,但我通过加索引,让这句话优化到10秒执行完。类似的,你结合业务说清楚几点,就一定能证明自己的能力。

以上可以说是培训班出身同学面试时的通病,大家如果注意,就可以超越不少对手。

六、简历和面试过程中要不要回避培训经验

可能不同的人有不同的观点,我的建议如下。

  • 第一,如果你这个时间段除了写培训班经历没其它好写,与其写待业中,还不如写在培训班里学习。或者你刚从学校里出来,或者刚毕业,本身经验少,那么可以写上培训班经历。

  • 第二,刚才我已经给出了写明培训经历的后果,大家如果感觉能在面试中用技术或经验说服面试官,那你可以写上。或者说难听点,债多不愁,你找相关工作时的不利因素也够多了,不差这一条,而又得靠培训班经历来撑台面,那么可以写上。

  • 第三,再啰嗦一句,不管如何,更多得是挖掘相关项目经验,而培训经验可以落实到商业项目经验里。比如你报了个周末班,在其中学到了netty等分布式组件的知识。同时你在平时上班的项目里也在用,也遇到半包粘包或零拷贝等问题,但在上培训班前你没重视,那么你就可以把培训班学到的技能优化这部分的简历。

七、总结:进阶道路可以曲折,但别小富即安

培训班出身的同学后面的发展得靠自己,刚出来后,可以找个能提供实践机会的公司。比如我在上海,经常听说有公司招不到人,对他们来说,不在乎候选人的出身,甚至不在乎学历,只要能干活久行,而培训班出身的同学能证明这点还是绰绰有余的。

另外,我经常到培训班网站去了解我的对手,在看完他们项目描述之余,每次都会看他们学生的就业情况,具体我不多说,大家也可以自己观察思考,不过大家可以从中看到不少积极的因素:进小公司应该是没太大问题的。

总之,要不要进培训班大家自己考虑,自己发心看资料也是一种选项。不过话说回来,**培训班出身的程序员找到工作并不难,至少在上海是这样,就工资和工作时间的问题。**但稳定后绝不能沾沾自喜,更得继续掌握高级开发乃至架构师的知识,从而力图进大的好的公司,力求更高工资的职位。

最后分享一波,Java核心架构进阶知识点

面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的

image

image

image

内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补,不过这份《Java核心架构进阶知识点整理pdf》以及前面P8整理的全套系列大厂面试题皆可免费分享给有需要的你,点击这里即可免费领取文中所有资料

过这份《Java核心架构进阶知识点整理pdf》以及前面P8整理的全套系列大厂面试题皆可免费分享给有需要的你,点击这里即可免费领取文中所有资料

你可能感兴趣的:(程序员,java,后端,面试)