零基础——互联网学习路线(中)

学习路线分上中下三篇,第一篇已经发布了,本文是第二篇。剩下一篇这两天会发布。欢迎大家关注订阅。有建议欢迎评论区留言~。

下面的所有的学习资料博主都已经分类整理好了(资料在微信交流群内,见文末),公众号后台回复“资料”即可获取整理好的学习资料。

在上篇文章中,博主详细介绍了java基础的学习和javaEE的学习,并且分享了配套的学习资料。在这篇文章主要介绍第二阶段的学习,第二阶段主要是面试书籍,你可能会问视频看完了,为什么还要看书啊,为什么不直接看书呢?对初学者来说,看视频比较直观,能够直接感受到我学这个到底有什么用,能给初学者一个方向。而且,技术类书籍一般都很厚很厚,如果直接看书,可能会导致“从入门到放弃”......所以呢,推荐先看视频。另一个重要的原因是,求职面试本质上还是考试,有考试的地方就有应试技巧,而一些在求职者口中口耳相传的书,就是应试技巧。说来读者不要不信,很多面试官在基础考察的时候都是直接是根据书来问,因为这些面试官也是从学生时代过来的,而他们可能和你看的是同一本书。也就是如果你和面试官的知识体系结构一样的话,面试官问出来的问题,你自然可以回答得很好。下面是书籍推荐:

01

java基础

java核心卷I:java核心卷II可以买也可以不买。java核心卷I只看前9章,其他不用看。身边同学都认为这本书不适合初学者,但是如果你之前看过java学习视频,那么这本书很适合你。这本书主要让你对java知识有个系统的学习,建立起自己的知识体系结构。系统的体系结构在求职面试显得尤为主要,不仅仅是指java基础。所以大家一定要学会总结,零散的知识碎片对面试十分不利。

02

多线程、并发

实战java高并发程序设计和java并发编程的艺术:java高并发程序设计,这本书主要是为了看第二本书做铺垫,直接看第二本书可能会很吃力。实战java高并发程序设计主要看:前4章、5.1、5.2、5.3、5.10、5.11和第6章。第二本书“java并发编程的艺术”除了6.4和10.4相对不是重点,其余每一章都是考点、每一章都是,记住这句话。6.4和10.4建议看一下,不是重点,但是建议看。大家记住并发编程的艺术是重点,基本上上面提到的那些章都是重点。

另外,大家自行找博客补充下协程的概念,公众号后面也会有讲解。近期各大公司都有研究使用协程,面试大概率会问到。协程其实就是单线程里面实现多任务调度,因为是单线程,所以不用锁,自然没有锁的竞争那些问题,效率更高。大家可以去了解下,大概率会被问到。并发编程的艺术可能看第一遍可能迷迷糊糊,都不知道到底讲了什么,这本书断断续续可能要看三遍或者以上,所以一遍看不懂不要灰心,因为大家都这样。

03

java虚拟机

深入理解Java虚拟机:只要看:第2章、第3章、第4章、第5章简单看一看、第六章看6.1和6.2、第7章以及第12和13章。12和13属于并发里面的补充。上面这些都是重点,面试的典型问题,包括之前讲过的GC,内存模型、调优、常用命令、类加载、OOM和stackOverflow等。还有就是对象的生命周期一些,这本书大多是记忆类的,大家多多总结,多翻几遍~

04

数据结构

大话数据结构:这本书通俗易懂,第5章可以不看,其余建议看。第五章,怎么说呢,我和周围同学面试都没被问到过KMP算法,笔试中可能会遇到,但是KMP算法可以解决的问题DP大概率也可以解决,而且KMP算法不简单,对自己要求高的同学可以看看。第七章图,图在面试中基本不会问,但是在笔试中大概率会碰到,所以还得看。但是放心面试中几乎很少问到图的。

05

设计模式

Head First设计模式:建议看前13章,第13章实际是讲MVC模式,这个也要掌握,附录中的模式不想看就别看了。这本书“废话”比较多,图文也很详细,每一种设计模式都有具体的案例,可以帮助你更好的理解设计模式。

