双非无实习大厂经验分享:如何背八股和不背八股

简介

看见很多人对不背八股和笔记管理及思维方式感兴趣,我稍微分享以下叭。(小破丶

站后续会出视频教程,包括笔记设计,思考方式,资料推荐,可以先关注一波,同名)

先来探讨几个问题?

> 以下均为我自己的看法,知识点部分,用词可能是有不准确,因为重经验分享而不是打磨细节部分。

> 以下是我的真情实感,编出来的。希望觉得有用的朋友们可以点赞收藏关注

注意:

- 我是在网页端编辑的,是我将列表按层级来缩进,但是发现app端看不见缩进!!淦

为什么会出现八股文

  • 面试常问
  • 面试官的提问神器,面试者的参考手册

我自己虽然说我自己不背,但是我不是不看? 所以我对八股文其实也没有任何恶意。

  • 为什么很多大佬,或者面试官可能讨厌八股文?

原因是,很多面试者,他一味的去背八股,但是却没有任何思考(如果你有充裕时间,我觉得不思考那就不能理解了)。作为面试官,每次听到都是一样的答案,没有任何的感觉可能不太行吧。思考很多问题,回答很有深度,但是没感觉到有自己的视角

  • 为什么面试官一眼看出你背八股:
  • 很多人回答一样
  • 你的回答看上去没有纰漏,偶尔几个还好,但是通篇下来,面试官发现,你所有的回答,都没有自己的角度?
  • 八股文回答很全面,那些东西如果你思考过,你会发现解释起来是很难的,假设你真正研究过,谈论的时候必然会谈论你的感觉、看法
  • 例子: 问: 山顶的景色如何。
  • 背八股: 注重讲清楚,云,天空,草木,全部描述的很清楚
  • 不背:
  • 视角(登顶后,太阳-->云-->蓝天-->远处山-->近处的树-->草)
  • 重点(很难都讲出来,但是至少有详有略)
  • 观点(自己对哪个最喜欢,或者说的多的肯定就是喜欢呗),拓展比较和关联(黄山、华山、泰山。个人觉得有什么区别);
  • 可选(真情实感,爬山太累了,但是看见风景觉得还是值得的)
  • 我怎么看待八股

八股其实蛮有用的(很多也就是官网解释,肯定精华)。因为如果你花一段时间去研究一个框架,比较懂了,你会发现,要理解这个框架,这个知识,是有几个关键的问题!,其实是通过这几个关键的问题,你就能讲一个框架的核心流程说明白。我也看过八股,我觉得很多问题都是研究清楚一个知识点的关键。大家如果认真研究哪些,再去拓展思考,是很牛的!!(非广告,我也不知道谁的八股文好)

  • 我怎么看八股?

我看八股不太多,但是可能我研究过的短视频、我收藏的资料,也属于八股。谁能不接触八股呢?所以这个问题,其实也就是如何学习的问题,很多八股就是从官网摘录下来的,并且总结的也非常好啊。所以这个问题,我就介绍为"我该怎么学习的?"

学习方式

我用的Obsidian + 若干插件 + 自己不断琢磨自己的学习方式,搞出如下功能

  • PDF管理: 如果管理若干本地PDF?如何阅读并管理PDF笔记?
  • 图片管理: 对于自己画的图, 全部规范命名,存储在一个文件夹中
  • 画图管理、笔记管理
  • 脚本管理: 输入内容,快速打开网站,搜索电子书问题等。毕竟,一个个搜太慢了
  • ......

大致的笔记理论就是:

  • 将笔记进行拆分!!: 可以参考卡片盒笔记法,将笔记尽量拆分为独立的笔记内容
  • 笔记分层: 我将笔记分为三层: 索引笔记-永久笔记-子知识笔记
  • 类比:B+树,第一层索引,只有叶子节点才存储,搜索知识点的过程,就是B+树的Root Node和非叶子节点进行范围索引,最后到叶子节点,这里是数据
  • 索引笔记存储`链接`和`框架的介绍`及`链接的介绍`,索引笔记只链接到永久笔记,永久笔记存储一个独立知识点,如果要对这个独立知识点进行深入研究,那么就先在永久笔记里面创建链接连接到这个子知识笔记。
  • 好处就是:解耦,找文件贼快。知识点的粒度非常细
  • 画图: 以一个框架的关键线路,进行绘制一张图,然后在你不断研究学习的过程中,将这些笔记串联起来!!!!
  • 规范命名
  • 类比:联合索引,例如Spring--永久笔记--ApplicationContext。现在来理解联合索引,我们想搜某个文件,可以是`Spring`,可以是 `Spring--永久`,也可以是`Spring--永久笔记--Application`
  • 双联思想: 通过卡牌盒进行拆分,通过链接,将耦合的文本内容进行解耦。而画图则是完成一个高内聚的过程,聚焦相关知识点
  • 开个玩笑:相当于IDEA用 ctrl + q 跳转,链接很方便。但是总不能把所有类写一个文件中吧

