前言

最近有很多小师妹来问我。

师妹:师兄~看了你之前的从腾讯到阿里,最后选择字节,觉得你特别厉害,请问你是怎么进BAT的呀,能不能告诉我你的学习路线呀~

既然小师妹都这么问了,那我在这篇就如实回答她。

正文

第一阶段看书籍

从书籍当中我们能更加系统的学习。我先推荐Java语言的书籍,如果你不是学Java的可以先跳过Java的书。

如果你是什么都不会的小白,先看《Java 核心技术卷 1+卷 2》

Java

深入理解Java虚拟机(第3版)(必看)

image-20201026154550096

这本书主要讲的就是JVM,如果你是Java语言选手一定会问的。第2章 Java内存区域与内存溢出异常,第3章 垃圾收集器与内存分配策略,第8章 虚拟机字节码执行引擎 ,第7章 虚拟机类加载机制,第13章 线程安全与锁优化。这几章是面试常问的内容。当然啦,第一遍如果没有吃透很正常,可以二刷。

Java并发编程的艺术(必看)

image-20201026154609978

这本是并发的入门书籍,Java并发编程实战我也看过,不过会比较难一点,所以还是推荐这本书。并发编程的艺术需要先看完Java虚拟机。

Java并发编程之美(选看)

image-20201026152802320

 

这本书主要讲的是Java中并发集合的底层原理。看之前应该先理解简单Java集合的原理,如hashMap、arrayList、linkedList等原理再去看这本书。虽然本书的内容面试不常问,但作为加分项还是OK的。

加分项就是别人不知道,你知道的东西。

计算机网络

谢希仁的《计算机网络》(必看)(工具书)

image-20201026152815353

这本书应该是很多高校的教材,跟着老师走就行,重点要掌握IP、TCP、UDP、HTTP。

图解HTTP(必看)

image-20201026152827213

这本书的内容还是挺简单的,而且书中的内容HTTPS、Web的攻击技术面试也是经常问的。

TCP/IP详解 卷1:协议(选看)

HTTP权威指南(选看)

操作系统

操作系统精髓与设计原理(必看)

image-20201026152839639

这是我的教材,个人感觉还是不错的适合入门。

深入理解计算机系统(选看)(工具书)

深入理解计算机系统(原书第3版)

这本书太厚了,适合当工具书,哪里不会翻哪里。

UNIX环境高级编程(选看)

架构

大型网站技术架构(必看)

大型网站技术架构

讲述大型互联网架构设计的核心原理,面试有很多问题可以在这本书找到。

师兄这么多书我看不完啊

每本书名后面我都有标必看还是选看。选看如果时间不允许可以不看,工具书的意思是看面经或者面试完复盘遇到不会的问题的时候,看相应的内容,毕竟网上的东西绝大部分都是二手或者三手以上的资料。

那如何看书呢?我经常都是看了前面忘了后面的

这是很正常的,不然为什么会有人二刷、甚至三刷的?我看书的时候会经常问自己,为什么有这东西?这东西解决了什么问题?如果没有这东西会怎么样?当我抛出这些问题后,把这些问题当做面试官问我的问题,我再根据之前看的内容对着书说出来。

举个例子

hashMap中的扰动函数解决了什么问题?

没有扰动处理会怎么样?

其他像hashTable是如何解决的?有没有什么可以代替的方案?

这样多问问自己,相信看完后,你会有更加深刻的理解。

第二阶段看别人总结的面试问题(面试前一两个月左右开始)

我们看完很多很多书后,这时我们还是不能应对面试的,因为我们根本不知道面试到底会问什么。

所以这时我们可以看看别人总结的面试问题及答案。这里先推荐几个。

JavaGuide

CyC2018/CS-Notes

JavaFamily

algo-basic

这些会更加针对面试,基本都是面试的常见问题,在我们看完之前的书之后,我们再来看这些问题会感觉貌似会但是不会说,所以这阶段我们看看别人是怎么回答的。

我们看完每个问题及其回答后,闭上眼睛用自己的话回答(假装面试官就在你面前)。不要去背,如果理解了用自己的话说出来是完全没问题的。

第三阶段看相应公司的面经(面试前几天开始)

https://www.nowcoder.com/interview/center

可以去牛客(希望牛客能给我广告费)看别人写的面经。

image-20201026154824188

