八股文,吐了

2022-01-13 15:32:06 浏览数 (1)

大家好,我是帅地。

现在计算机专业是越来越卷了,在 2016 年那会,我朋友说他去培训班培训了 6 个月,就能找到一份月薪近万的工作,培训的内容也不怎么难,就是语言基础=》框架=〉做几个项目,之后就能上岗干活了。

但现在,不一样了,如果你是应届生,那么面试官会问你一大堆理论基础,当然也会问项目,而这些理论基础,也是我们通常说的八股文

如果现在的你,单单只是掌握语言基础 项目,对计算机基础和算法不了解,那么分分钟被吊打,当然,还得看公司,一般小公司这方面就问的少一些。

所以呢,对于想要进大公司的校招生来说,最好的方式就是从大一大二就开始打这些理论基础,感兴趣可以去参加一些比赛,之后做项目,去实习。

当然,我说的是 以找工作为主的小伙伴可以这样,如果是想读研的,那又是另外一套学习理论了。

为了让帅地知识星球的小伙伴少走一些弯路,我前阵子也给帅友整理了一波八股文

这些都是我通过大量的面经 基于自己当时对八股文的准备来总结的,如果没有特别明确的学习规划,可以按我说的来。

一、通用部分

1、计网和操作系统:这两个考的非常非常多,0 基础的可以找个视频入门下,计网 0 基础也可以看《图解HTTP》,然后有时间我建议系统学下,计算机网络我觉得《计算机网络自顶向下》这本书看两遍就够了。

如果是半吊子水平,既会又不大会的状态,就看别人总结的 PDF,或者看我之前发的一个视频:计网 操作系统 计组入门教程

2、中间件:Redis,MySQL,zookeeper,消息队列,前面两个问的多,后面得看你项目有没有用到。

学习思路:MySQL 自己随便找个教程,跟着教程会一些基础操作,就可以学习原理了,面试就问原理。

我是强烈推荐极客时间的 MySQL实战45讲这个专栏,不然就看《MySQL技术内幕》,但是这一本还不够,可以配合文章吧,mysql 学习路线具体也可以看这个:肝完了,我的 MySQL 学习之路

然后 Redis,有两本,一本是《redis开发与运维》,一本是《redis设计与实现》,我觉得看第一本就可以了,然后配合文章,第二本会难一些,讲的更加深入,也可以第二本。

之后有兴趣的可以用 redis 实现一个消息队列 分布式锁,这样你在面试官面前更加能扯。

然后消息队列和 zookeeper,如果项目没用到,随便看看了解下就可以了。

如果项目用到,那就把常考理论搞明白,不用看啥书,看文章就可以了,另外可以看石衫老师的视频,B站搜索互联网Java工程师突击就可以了,看第一季。

3、设计模式:除单例设计模式会让你写代码,其他设计模式主要考察应用场景。

例如动态代理用了啥设计模式啊,所以呢,对于设计模式的学习,必须要结合场景勒,最好的场景就是框架。

就是在学框架的时候,如果有用到了某个设计模式,你就记起来,后面还能给面试题举例子。

另外就是设计模式我觉得不需要系统看书,貌似核心的就五六个,看文章学就可以了。

4、分布式:最后就是分布式了,其中分布式的学习最好是有对应的项目,但在校生哪有啥高并发分布式项目,如果有,也是你们刻意而为的项目,这些,面试官都知道。

你们说的天花乱坠的项目,在面试官面前就是小儿科,那为啥还要问,因为「卷」。

所以这块在学的时候,主要就是学一些「理论」和应用场景,例如 布式id,分布式事务、分布式锁、分布式算法(Raft)、分布式缓存。

不过这块如果你简历不写,其实也不怎么问,项目用了才会问,至于看什么资料?这块我当时是看文章的,你们可以文章积累,也可以看看极客时间有没有对应的专栏。

二、语言部分

5、Java部分主要考察:Java基础,并发,虚拟机,集合原理,就这四个,后两个问的更多。

学习思路:首先 Java 基础没啥好说的,随便找个视频快速看就可以了,我推荐上学堂Java高琪第一季。

不过我当时的看了第一季和第二季,这里其实也建议看到第二季,也就看到 242 集,然后 第一季在 147 ~161 集是一个小项目,这个项目不想做可以不用做,我当时没做。

之后并发,我觉得你把《Java并发编程艺术》这本书看三遍,就可以了,第一篇很痛苦,经常犯困,第三遍很多都豁然开朗。

之后就是集合这块,直接看别人的文章来复习源码,主要就是 hashMap,concurrenthashMap,ArrayList,LinkedList 这几个,像 List 这些,有时间可以自己实现一个。

然后就是虚拟机,把这本《深入理解Java虚拟机》的书,看两三遍就行了,一本就够了,重点是垃圾回收,内存管理,类加载机制 这块。

6、Java框架部分:这块没啥好说的,就 Spring,SpringBoot,MyBatis,SpringMVC,不用学太深,用他们做过一些项目 注意下用到的一些设计模式。

还有 AOP 和 IOC,学的时候,看视频 文章,通过面试题针对性看文章就可以了。

7、C 待补充,由于C 和前端这块,我不怎么熟悉,后面补充

三、学习优先级

学习优先级:1,2(mysql和 redis),5,6这四个,没啥优先级,都得学(非Java开发的 5 和 6 不用学)。

之后设计模式快速了解下,然后如果你项目用到了消息队列,分布式这些,那就要重点学习啊,否则有时间学习下理论,因为项目用到了就肯定会问,例如如何用 redis 实现消息队列啊。

最后学的时候,验证自己学的如何可以看面试题和面经,这块我网站都有提供,你们可以去看:https://www.iamshuaidi.com

然后就是,是不是觉得需要学的很多?

假如你学习能力强,有基础,其实一年时间就够了,真的,就是要静下心,疯狂学,快的就半年(就是你平时有学过一些基础)。

后面我会基于这些八股文,系统补充上学习资料以及考察重难点。

0 人点赞