作者:自由_潇洒 via 掘金开发者平台
大家好,首先允许我来个自我介绍。我叫自由,在掘金是混表情包圈子的(嘿嘿)。也是个喜欢古生物化石和音乐的Java仔。截止到发布这篇文章,我已经CV代码六年三个月零二十六天,距离我上次面试至今已经一年有余,那是2020的7月,我毅然决然从待了四年多的上海离开回到家乡,在老家休整两个月后,然后开启了我工作以来用时最长的一次,长达一个月的面试路。接下来我会对当时面试以及以往面试里的遇到种种进行复盘,有疑问或者建议也非常欢迎评论区评论,互相学习和进步,与君共勉。
一.求职时间图
按照惯例,先上求职时间图,只包含一些大公司。小公司面得太多了,就不列出来了,后面会统一说说这些小公司的共同之处。
二.遇到的面试题
1.基础及遇到概率较高的知识点
1)集合以及其特点,延伸到其实现原理,比如HashMap(CurrentHashMap)的实现原理
2)SQL的熟练度考察,一般是参考表连接查询(left join,right join, join),子查询,还有就是一些函数,比如MAX,TOP等
3)多线程的创建形式,线程池的使用,延伸到线程不安全所要使用的策略,比如锁
4)Linux的常用命令,笔试或者技术面试有被问到,比如cp,cat,more,ps, which,find等
5)网络应用程序框架netty方面,面得比较少,遇到的话难度系数有点大
6)Java特性,比如Java8的Stream操作
7)手写代码,这块遇到的不是很多,就是遇到把关键点写出来就行
2.关于底层源码
1)Spring源码系列,AOP,IOC必问,延伸到让你实现AOP,然后如何去实现一个Spring
2)Spring MVC的从浏览器发送请求到页面渲染的原理
3)Spring Boot的启动流程,涉及哪些重要节点和类
4)Mybatis中SQL的执行过程,一二级缓存的作用
5)Spring Cloud系列里的Ribbon/Feign组件实现原理
6)Nacos/Apollo(携程) 配置文件热部署原理
7)ZK的源码,包含选举算法,监听机制
8)MQ源码,生产者和消费者以及路由,发布订阅
9)Redis缓存穿透,雪崩,以及其为什么快的原因
3.关于项目经验
截止面试前,我做的系统有城市轨道交通清分清算系统、SAAS平台、贷款平台以及支付平台等。所以面试官一般在问了技术以后,会针对他感兴趣的项目对我进行提问,大致是以下几个方向:
1)团队的分工,前后端配比
2)负责的模块,使用的技术框架
3)遇到了哪些问题,针对问题是怎么解决的
4)做完项目有哪些收获
5)某个模块的设计思想,为什么这么做,除了这样做有没有更好的实现方式等
4.面试的成果
一共面试21家公司。大大小小的公司都有,涉及的行业也是五花八门,有做送水系统的,有做安全的(卡巴斯基),还有做跨境电商的,最奇葩的是做外卖的,感觉基本就不可能跟美团和饿了么这些头部大佬抢到市场。面试成功的18家,另外3家1家没有消息,1家就差现场怼起来,问题太令人无语,剩下1家面试到一半面试官不见了,等不了走了。
5.贵阳的IT行情
贵阳的行情其实不太乐观,大数据热了好多年,但是大数据的公司不多而且要求会大数据(现学也来不及),想回贵阳发展的小伙伴要观察观察再观察。本土企业不多,银行外包倒是一大堆,而且实话说工资并不高(别问我工资这么敏感的问题),加班不多的公司可能就那么几个。所以选择入职之前不妨上看准网,智联招聘,知乎搜索对应公司看看评价,再决定是不是要入职。
4.小公司的共同之处
在那近一个月的时间里,面过的小公司有12家,有的连HR都没有,有的需要全栈开发包括小程序,以及我最不想写的PHP,还有的只有2、3个人,还说你入职了就是以后公司元老了,我要是刚刚毕业的我都热血沸腾加入他们了。小公司除了随时倒闭的风险还有比如五险一金没法得到保障,拖欠工资的风险,反正尽可能避开吧。
5.对公司的四问
1)一问公积金缴存比例。入职之前问好公积金缴存比例,各个地方都可能不同,最好是问好,不然容易被坑,我就被坑了,以前在上海是按全额缴存,然后以为入职的公司也是就没有多问,等到第一个月公积金发放我人都傻了。所有要问好。
2)二问加班情况。如果有加班,问有没有加班工资,有没有调休,如果又加班又什么都没有那不用考虑了,继续下一家
3)三问团队配置。团队一共多少人,前后端配比,是以小组为单位还是以项目为单位,还是'大锅饭大家一起吃'的形式,如果是项目为单位,可以问问有没有项目奖金,以及奖金的发放规则
4)四问公司现有框架。问问公司现在系统用的框架,看看是不是符合自己的技术栈,如果公司让你进公司转语言,你要考虑清楚能不能在短时间内熟悉这门语言以及这门语言的现阶段就业情况,不然到时候新语言学不会,公司以你不合适的理由辞退你那就十分亏了,另外就是框架是不是现阶段流行的,我之前遇到一个Java Swing的项目,老掉牙了,估计大部分人不知道,感兴趣的可以去搜搜,这里就不说了。还有就是一个容易被忽略的点,问近期项目有没有重构的计划,重构是一件非常痛苦的事情,我曾经花了半年把一个系统从PHP重构到Java,因为是现有的逻辑保持不变,所以跟把PHP翻译到Java一样,写吐了。所以后面面试一听到有PHP的项目坚决不去!!!
三.过往经验&后知后觉的那些事
毕业后的第一家公司有多重要?
我在毕业之前看到这句话无数次,但是有时候找工作真的是也需要一点点运气。当时没毕业就伙同室友兴冲冲跑到上海,然后开始了租房准备面试,很顺利一个星期就找到了工作,公司是做城市轨道交通清分清算系统的,属于传统行业,但是需要长期出差甲方及时沟通项目情况,所以我是没法学习的,技术是无法沉淀下来,当时也不敢轻易离职,毕竟工作时间太短,短期离职简历不好看。结果入职一个月后分公司合作的开发团队因为某一历史问题被项目经理带着集体跑路,我一个人去交接,忙前忙后的折腾半年后项目才稳定下来,而且此时已经毕业一年多,同期的小伙伴已经超过我很多,我落下的不仅仅是技术还有工资,以至于后面离职准备面试都很吃力。所以第一家公司一定要看好,多打听,多找人询问,别往活坑里跳,坑的是自己。
写简历的准则不能忘
面试最重要的还有简历,而关于简历这块,我个人感觉怎么写都不如意,感觉总会少一些什么,但是自己又不知道,所以之前面试的时候面试官一拿到简历眉头就是一绉,后面我才知道那是简历写得太烂了,第一印象都不好了,实际上我们都知道写简历要遵从STAR法则:
- Situation:事情是在什么情况下发生
- Target:你是如何明确你的目标的
- Action:针对这样的情况分析,你采用了什么行动方式
- Result:结果怎样,在这样的情况下你学习到了什么
但是,往往我们自己再写简历的时候就是注意不到自己已经'跑题',写成了流水账,所以关于简历我们可以找到信得过的人帮我们看看,请他们给建议帮忙修改修改简历。
记得积攒你的人脉
人脉有多重要?比如一个公司招人,别人按正常的走需要投简历,然后HR查看,面试官查看都没有问题才通知面试,期间可能已经过去两到三天甚至更久,我就经历过已经入职了一个月还打电话叫我去终面的,而如果你的同事或者朋友就在里面,你可以走内推流程,简历直达,流程上都比别人快了很多,反馈也会很快。
重要数据要备份
这是个题外话,但是放到这里算是再敲个警钟吧。因为最近同事误删了生产数据库,恢复起来比较麻烦,头发都掉了不少了。所以各位重要的数据一定记得备份。
好了,今天的求职路走到这里,谢谢!
文末,上一张家乡的图,欢迎大家来贵州游玩。
发表评论
电子邮件地址不会被公开。 必填项已用*标注