前期就是看到一个问题自己回答一下,不会就去上网查资料、翻书,查资料最好别用百度,花点钱用Google吧,百度查到的都是CSDN。。。

查完资料自己一定要有一个整理的过程!!!

比如上面的Mysql主从一致,你看了一遍会了,下一次遇到又不会,你又去查,浪费时间而且查到跟之前还可能不一样,最坑爹的是,有时候我翻了很多资料才找到一个满意的答案,所以这整理不是浪费时间,是节省时间。

image-20201025153052353

上面这图是我校招整理的问题,分享给大家,基本上面试的问题都能在这里找到,而且很多问题都有对应的博客详细解答。(别忘记点个star)

https://github.com/505928168/JavaInterview

建议下载Typoar来看

我看到一些好的文章我会记录他的网址,并且把精华的部分复制出来。下一次再遇到这问题我就直接看,省了很多时间去查。

师兄为什么你标题是说看相应的公司呢

因为不同公司的考察内容的不一样的,比如腾讯就喜欢问操作系统、计算机网络、数据库,阿里就喜欢中间件。

所以如果你想进腾讯,那就要先认真研究一下腾讯一般会问什么。

第四阶段面试复盘

经过前面的三个阶段,我们知道面试会问什么并且能够回答,那我们就可以去历练。建议每次面试都录音,复盘的时候自己哪块比较弱就去学习。

建议先找小公司试试手,因为在大厂你的每次面试都有记录的。疯狂投简历吧!冲!

第五阶段自我提升

假设这时候你面对基本的面试问题了如指掌,先别高兴太早,这时候我们应该学习更加有难度的东西,比如中间件、linux底层原理等等。

这阶段最好的方法还是看书。

Redis

这是面试经常问的,建议别再这阶段学,提前学习。

Redis设计与实现(入门)Redis 深度历险:核心原理与应用实践(进阶)

消息队列

我推荐学Kafka吧,个人感觉资料会多一点。

B站找尚硅谷的入门视频。知道它是什么东西,怎么用的,之后看Kafka权威指南

zookeeper

B站找尚硅谷的入门视频。知道它是什么东西,怎么用的,之后看从Paxos到Zookeeper : 分布式一致性原理与实践

其中如果觉得一致性算法难以理解这里推荐视频

https://www.bilibili.com/video/BV1TW411M7Fx

Dubbo

还是一样B站入门,之后看官网吧,因为我感觉很多书籍都是摘抄官网的。

http://dubbo.apache.org/zh-cn/

最后看完上面的选看书籍,恭喜你无敌了!!

师兄师兄,怎么没听你讲算法呀,我算法好菜的

那好小师妹,我最后讲下算法怎么准备,我们都知道算法是不能速成的,但是!!有很多套路!所以我这里非常推荐labuladong 的算法小抄,我就是靠着这小抄过了字节跳动的,剑指Offer我感觉也不错,值得看看。

我们看完算法小抄,并且跟着在力扣上面打。之后我们去力扣完成热题一百、面试精选等。如果觉得自己哪块比较薄弱,可以选择特地的分类刷题,比如动态规划。

注意,我们写算法题的时候就在力扣的IDE上面写,一开始很痛苦没有代码提示什么的,但是面试就是给你这样的环境,所以我们要提前熟悉!

项目呢?师兄?

项目确实是很多人的痛点。我们可以去抄袭别人的项目。就是写一个类似的,这个过程就算是抄,你也可以学到不少东西的,学编程不就是这样先看,再模仿、修改,然后创新吗?可以去GitHub上面找,有不少人是把自己面试的项目放在上面的,抄了再创新。

抄完项目后,想想这个项目的难点是什么,把这个难点包装,升华一下就是你面试要说的内容了。当然啦,项目的背景啊,实现了什么功能都要在面试前打好草稿。我这里不推荐任何项目,避免大家都一样就不好了。

避坑:建议别选秒杀或者商城,因为太多人选择了。这样的后果就是本来你做的东西挺不错,但是别人比你更好,那你就没有优势了。

如果自己没有做过项目,甚至连框架都没用过,可以去B站上面学习,像狂神说、尚硅谷还是不错的。

好啦,上面就是我校招的学习路线,适合收藏后慢慢看。

我是小炫,你们的点赞是我坚持下去的动力,我们下次见!

image-20201021172203723

来关注一波~

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/runxuan/p/13884072.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!