这一年是艰难的一年,各行各业都面临着失业的风险。作为程序员的我们也深感找工作的困难,简历石沉大海,无人问津。接到电话的都是外包。
感觉我还是算比较幸运的吧,大概面了5家,也有三家给到了offer。其中有物联网的,快速成长的企业,以及平安。
今天恰逢周末,就坐下来把我的一些面试的经历总结梳理下,分享给大家。希望对大家有点帮助,那也就算是不错的了。
我大概从下面几点进行讲述
一、目前市场行情
二、不同公司技术栈的要求
三、如何写好自己的简历
四、面试主要问到的技术点
五、我们如何提高自己的核心竞争力
一、目前市场行情
-
我是从8月10号这个周开始看面试机会的,陆陆续续的在boss上进行了简历的投递。基本上投递的都有了回复,并且要了我的完整简历。然后也有部分没回了,可能是不是很匹配吧,然后有回复的都叫去现场面试了。
-
大概统计的话10份投递,8份左右的要了简历,3份左右的有面试邀约,整体上还算ok把。因为我是隐藏简历的,看上了公司才针对性的去投递。这样能节约时间,也省得外包一天的打电话。当然不是对外包有啥意见,这个是个人原因吧。
-
马上就要9月10月了,金九银十还是整体上比较好一些了的。疫情目前也基本上算是比较好转了,深圳这边基本上都是现场面试了。
-
所以这段时间还是比较不错的,如果准备好了就放心的去投递。还没准备好的,抓紧准备下,马上也到黄金期了。
二、不同公司技术栈的要求
-
对于技术栈这个的话,现在大部分都是要知道或者有使用了Spring Cloud的经验。因为随着企业的慢慢壮大,基本都是在往微服务这块去发展的,基本上微服务是主流了。
-
然后的话要对基本的比如Spring 的一些源码看过,如果没有,至少说IOC、DI、AOP、事物还是要有一些基本的了解。集合框架这些基本的特点优缺点要比较熟,这块就是我们平时使用最多的了。
-
对于数据库的一些sql调优,数据库的B+树的一些认识,索引,Explain执行计划的一些认识也是很有必要的。还有索引创建的一些原则等等。
-
其次的话我们的Nosql数据库比如:redis,mongodb等的一些认识。数据结构,优缺点,使用场景等等。redis的缓存数据一致性等问题的优化,解决方案等。
-
再有就是我们的消息中间件MQ,削峰填谷、解耦的利器。顺序消息,消息丢失,消息幂等,消息重复消费等等问题的处理有些认识。或者有时实际经验当然最好了。
-
再者,就是我们的微服务,微服务诞生的背景,解决了什么问题,带来的问题等等。还有目前主流的Spring Cloud Alibaba孵化完成的一套组件也是非常的流行。我们的GateWay网关层、Nacos注册中心配置中心,Sentinel的限流熔断,feign的restapi调用方式,rabbion的负载均衡,seata的分布是事物等等这一套。
-
以上基本就涵盖了大部分的技术栈了。如果这些都搞的差不多,那面试啥的应该也不在话下了。
三、如何写好自己的简历
简历就是我们和面试官和HR见面的第一印象,如果这个都没用心写好,那还有啥好说的。当然一份好的简历是一眼看上去就很舒服的。
我们在排版,项目的叙述,工作经验,主要职责等描述上不要拖泥带水,一概而论。
我说下我的几点建议个意见,希望对大家有所帮助:
- 项目介绍不长篇大论,言简意赅,多了全挤在一起看着比较难受;
- 负责的模块突出自己的职责,描述职责内的工作,遇到的困难,解决的困难,得到的提升;
- 使用到的技术,解决了什么问题,为什么选这个技术或框架;
- 从项目中有什么收获。
举个例子:
A:项目中使用了redis,RocketMQ等组件。
B:项目中使用了redis缓存热点数据,减轻DB压力,提高服务响应效率;
使用了RocketMQ削峰填谷,服务解耦,减少服务调用链路过长;
上面A和B哪个看起来更舒服呢?
相信这样进行调整,思考后写出来的简历就比较让人赏心悦目,一见倾心。
四、面试主要问到的技术点
其实面试官在沟通的时候一是看你对知识点的掌握程度,其次是你掌握的深度。我记得面试官问的一个问题我是这么回答的:
面试官:如果我一个值存到map里面,我这个值的hashcode是一样的,会怎么样?
我:如果是在JDK1.7以前,直接会把值存到链表中,因为hash冲突后1.7和1.8的处理方式是不一样的。1.8在链表长度小于8的时候也是存在链表中,大于8后就会转换成红黑树来进行存储,一方面呢也主要是为了防止数据太多查询效率会有影响。
相信面试官想知道的都已经给他说清楚了,对你的印象也会比较好。
技术点这块的话,不用多说的还是基础,这个真的很重要。一定要烂熟于心,才能信手拈来。
其次的话就是我们的spring,一些特性,IOC , DI , AOP,事物等等。
然后是数据层面的Mybatis,Mysql的调优。
然后就是一些缓存中间件,消息中间件。雪崩,穿透,热点数据更新,消息的积压,消息堆积,消息幂等。
然后就是框架的一些扩展,选型,使用场景等等。项目中的一些实际使用经验,项目中的一些重难点。
五、我们如何提高自己的核心竞争力
作为程序员,我觉得唯一的就是不断学习吧,不断提升自己的硬实力,才能让自己不断的成长起来。在激烈的竞争当中有一定的立足之地。
如果对你有帮助,记得给我点赞哦~当然欢迎关注的我公众号,后端架构进阶,我不断的总结一些源码学习,微服务,面试相关的一些内容。
全都是干货,期待你的关注!