求职真的能像大学时想的那么简单(求职系列二)

248 阅读7分钟

​我离职了🐷

    在上家公司,我的任职时间恰恰好是三个月。因为我是1月19入职,4月19离职的,挺凑巧的。谈谈我在这家公司的感受吧🙂
    面试的时候,面试题包含了心理测试题,另外就是一份纯英文的笔试题。会发现,当一些基础的问题,变成了英文后变得异常困难。所以在这里呼吁大家(一定要搞好英语!!!在校生,一定要过四六级,四级是底线👈)。谈到面试过程,我的面试官(我的上任上司)在和我交流的过程中,谈到一个问题,英语的重要性,他告诉我,“英语在编程中起着重要的作用,不仅仅是写代码,包括看文档以及阅读一些书籍”。我也表示认同,因为如果市面上好多译版,但总是会差那么点味道😜
    当然不得不提的就是,我在这三个月中接触到的东西,首先一个是TypeScript,入职后需要掌握的必备技能。可以说使用TS贯穿了我大部分的工作内容。最重要的就是每次开会的内容!!!我的领导都会强调两点内容,技术+沟通。这两点内容也是工作考核点。技术,你对技术了解的深度及广度,而沟通,则是将你做的内容,展示出来,不仅仅是做一个md文档或者是一个PPT的事情,所以就我现在而言,我个人认为的重要性,沟通>技术。
    离职原因,其实很大部分是我想发展的技术方向和我当时在做的内容,有所冲突。首先我是更希望参与到后端的开发工作中,而我做的内容则是前端😖这也是我的一个动力,所以我希望的是选择另外一家公司继续发展😄
image.png

我是真的幸运吗😭

    离职的第二天,我参加了一个“校招”,去现场面试。面试一整天,早上先做笔试题,然后是群面。如果上午没有过,中午吃完公司免费午餐就可以回家了😂我挺顺利的,上午的笔试题和群面都OK,下午过后跟HR和技术官聊的都挺顺畅的。
    第二天,我接着去参加面试,一直持续到第三天。就在我正在去别的公司路上,我接到了HR的“报喜”,前两天的“校招”面试通过,说,稍后会发offer,听到这消息开心啊😁
    可是,我真的那么幸运吗?等了一天,两天,等到了周五(周二去面试的)HR突然跟我说,暂缓发放offer。期间我是有去面试其他公司,并收到offer的,相比之下,我更愿意去这家“校招”公司。但是,这消息一出,对于刚出社会的我,无异于是种打击,我也询问了好多小伙伴,他们都劝我赶紧找下一家公司。那天真的很沮丧,哎😭要不是我的家人,我女朋友,还有学习群里的小伙伴的鼓励和支持(排名不分先后,求生欲OS✨)我估计还会沉溺于自我怀疑的状态(那次的经历,也成了我现在的动力🚀)
image.png

跳槽准备

    谈到跳槽,大家一定是手上,资料千千万,却不知道该从何下手🤨所以这是个值得探讨的问题。网盘里的“面经PDF”就多达7,8份。相信不少小伙伴跟我一样,很多东西都在网盘吃灰。又或者纠结到底,该看拿一份,毕竟面试在即🗓
    先说一下那家“校招”,由于是面一整天,其实大部分的内容和技术点是在上午提问到的。

笔试题:
    String,StringBuilder和StringBuffer的区别
    Overload和Override的区别
    Vector,ArrayList和LinkList的区别以及应用场景
    HashMap和HashTable的区别
    实现一个单例模式
    对指定数组进行排序(没有指定那种排序)
    基本数据类型的八大类型有哪些
    怎样保证线程安全
...
群面:
    1.=和"equals"的区别
    2.OOP的四大特性
    3.接口与抽象的区别
    4.是否对JVM有过了解,在JVM种常用的参数有哪些
    5.如果线上项目出了问题,怎样进行排查
    6.现在有个系统需要上线,你需要考虑哪些问题
    7.是否使用过线程池
     ...

    因为过去时间也比较长了,能想起来的内容也不多了😅其实这些问题,如果按照,我以前的“复习计划”把200页+的PDF看完,估计我也记不住。