我阅读源码笔记,源码和阅读笔记解耦,只留一个链接拆分笔记: 让每一个笔记都可以被引用,也可以引用其他笔记解耦画图和笔记: 如下图,下划线为链接。从该知识点的视角来看,阅读笔记和源码耦合,源码的不同实际不会影响笔记。

例如下面画图,就是一个架构图啊,但是笔记被我通过链接的形式。将两者解耦同理: 尝试将笔记资料解耦,合理命名,管理。然后再梳理,就异常清晰了

这里打算以一个例子来解释我要学习JVM

  • 从JVM:
  • 如何调用本类的静态实例方法
  • 另一个类的方法
  • 另一个接口的方法
  • 抽象类?
  • 如果用到了静态变量
  • 其他对象的变量等
  • 又是怎么样执行的?
  • 面向对象的底层思想?

上面这些东西,思考费劲嘛

上面那个,就是很多人背八股的感觉,。为什么需要背?只能记住问题,但是没有线路的上下文,问题之间没有关联。但是,假如你研究了一个流程,整理出来后,然后总结的很清楚,熟悉到能口述的地步。回答很多问题就不那么困难了,因为你都研究过,而且很多知识点都有上下文(这样会帮助记忆)

  • JVM
  • 一个main()方法,其中定义了变量,创建了对象,调用了静态方法、实例方法。用到了抽象类、接口。调用了本地方法。
  • 如果学完了JVM,尝试用你学到的知识来解释JVM执行上面这个的过程

我这里没有去强调任何一个组件结构,但是你要解释这些问题,必须要了解各个组件是如何上下承转的。然后,之后,可以尝试去解释一下面对对象思想,在Java中是如何利用JVM来实现的?编译器是如何配合完成这个功能的?

之后,你就发现,你可以串联起来整个流程!!

一个main()方法,其中定义了变量,创建了对象,调用了静态方法、实例方法。用到了抽象类、接口。调用了本地方法。

然后如何编译成字节码(编译器)

然后JVM中的流程

也就是核心方法是,可以先看看一些问题,但是一定要梳理他们之间的流程。然后学完了之后,再拓展自己的思路,将这个线路的上下文也梳理起来,整合成一个大的线路。

我的感觉

就是对于很多框架,都有一个感觉,就是看过原理和一点源码之后,最重要是了解他们的流程。

举个例子发送一条请求,要经过哪些地方?

注意,并非是对每个部分都要研究清清楚楚,而且当你在不同的一个知识储量下,要有不同知识储量下的一条线路!!!

  • 浏览器如何发送?
  • 操作系统如何接收?(tips: 协议栈的应用层是用户态,其他层是内核态;协议栈解析完了,网卡发送,其中的过程又是怎么样)
  • 计算机网络: 路由器等各类网络设备如何处理
  • 对方操作系统如何接收?(差不多对称)

当消息达到了对方应用层然后就是Web框架部分:(可选: Tomcat启动也不是也Java代码,也可以解释从Java代码--->编译--->JVM执行的过程)

  • Tomcat来接收,他的接收的原理是什么呢?
  • 看过源码之后,顺起来执行流程
  • SpringMVC的核心是啥? DispatcheServelet
  • 有了SpringMVC就没有Tomcat了吗?不是,依旧是Tomcat来处理,那么他俩之间如何承接的。(面向接口编程)SpringMVC也有自己的流程
  • 这里其实一般单体就差不多了,BUT,但这也太小瞧我们后端程序员了吧!!
  • 咱们继续梳理
  • MySQL 连接如何建立的、执行优化器啥的(这些C++的东西,好难啊,搞不懂,还有太多理论知识)后续就是一条SQL如何执行 如果数据不在,是不是还得加载磁盘的数据页?对非索引行的修改操作(非插入),可以缓存嘛? changeBufferBufferPool中的数据如何管理的?
  • Select:B+树如何搜索的?如何找到目标的行记录 注意: 这里可以帮助你了解索引如何存储、管理、执行。
  • Update:B+树如何更新的? ,如何加锁的?
  • Insert:同
  • Delete:同
  • 如何保证事务?
  • ...其他问题
  • Redis: 我的Redis,手画了一张图,就是源码结构图。部分参考自《Redis设计与实现》这里不多讲了。
  • 微服务/分布式:微服务不也是处理请求吗。也可以解释呀。

就是,你在研究不同知识点的时候,我感觉,在研究如下问题

  • JVM优化
  • MySQL调优
  • 各种优化 例如,我MySQL可以的一条流程梳理的还不错?
  • 例如上锁了,我就能在脑子里面梳理,这条SQL语句,在已给的记录集下,如何在B+树上去遍历,然后加锁,最后得到结果的?
  • 这里情况很多: 主键索引、辅助索引、for share、for update、limit、order by....可能都会影响结果喔。也包括各类索引失效会咋样
  • 这个时候看一些常见SQL技巧,我就知道他是发生在那个位置的,然后去梳理和研究。

