经验贴
先说经历
鼠鼠大一第一学期开始是学的嵌入式,但寒假看见嵌入式工资普遍比软件开发低,再加上朋友推荐到大一下开始学c++,但是c++学了半学期感觉不太适合我,就又去学Java,当时半个学期把SpringBoot学完了。
到大二上开始做项目,做了个黑马点评,而且自己还做了个聊天网站,想着大二暑假找一份实习,就把代码随想录和hot100刷完了。到大二下开始准备八股和简历,当时找了两三个月,都因为是不招大二、在boss不会回复hr(反正就是不管hr说实习多久,能实习几天。都往6个月和5天出勤上说)、运气不好(找实习运气占比很大,有时运气比啥都重要),反正最后没有找到实习,想着沉淀一下,就把谷粒商城做了。
到大三上当时沉迷玩mc就摆烂了半学期,后来听说一个同学的两个舍友一个去了字节一个去了百度,当时觉得不能再这样摆烂下去了,就花了三周做了mit6.824的lab2和lab3(这个项目是真的好,我之后把这个项目写到简历上,基本都问这个项目),做完之后因为再过一个月我还要考四级,就每天去教室学四级(当时是824做出来之后,放纵自己,给自己找了个考四级的借口,实际去教室和舍友打王者),四级考完,突然感觉再不能颓废下去,又开始投简历。过了一周又期末考试,当时都没复习,一周内要搞定期末考试科目,就又放下实习的事。考完试后,才开始真正的海投,几天时间投了1000份简历,天天好几场面试,最后oc了快手的实习。
再说一下经验
简历:
1.就是要不断优化简历,我的简历至少大改过8次以上,期间小改更是数不过来。
2.简历上的项目一定要够优秀,之前版本的项目都是黑马点评+聊天网站,说实话我都觉得没有含金量。之后把简历上的项目改成了mit6.824+(黑马点评+聊天网站+谷粒商城 的缝合怪)。
3.简历上一定要写自己会的,不会的一定不要写。面试的时候,面试官90%问的都是简历上的内容,其他问的不是简历上的内容又有90%都是你在面试的时候在某块可能说出来。总是简历上的东西自己一定要熟悉。
面经:
一定要自己多面试(比如boss上hr问你啥,你就要先逢迎他们,管他去不去,先骗面再说),面试官都是根据简历问,当你面多了,你实际上就会知道面试官会问你啥(一定要多复盘,知道啥该说,啥不该说)。我觉得别人的面经只能当作参考,毕竟简历上的内容每个人都不一样,比如我后面发的面经,你就会觉得,啊,你这问的问题也不难啊,而且大部分都是juc那块的啊,面我我也会,但是你的juc那块有可能是看的b站上某个视频把某块的流程说了一遍,但我是把源码看完了,我面试时回答的都是源码中的细节,所以一定自己总结自己的面经并且不断复盘。
学习方法:
我最近一直在想学的早好还是学的晚好,我就是学的比较早一点,但我即享受了它带来的优点又体验了它带来的缺点。因为学的早才大二的时候都把微服务那块学完了(微服务只是学完了,但离熟练掌握距离还挺远的)而且算法八股啥的都完了导致大三的时候总觉得来得及一直摆烂。但是又因为早早都学完了而且都很熟悉,不管我咋摆烂,我面试前只用三个小时就能把所有东西捡起来。
而且我喜欢做笔记,我把八股和项目所有涉及的地方都用自己的话写在笔记上,因为面试的时候尽管你知道答案是啥,但你就是难以表述清楚,我还是比较建议自己的八股和项目都用自己的理解写到笔记上。
最后推荐八股学习
Java基础的话,因为我在简历上只写了集合,所以一直都是准备集合。我是先看的b站黑马最新的面试宝典理清一下重要集合的概念和流程,然后看的源码,并按自己的理解写到笔记上。
JUC那块。如果你想系统的学习你可以去B站黑马的JUC,讲的很好,建议听1~2遍有个大概印象。如果想去学某个部分,比如AQS、线程池、CAS建议去美团技术沙龙上找,他们写的都很细,简直吹爆。如果你想更深学习的话,就得去看源码,因为大部分文章肯定没有自己仔细阅读源码学的多,比如AQS的state被volitile修饰保证原子性,大部分文章和视频都不会提到,但要在面试时说出来一看就知道是看过源码的。
Redis推荐《Redis设计与实现》和小林coding
MySQL、计网、os推荐小林coding。
jvm推荐b站黑马最新的面试宝典,我感觉重点都说出来了,而且jvm问的也不会太细。
项目推荐一个轮子(我写的mit6.824)和一个复杂一点的(谷粒商城虽然烂大街,但确实够复杂的)