image.png     在这里,并不是说,这样的资料不好,而是内容太多。就跟高考一样,考试有重点,其实面试也是有重点的,只是这样的资料一拿到手,你就会懵。
image.png
    所以我都是怎样去准备面试的呢😏大家还记得上篇推文说过的“机遇”吗?我通过推荐同学课程遇到了D总,我先是看了D总的SpringBoot的课程,这让我很意外,因为和我学过的课程差别是很大的!!
    紧接着,我就好奇D总出的面试专题内容,当时的我不能说,基础很差,只是像碎片一样,东一个西一个,知识都是零散的,串不起来。可能问我CAS是啥,我晓得它是啥,但是具体是啥内容,可能看过,但是记不起来😱
    所以我跟着D总的面试专题,学习了一段时间。里面很多知识,对我来说是我没有接触过的,首先可以扫盲,紧接着就是深入内容。
    举个例子,如果需要保证线程安全,arrayList需要怎样做?
    相信大家,心中都有答案了✨我这里截取一部分面试专题的内容~

方式一:自己写个包装类,根据业务一般是add/update/remove加锁 
方式二:Collections.synchronizedList(new ArrayList<>()); 使用synchronized加锁
方式三:CopyOnWriteArrayList<>()  使用ReentrantLock加锁

前两个大家可能很熟悉了,CopyOnWriteArrayList<>()这个可能知道的人较少
那么按照方式三。
又会引出另外一些问题:
1.了解CopyOnWriteArrayList吗?
2.Collections.synchronizedList实现线程安全有什么区别, 使用场景是怎样的?
3.CopyOnWriteArrayList的设计思想是怎样的,有什么缺点?
答:
CopyOnWriteArrayList:执行修改操作时,会拷贝一份新的数组进行操作(addsetremove等),代价十分昂贵,在执行完修改后将原来集合指向新的集合来完成修改操作,源码里面用ReentrantLock可重入锁来保证不会有多个线程同时拷贝一份数组
场景:读高性能,适用读操作远远大于写操作的场景中使用(读的时候是不需要加锁的,直接获取,删除和增加是需要加锁的, 读多写少)
​
设计思想:设计思想:读写分离+最终一致
缺点:内存占用问题,写时复制机制,内存里会同时驻扎两个对象的内存,旧的对象和新写入的对象,如果对象大则容易发生Yong GC和Full GC
...
大家看到这是不是发现,知识体系就连起来的,但问题也连起来了
如果你回答了ReetrantLock,那面试官是不是会问你,用过哪些锁,并发三要素?
等等的问题,都会接踵而来~

想加入一起学习的可以扫码公众号噢~👌

总结

    我是一个正准备拿毕业证的大四学生,来自东莞的某一所高校。虽然大学我一直都有坚持学习,但是我感觉自己走了很多弯路。所以,我认为,选对路,并坚持走下去,这样才不枉你的努力🌈
    最后的个人小建议,如果你是大三的小伙伴,你可以开始刷各种算法题,最少的LeetCode前100题要刷熟,然后大三就要开始找实习!!!这很重要,因为如果你想进大厂,算法是必备,紧接着不要错过时间,大三的实习转正机会是相当大的。
    而跟我一样是大四的你,也别慌,首先要有自信,然后现在你需要的就是,增加自己的项目经历。
    首先,你是应届生,如果你大三没有出去实习,你的简历基本空白,此时,你做过的项目异常重要!不能说三个项目,都是SSM框架的,你要做的是不同项目,涉及的技术是不一样的,就算技术一样,那么做的业务逻辑也要是不一样的❗千万不要都是简单的CRUD,现在也蛮多公司都用低代码平台,基本的CRUD,都不用写,你要做的就是根据业务CRUD。所以深度,一定要比这深。
    然后就是,你对你做过的项目的技术内容一定要熟悉,好比用了Redis,你总不能说,你跟面试官说,我就只会基本应用,大家可以发散思维想一下,假定你的项目放在一个高并发的场景,你使用Redis的作用是啥,使用它会遇到哪些问题。
    最后就是,写一份漂亮的简历,别把大学四年学过的,啥高数,啥模电,啥心理课都写上去了,没用!你要做的就是针对性去投递(海投🈲)比如说人家要求你会springCloud,你简历上写的内容只有SSM,而且你项目也没有人家要求的内容,直接PASS。其实很多HR都是拿着你简历上的技术栈内容,去和他们的要求对比,大部分对的上给你面的机会就有了(虽然这是“最后”,但也是最重要的,否则你连见面试官一眼的机会都没了🤡)
image.png     以上是我的个人观点,如果出现了某些错误,希望能跟大家多多交流。大家可以多多关注我,后期会出一些JVM的相关内容等等😜

微信图片_20210623142105.jpg