最近有很多小师妹来问我。
师妹:师兄~看了你之前的
既然小师妹都这么问了,那我在这篇就如实回答她。
正文
第一阶段看书籍
从书籍当中我们能更加系统的学习。我先推荐Java语言的书籍,如果你不是学Java的可以先跳过Java的书。
如果你是什么都不会的小白,先看
Java
这本书主要讲的就是JVM,如果你是Java语言选手一定会问的。第2章 Java内存区域与内存溢出异常,第3章 垃圾收集器与内存分配策略,第8章 虚拟机字节码执行引擎 ,第7章 虚拟机类加载机制,第13章 线程安全与锁优化。这几章是面试常问的内容。当然啦,第一遍如果没有吃透很正常,可以二刷。
这本是并发的入门书籍,
这本书主要讲的是Java中并发集合的底层原理。看之前应该先理解简单Java集合的原理,如hashMap、arrayList、linkedList等原理再去看这本书。虽然本书的内容面试不常问,但作为加分项还是OK的。
加分项就是别人不知道,你知道的东西。
计算机网络
这本书应该是很多高校的教材,跟着老师走就行,重点要掌握IP、TCP、UDP、HTTP。
这本书的内容还是挺简单的,而且书中的内容HTTPS、Web的攻击技术面试也是经常问的。
TCP/IP详解 卷1:协议(选看)
HTTP权威指南(选看)
操作系统
这是我的教材,个人感觉还是不错的适合入门。
这本书太厚了,适合当工具书,哪里不会翻哪里。
UNIX环境高级编程(选看)
架构
讲述大型互联网架构设计的核心原理,面试有很多问题可以在这本书找到。
师兄这么多书我看不完啊
每本书名后面我都有标必看还是选看。选看如果时间不允许可以不看,工具书的意思是看面经或者面试完复盘遇到不会的问题的时候,看相应的内容,毕竟网上的东西绝大部分都是二手或者三手以上的资料。
那如何看书呢?我经常都是看了前面忘了后面的
这是很正常的,不然为什么会有人二刷、甚至三刷的?我看书的时候会经常问自己,为什么有这东西?这东西解决了什么问题?如果没有这东西会怎么样?当我抛出这些问题后,把这些问题当做面试官问我的问题,我再根据之前看的内容对着书说出来。
举个例子
hashMap中的扰动函数解决了什么问题?
没有扰动处理会怎么样?
其他像hashTable是如何解决的?有没有什么可以代替的方案?
这样多问问自己,相信看完后,你会有更加深刻的理解。
第二阶段看别人总结的面试问题(面试前一两个月左右开始)
我们看完很多很多书后,这时我们还是不能应对面试的,因为我们根本不知道面试到底会问什么。
所以这时我们可以看看别人总结的面试问题及答案。这里先推荐几个。
这些会更加针对面试,基本都是面试的常见问题,在我们看完之前的书之后,我们再来看这些问题会感觉貌似会但是不会说,所以这阶段我们看看别人是怎么回答的。
我们看完每个问题及其回答后,闭上眼睛用自己的话回答(假装面试官就在你面前)。不要去背,如果理解了用自己的话说出来是完全没问题的。
第三阶段看相应公司的面经(面试前几天开始)
https://www.nowcoder.com/interview/center
可以去牛客(希望牛客能给我广告费)看别人写的面经。
前期就是看到一个问题自己回答一下,不会就去上网查资料、翻书,查资料最好别用百度,花点钱用Google吧,百度查到的都是CSDN。。。
查完资料自己一定要有一个整理的过程!!!
比如上面的Mysql主从一致,你看了一遍会了,下一次遇到又不会,你又去查,浪费时间而且查到跟之前还可能不一样,最坑爹的是,有时候我翻了很多资料才找到一个满意的答案,所以这整理不是浪费时间,是节省时间。
上面这图是我校招整理的问题,分享给大家,基本上面试的问题都能在这里找到,而且很多问题都有对应的博客详细解答。(别忘记点个star)
https://github.com/505928168/JavaInterview
建议下载Typoar来看
我看到一些好的文章我会记录他的网址,并且把精华的部分复制出来。下一次再遇到这问题我就直接看,省了很多时间去查。
师兄为什么你标题是说看相应的公司呢
因为不同公司的考察内容的不一样的,比如腾讯就喜欢问操作系统、计算机网络、数据库,阿里就喜欢中间件。
所以如果你想进腾讯,那就要先认真研究一下腾讯一般会问什么。
第四阶段面试复盘
经过前面的三个阶段,我们知道面试会问什么并且能够回答,那我们就可以去历练。建议每次面试都录音,复盘的时候自己哪块比较弱就去学习。
建议先找小公司试试手,因为在大厂你的每次面试都有记录的。疯狂投简历吧!冲!
第五阶段自我提升
假设这时候你面对基本的面试问题了如指掌,先别高兴太早,这时候我们应该学习更加有难度的东西,比如中间件、linux底层原理等等。
这阶段最好的方法还是看书。
Redis
这是面试经常问的,建议别再这阶段学,提前学习。
消息队列
我推荐学Kafka吧,个人感觉资料会多一点。
B站找尚硅谷的入门视频。知道它是什么东西,怎么用的,之后看
zookeeper
B站找尚硅谷的入门视频。知道它是什么东西,怎么用的,之后看
其中如果觉得一致性算法难以理解这里推荐视频
https://www.bilibili.com/video/BV1TW411M7Fx
Dubbo
还是一样B站入门,之后看官网吧,因为我感觉很多书籍都是摘抄官网的。
http://dubbo.apache.org/zh-cn/
最后看完上面的选看书籍,恭喜你无敌了!!
师兄师兄,怎么没听你讲算法呀,我算法好菜的
那好小师妹,我最后讲下算法怎么准备,我们都知道算法是不能速成的,但是!!有很多套路!所以我这里非常推荐labuladong 的算法小抄,我就是靠着这小抄过了字节跳动的,剑指Offer我感觉也不错,值得看看。
我们看完算法小抄,并且跟着在力扣上面打。之后我们去力扣完成热题一百、面试精选等。如果觉得自己哪块比较薄弱,可以选择特地的分类刷题,比如动态规划。
注意,我们写算法题的时候就在力扣的IDE上面写,一开始很痛苦没有代码提示什么的,但是面试就是给你这样的环境,所以我们要提前熟悉!
项目呢?师兄?
项目确实是很多人的痛点。我们可以去抄袭别人的项目。就是写一个类似的,这个过程就算是抄,你也可以学到不少东西的,学编程不就是这样先看,再模仿、修改,然后创新吗?可以去GitHub上面找,有不少人是把自己面试的项目放在上面的,抄了再创新。
抄完项目后,想想这个项目的难点是什么,把这个难点包装,升华一下就是你面试要说的内容了。当然啦,项目的背景啊,实现了什么功能都要在面试前打好草稿。我这里不推荐任何项目,避免大家都一样就不好了。
避坑:建议别选秒杀或者商城,因为太多人选择了。这样的后果就是本来你做的东西挺不错,但是别人比你更好,那你就没有优势了。
如果自己没有做过项目,甚至连框架都没用过,可以去B站上面学习,像狂神说、尚硅谷还是不错的。
好啦,上面就是我校招的学习路线,适合收藏后慢慢看。
我是小炫,你们的点赞是我坚持下去的动力,我们下次见!