最近看了很多简历,很多候选人年限不小,但是做的都是一些非常传统的项目,想着也不能通过简历就直接否定一个人,何况现在大环境越来 越难,大家找工作也不容易,于是就打算见一见。
在沟通中发现,由于年限不小,他们的定位基本都是高级及以上,毕竟,年限摆在那里,面个中级也不体面。
面试时我打算聊点基础的,先打开一下话题,结果发现对于一些开发中很基本的问题,比如:
-
Git的分支你们是怎么管理的?
-
接口保证幂等性是基本的要求,那么幂等性你们是怎么做的?
-
你们有用@Transactional来控制事务是吧,那么能不能说出一些事务不生效的场景?
上面几个问题没有一个是“造火箭”的,结果发现,这些很基本的问题,他们普遍都答得很模糊,或者支支吾吾。其中,一个候选人的反问,令我印象特别深刻,他说:
上面的问题我虽然都不懂,但是我都工作六年了,如果我不能胜任工作,那你告诉我,我这六年经验是怎么来的?
再说了,做Java开发,说到底,还不是产品输出原型,对着原型进行数据库建表,然后CRUD吗?
遇到问题网上搜索一下,再不行就群里问一下,我又不找什么中间件的团队,Java开发,不都是这样吗,还能有什么别的花样?
听完我沉思了良久,做为一个高级开发,如果连Git分支如何管理都没思考过,幂等性名词的含义都解释不清,事务注解打上就完事,连生不生效的场景都不知道,只会对着产品原型CRUD,测试不提bug,代码都不想复盘多看一眼,试问谁又愿意和这样的“高级大佬”一起干活?其实我想了一下,他之所以有这样的想法,很大程度取决于他的经历,长年在传统行业,或者“小作坊”,平时就两三个Java开发,大家都是“难兄难弟”的水平。让他认为,Java开发,就是对着原型CRUD,年限上去了,就是高级开发。思维一旦形成,就很难改变。但是,互联网是个瞬息万变的行业。从BAT等各种大厂的应届生招聘薪水就可以看得出,现在应届生的水平越来越6,如果还以为大家都是一样的,都是对着原型CRUD,有问题就把报错信息网上一搜,群里一丢等回复这种方式,迟早给淘汰。即使不做中间件开发,基本的原理、源码还是要了解的!不制造任何焦虑,学习需要的也不是一腔热血,需要的是长期的规划,这里分享一个思维导图,需要获取相关学习资料可以关注一下本人,后台私信“架构资料”即可。大家可以自行进行查漏补缺和规划:
此架构图可点看观看详细知识点
扎牢基础、深入原理面试我可造火箭
源码合集、面试文档、源码实战、中高级架构视频
多线程与高并发—>深入JVM—>JVM调优案例式实战化指导—>操作系统原理解剖—>网络原理解读—>解读23种设计模式
高并发与多线程
JVM调优案例式实战化指导
洞悉分布明察井行一路架构冲云霄
互联网架构演变的过程与原理—>高负载高井发高可用架构设计指导思想—>LVS—>Keepalived—>见流量介入层高性能服务—>zookeeper
消息中间件—>ELK—>分布式事务—>单点登入—>分布式任务调度—>缓存
互联网架构演变的过程与原理
消息中间件
缓存
未来主流必知必会服务微化量绝招(微服务架构)
即可免费获取spring100级源码合集、面试文档、源码实战、中高级架构视频
RPC构建分布式—>Springboot—>SpringCloud—>Docker—>subernetes—>Service Mesh—>微服务设计的学与思
Springboot
SpringCloud
微服务设计的学与思
分布存储高效写读优化性能带你飞
mysql优化—>FastDFS—>OpenResty
mysql优化
团队协作项目管理测试开发-体化
maven—>Git—>sonarqube—>Jenkins—>JIRA—>FindBugs—>压力测试让你心中有谱
maven
Jenkins
庖丁解牛手写源码一步-步成大牛
JDK源码解析—>Spring源码解析—>Mybatis源码解析—>SpringMVC源码解析—>Dubbo源码解析—>Netty源码解析
Spring源码解析
Mybatis源码解析
SpringMVC源码解析
价值干万企业实战从此对标CTO
五大项目实战:多人在线即时对战网游服务器—>和家服务云平台—>前后端分离-某喵微信商城—>某滴网约车项目—>亿级流量多级缓存架构平台。
部分面试文档
源码实战书籍