我看过很多文档,梳理这些的目的,不是去让看起来懂得很多,我一直感觉我很多反而都不懂(很多知识点还是很难理解的),而是,当一个问题发生了,你在脑子里面是清楚,这个问题是在哪里发生的。甚至晚上如果要想问题,就会有很多流程和架构图浮现在脑子里面,去思考问题

学习的感觉

  • 通过上面这种思维方式,结合架构图、手绘流程图
  • 最后自己的脑子里面就像印了各种架构图,当我回答一个问题的时候,其实我脑子里面只知道他和哪些框架有关系(我也不是立刻就知道之后要说哪些东西,包括我写上面的部分也是),就是按照一条线的逻辑,到了哪个框架,再去脑子里面搜索(之前我提到了线头的概念)。然后在说出来,这也就是为什么我不需要去刻意去背很多东西(也会忘,但是可能花30分钟,就会很熟悉了)
  • 然后很多问题也是,我就单独把那一段路线上的子路线(子集),说出来,所以我的回答应该很多都不是一般意义上的八股(有参考)

问个问题

问题1 英语

我最近打算看英文技术文档/网站,来帮助学习英语。我已经看过一个全英的正则的练习网站,感觉还不错。大家有没有一些网站,他的东西,我们技术者也需要,例如各类工具啥的。但是不会有特别多的生词,我想练练英语!!。希望英语好的学弟、学妹、大佬。或者给一点建议,我要学英语,目的: 看技术文档、日常交流、可选: 工作交流,我想学,但是这样难度会不会很大,很多计算机词汇我不懂

问题2 提前实习需要准备哪些/提前实习,怎么才能最大化提升自己

我单独出文章又没人回复,这里可能热度会高一些

Tips

我这里不想说的很高级,我多厉害,亦或者我思想多深刻。我就是一个小白,我还有很多要学的。

上面是我脑子里面的草稿,如果大家没有梳理过,可能会看的迷迷糊糊的。

但是不代表你比我差,同样也不代表我比你厉害,只是你还没学到或者没去研究!!!!因为这些是我花了很久的时间研究适合自己学习的方法,再画了大半年去研究的过程,太累了,不过很有趣。!!

大家可以从其中某个部分去理解一个流程,尝试去梳理?

#晒一晒我的offer##24届软开秋招面试经验大赏##我发现了面试通关密码##没有实习经历,还有机会进大厂吗#
全部评论
太强了佬
2 回复 分享
发布于 01-09 18:39 湖南
请问能讲讲怎么找项目吗
1 回复 分享
发布于 01-09 22:35 广东
求八股
点赞 回复 分享
发布于 01-09 20:51 北京
题目何为背和不背?,我分享的是自己平时学习方式和习惯。主要核心是串联起来,我也了解大家可能要赶春招,然后就需要死记硬背八股,所以我感觉,可以的也是是这种串联知识点的办法?
点赞 回复 分享
发布于 01-09 23:52 安徽
tql,最近刚刚接触ob佬就发文啦
点赞 回复 分享
发布于 02-17 09:54 内蒙古

相关推荐

2025秋招,时长60分钟,感觉字节拜拜了,被老东家挂麻了1. 自我介绍2-14. 之前在字节和广告业务合作的项目拷打15. 平时开发用什么语言?16. C++里面哪些操作可能导致vector迭代器失效?17. C++的vector是如何扩容的18. 搜索系统比较大的特点是流量不可预期,假设流量爆发,如何设计架构能使所有请求都回复非空结果    - 热key离线计算:监控热点key,增长率监控和搜索量监控        - 如何设计数据结构判断它是否是热点key?        - 什么数据结构去记录上次和本次间隔时间的请求量        - 接入层记录流量总数:一致性算法,单机流量判断,集群整体的监控报警        - 如果多个key是相似但不同,恰好都没有触发阈值,怎么设计?    - 分布式流量分配:集群如何建设?    - 兜底降级    - 索引升级    - 多级缓存    - 服务器弹性扩展这块挖的很细,细节设计聊了15分钟19. redis单机单线程能抗住多少qps?20. 手撕:将字符串转换为ascii码的十六进制表示,比如abc结果为0x616263反问感觉答得还行但是挂挂挂#字节##面经##后端##秋招#引流:#美团##快手##阿里##腾讯##小红书##京东##华为##百度##拼多多##滴滴##华为#
字节跳动二面376人在聊 查看9道真题和解析
点赞 评论 收藏
分享
45 175 评论
分享
牛客网
牛客企业服务