一个月面试经历回顾(2年经验,Java)

415 阅读10分钟

一个月面试经历回顾

前言

时间线:7-14号开始投递简历,8-14号回复确认接受offer,恰好历时一个月,现在做一下回顾,记录一些过程和心路历程,因为技术内容网络上有更好的作者的文章,所以不作为重点内容,但会列出一些面试常见问题,希望对看到的你能有参考。

个人简介

毕业两年,中间做过一小段时间非技术轮岗,但收获颇多,主要是行业认知,公司运营,管理经验,产品思维等,是一段难得的经历,要谢谢给予我机会的领导,相信未来会始终受用。 我是愿意尝试新鲜事物的,所以会尝试这次轮岗,对于不同的技术也会有兴趣去了解,始终相信不同赛道、不同事物总会擦出有创造性的火花,有益于我扩展思维,当然不利点就是我未能专精,这是我接下来需要去努力的点。 日常会学吉他(楼下公园唱过几首)、喜欢唱歌,运动:游泳(只会蛙泳)、骑行(环过太湖190km)、跑步(5公里日常,一次10公里活动跑)、各种球类运动会一点。

经历回顾

在上传简历的当天,就开始陆陆续续收到想看简历的请求,选择了其中几个感兴趣的进行了投递,也取筛选了自己期望的公司去投递,同时联系朋友同事是否有合适的机会做内推。

这有几个点

  • 平时要和朋友、同事相处融洽,内推机会就藏于其中,谦卑的同时展示自己所长,建立不错的形象(程序员容易宅一点,但还是需要去社交,认识不同行业的朋友)不要因为社恐错过认识大佬或者志同道合友人的机会
  • 准备面试前一定要了解自己的期望、行业发展、工作通勤、薪资范围,避免盲目和后悔,做好未来工作生活变化的规划。我的期望是工作时间弹性,通勤1小时内,家附近更好,周末没有活动我可以去学习,灵活有效加班而不是磨洋工等,行业以互联网、金融为主
  • 简历不是一成不变,要根据投递岗位不同做适应性改变
  • 突出擅长,有github项目参与、技术博客加分(输出而非笔记)这些我都没有,捂脸
  • 投几个兴趣不大的,去了解这个陌生的行业或项目,同时也是为自己面试做练习和适应(对不起练手公司)毕竟日常工作重在业务和解决问题

第二天就开始约面试,这里看你的时间,我不太忙所以可以中途溜出去面试

第一家就是百度,因为离得近,当然也是对大厂抱有好奇。面的是百度自动驾驶方向的数据处理相关,先做了三道笔试题,判断回文数,斐波那锲数列,sql查询,一面问了redis如何实现队列,对mq是否有深入了解,Java基本类型和引用类型的区别,ArrayList和LinkedList的区别,对spring boot的了解,对网络攻击的了解,讨论了那个sql查询的思路。

挂了。。。因为我毫无准备,算法题没有刷过、redis mq日常很少用,ArrayList和LinkedList平时没关注,原来这叫八股文,现在的项目还不是Spring boot,网络攻击就是公众号看过。

收获

1. 日常leetcode要刷,简单题开始

2. 准备面试八股文是必备的

3. 但不仅于此,因为后面会发现问起实现原理,实战经验一样得懵

4. 项目经历要和技术点结合,如果现在项目未涉及,那就需要假想,如果应用能解决哪些问题,引入什么新的影响

5. 自我介绍还是要准备,不要像我想到什么说什么,不利于给面试官留下深刻印象

6. 面后可以询问业务方向和技术难点等,即便未能通过也可以有所收获,毕竟能够单独交谈30-60分钟的机会并不多

第二家面试的一家做外汇结算和跨境交易的,问了线程线程池、分布式事务实现、Gc回收相关、线程安全与否体现、HashMap如何线程安全、实现简单工厂模式

7. 并发编程、JVM、分布式事务不会,获得新八股文:HashMap(未来会问:与HashTable关系、底层实现数据结构、扩容机制、jdk1.8后的变化、ConcurrentHashMap)

至此,大致了解了面试需要准备的方向,周末看了看面试题八股文,原来好多技术点平日工作居然都不知道,做了几道简单算法题,JVM调优和并发还停留在面试题答案阶段,数据库相关没看,这为后面埋下了伏笔。

接下来面了某安全领域公司,要求还是蛮高的,以八股文为起底,任何我回答的内容都会问你实现原理是什么,怎么用呢(是个爱探究的面试官,让我见识了真的技术人应该有的精神) PS:我提到我有在看go语言,就被问到协程是怎么实现的

8. 不熟悉的技术点最好不说,哪怕是展示你的学习能力,因为只能证明你感兴趣,不能证明你能学会

面了一家做支付相关业务的,问了MongoDB和mysql的区别,分布式事务,kafka如何一对多消费,转账和提现中事务的控制,java线程池的参数,如何自定义线程池等,通过常见面试题来看你的实战能力,毕竟两年经验是要尽快上手的。