学习完一种设计模式后,最好能够找到JDK或者Spring或其他框架源码中的应用,这有助于理解,加深记忆;更重要的是,如果面试官在问你设计模式的时候,你能详细说出几种常用的设计模式,并且给出在JDK或spring或其他框架源码中的应用,以及该模式解决了什么问题之类的,这肯定是加分项,面试官会认为你知识体系结构很完善,对你的印象肯定更加深刻。

常问的设计模式问题有:单例、适配器、装饰者、代理、组合、策略、模板方法、观察者、工厂方法。这几种是重点,其他的模式依旧建议看看,即前13章都建议看。百度面试曾经问过一个问题:装饰者模式、静态代理和动态代理模式的异同;为什么spring的AOP不使用装饰者模式实现等问题。再次强调一点,上面提到的每一种模式必须能够举出一两种应用场景,即JDK、Spring或者其他框架源码的那个地方应用了这些设计模式,并且要能手写出代码实现。百度面试就是这么问的,一定要能举出案例,也问过手写观察者模式;也有很多公司要求在草稿纸上画出各个设计模式的UML图,这个也希望大家掌握,希望引起大家重视。

06

分布式

从Paxos到Zookeeper分布式一致性原理与实践:第1章、第2章,第4章,第五章,第6章,7.1节、7.4节、7.5节,7.6节、7.7节、7.9节,8,4节,8,5节。书名比较长,这本书很重要,因为现在的网站都是分布式,高可用(一台机器坏了会自动由另外一台机器对外提供服务)、分布式锁、分布式队列等等一些相关功能都可以使用zookeeper实现。另外,zookeeper在很多框架中的很多:HBASE、Hadoop、kafka、YARN等等(后面这些框架只是举例)。

在前一篇文章中曾提到过,在项目相关面试问题中,面试官有很大概率会把你的项目往分布式上面延展,而zookeeper可以解决大部分的分布式问题,互联网公司用的也很多。

zookeeper重点掌握:两阶段、三阶段提交、Paxos算法、zookeeper的应用场景(非常非常主要,第六章)、leader选举、watcher机制(最好读一下watcher机制的源码,公众号后面也会有讲解)。第五章是告诉你怎么使用zookeeper的,zookeeper有哪些用途,虽然面试不会直接考,但是必须得看,否则你学了zookeeper,你还不知道zookeeper是怎么使用的.....这里的意思是,第五章的那些API你不要去记也没必要,你只要知道它有这么个用途,能决绝什么问题就可以了,具体的API说个名字或者名字说不出来也没关系,面试官一般不会纠结与API的名字,更想提到你对某个知识点自己的理解。第五章那些知识点可能是你项目面试问题的答案,因为zookeeper应用场景很多,但是往大了说就几个大类场景,看数一定要学会自己总结,自己总结的印象更深刻。第五章大概看看浏览就好,最好跟着打一个zookeeper集群,自己亲手操作一下,也不难。

06

数据库

数据库只需要学:MySQL、Redis,对大数据有了解的建议看看HBASE(使用了zookeeper),其他数据库不要学。在上一篇文章中给大家总结了资料,里面有MySQL和Redis的视频,建议看视频学习,视频之后,MySQL推荐“高性能MySQL”,注意这本书好像并不适合初学者,建议先看MySQL视频。Redis看完视频后建议看看博客,Redis主要问:常用数据结构、集群、哨兵、用在哪些场合、解决了什么问题、持久化AOF和RDB。最后,简单的SQL一定要会,面试也有让手写简单的SQL,就SQL立案表层查询那些。


扫描下方二维码,及时获取更多互联网求职面经javapython爬虫大数据等技术,和海量资料分享
公众号菜鸟名企梦后台发送“csdn”即可免费领取【csdn】和【百度文库】下载服务;
公众号菜鸟名企梦后台发送“资料”:即可领取5T精品学习资料java面试考点java面经总结,以及几十个java、大数据项目资料很全,你想找的几乎都有

扫码关注,及时获取更多精彩内容。(博主今日头条大数据工程师)

推荐阅读

关于我

公众号初衷

零基础—互联网学习路线(上)

面试算法明星—LRU

百度面试算法原题

今日头条面试算法原题

你可能感兴趣的:(零基础——互联网学习路线(中))