然后面了一家基于区块链技术做供应链的公司(和我之前做的金融相关的相去甚远,也是对区块链感兴趣,想去尝试)这次难得通过一面,然后一下午进行了二面、项目经理面、HR面,最后可能因为我的薪资期望太高挂了。问了我简历上的MongoDB如何存文档,怎么整合shiro安全框架,shiro标签的用途,mysql的数据结构,b+树,为什么不用其他的树,叶子节点和非叶子节点分别保存什么数据,docker原理、机制,如何在docker运行自己的程序,elk中的各自用途,与项目整合的实现方式。二面针对业务问了技术细节,比如我们kafka是如何集成在项目中,分布式事务开源组件,我在白板画了数据流转图,得益于我的业务理解能力,对这块能够讲清楚。项目经理问了我对他们公司的了解,我的学习方法和是否有信心和兴趣去做区块链相关,之前在项目上的角色。

9. 数据库常问到索引的实现,数据库常见的优化方式,由此引出mysql不同引擎的底层数据结果,这是我之前未曾了解的,打开了我探究底层的大门,又重新翻翻数据机构的书。

10. 简单刷面试题已经不能满足我们的需求了,那些碎片化的知识点如果不能串起来,在后面几轮面试结合业务场景就会再次懵逼

11. 慎重选择简历上的技术,如果禁不住问,最好去掉,而不是像我项目中用到的,听到的都写上去,只会扩大面试准备范围,显得我们不精通

12. 决定我们的角色,因为我之前兼顾一些管理职责,在面试技术岗是否提此经验,存疑,提了显得开发经验不足,但是侧面又能说明我的沟通、团队协作能力没有问题,凭你感觉选择吧

面了一家做量化交易平台的,都是直接CTO面,明显感觉到大佬对于技术有自己独到的理解,后来因为面试挂的多,饱受打击,心态开始出现起伏,好在与室友(去了美团),同事(去了蚂蚁)还有一些朋友及时沟通,与自己进行对话,逐渐调整,能够直面自己的不足,确实之前学习太少,安逸久了,发现外面的竞争还是很激烈的,虽说面试造火箭,工作拧螺丝,但你起码要知道自己拧的哪一块螺丝吧。

13. 面试是一段痛苦的过程,在被打击中和焦虑中逐渐成长,最好的方式我认为就是承认自己的菜,不能有“这不就是xxxx的心态”,勇于面对才能解决问题

14. 去网上寻找技术栈的思维导图,查询补漏,想赚技术的钱,就要做好终身学习的准备,与其在迷茫中逃避,不如行动起来,有业余活动就参与,没有就学习,让生活活跃起来

最终我发现自己与互联网一线大厂或者相关公司所要求的技术能力的差距,这并不是刷刷面试题就能混过去的,即便通过日后工作也会倍感压力,难以形成良好的正反馈,于是我开始转而投向外企外包,考虑他们加班少,有利于业余时间系统学习,与其继续浪费时间突击,不如静下心来沉淀一段时间,于是我开始准备英文自我介绍,当然底层开发人员口语要求低,主要是读写。 金融领域的一些内部系统相比互联网会少一些开源中间件的使用,没有高并发的应用场景,技术难度相对低一些,比较注重数据库能力,java基础等,这方面我相对好准备,最后顺利通过了某外资银行的面试,拿到唯一一份offer,在全球风控与财务分析组。 拿到offer后心态缓和很多,自信心也恢复了,所以保底offer是有助于我们挑战新的机会的,然后去面试了两家内推的公司,某跨境电商和某生鲜,虽然准备充分,这段时间对一些常见问题如,redis、kafka、MongoDB、mysql、java并发、jvm等有了一定的了解,但是面对具体的应用问题还是感觉手足无措,给面试官的感觉是我经验不足,但是相对的,内推面试体验还是不错的,起码和面试官之间更像是技术讨论的氛围,能够更放松。

15. 珍惜内推机会,可能因为推荐人的能力,给你带来附加分,让面试变得轻松(不是说用简单问题送你上去,而是源于面试官对你更深入的了解让你能够充分展示自己)

通过这一个月的经历,我认识到了自己的不足,也坚定了目前做好技术沉淀的打算,于是购买了某架构师网课,决定系统进行学习(当然学习方法有很多,以你所能够适应和坚持的为主),这里推荐一个网站:学吧导航www.xue8nav.com/ 去选择你喜欢的方式。

因为疫情没有在两个工作中间的空档回家(1年多没回了)或者去探索新地图,就去玛雅水上乐园Happy了一下,不得不说工作日人真少,在刺激的项目和美丽的泳装中,放松了心情,接下来就将迎接新的挑战了。

谢谢阅读,如果你有什么想法,欢迎联系我