秋招总结-学习资料(超级干,配开水)

秋招总结-学习资料(超级干,小心噎着)

0 序

楼主本硕双非,本科非科班,在秋招的时候也是吃尽了本科非科班出生的苦头。同门顺手拈来的计算机知识,对我来说都有点陌生的,以下对秋招做个总结,分享下找工作的全过程,并且回馈各位牛油,总结了自己遇到过的全部知识点。牛客的面经对我的帮助很大,也希望能帮助到大家。

1 经验

楼主的目标岗位是Java后端开发,准备比较晚,今年年初的时候还在峡谷游荡,直到三月份同门说该开始找工作了。其实一开始是一点紧迫感都没有的,直到看了牛客的面经,这面经上写的都是些啥?怎么都没见过?而且期间经历了阿里实习一面,惜(惨)败。于是开始了地狱修行模式,所以,如果看到这篇文章的牛油,能多早开始就多早开始。(ps:隔壁教研室一个女生,12月份就开始投实习,准备得也早,这时候的实习很好找,她也很顺利的拿到了字节的算法实习,在我们秋招的时候,人家已经转正了,所以,一定要早!)

在五月份陷入焦虑,曾打算放弃实习,当时想着,如果不去一定规模的公司,去实习也没有意义。但是转念一想,找实习和我自身的学习又不冲突,还能push自己。多么焦虑和绝望,都不要放弃希望与学习。机会只会留给有准备的人。

六月份,这时候有个很重要的事情,vivo提前批开始了。有幸拿到了offer,虽然给的不多,但是,终于能安心睡着了。后面还有一些实习的面试,也开始渐入佳境。通过了携程和华为的实习面试,但是华为一直等不到oc,就选择了去携程实习。

实习很重要,在实习的时候,能学到很多东西,特别是有经验丰富的同事可以学习,而且最重要的是,简历终于能加东西了。在实习的过程中,要忙公司的事情,忙导师的项目,要写论文,要学习,还要面试。这是最难熬的一段日子了。但是无论如何,都要保持学习,保持学习,保持学习。如果投递官网实习没消息,可以从***或者Boss直聘投递,有一大堆hr在这些第三方平台蹲点。

后面秋招了,辞职了,开始海投岗位。切记,一定要多投,相信大部分牛油和我一样都是三无起步。所以,对我们来说,过简历关,比炼丹还要玄学,投的多了才有机会。秋招中也收获了一些offer,但是更多的是为了攒面经,拿到offer的时候也马上就都拒掉了,不占坑。最后也终于拿到了满意的offer,上海字节的后端。

最后,一个很重要的点 选择1努力7运气2 ,方向的选择虽然占比少,但却是最重要的,一个同门看到了算法岗的求职难度,转了Java开发,但是走的很艰难,一个offer也没有。后面也是机缘巧合转回了算法岗,真的是如鱼得水,他适合算法。因此,一定要找到最适合自己的方向。运气这个点,相信经历过面试官关爱(毒打)的各位也都了解。

接下来是楼主的一些学习总结。

2 算法

算法我从今年2月末开始刷。刷题有个技巧,分类刷,dp,二分,树等分类别集中学习。我们是求职选手,不是ACM选手,个人感觉这是性价比最高的方式。可以强化学习效果。另外,刷题可以不用IDE刷,因为面试的时候牛客的界面是没有提醒的,所以常用的一些包需要了解。而且,如果连常用的包都没有掌握......

另外,刷题一定不要不会就看题解,一定要掌握核心,有一个小伙伴,一直都是看题解刷题,效果真的很差。而且如果做完题目了,建议可以跟着点赞多的题解过一遍思路,我每次看大佬题解都觉得自己的代码写的真丑。也有一些牛油跟着B站的视频学的算法题,楼主没有试过,各位牛油可以补充。

刷题的网站就是leetcode和牛客,都刷一刷吧,各有好处。按照分类刷的差不多之后,再把前两百题都做了,都是一些比较经典的题目。整个流程,全部刷下来大概400题左右,已经能应付绝大部分的笔试和面试了。

3 基础知识

1 Java基础

Java基础最开始是跟着JavaGuide看的,知识点比较全面,但是解析不够深入,建议是跟着知识点再去搜一些大神博客看看。看完一个知识点每天都要整理一遍,楼主是自己回忆一天学到的内容,画个思维导图(如下),这样比较牢固。其中JVM部分建议看《深入理解JVM》,其他的部分就看JDK源码就好了。并发和容器一定要看源码,看源码真的不一样,而且常见的并发工具的使用也要掌握,包括Seamphore,Countdownlatch,CyclelicBarrier,wait/notify等等,快手面试官就让我实现一个抢票流程,当时使用Cyclelicbarrier实现的。


2 计算机网络

本科上的计算机网络是英文版,光学英文了,计网一点没学。非科班出身的牛油们就找一本计算机网络看看吧,或者就是看王道的教材,如果实在没时间,就看JavaGuide,把里面的知识点吃透,挖深。如果是看博客的话,最好多找几个博客看看,很多博客写的都很片面,(被字节面试官教育过),常考的知识点如下。


3 操作系统

个人认为操作系统是最难的,知识点繁杂。但是常考的就那些,不过这些知识点深入进去都蛮复杂的,需要花很多时间整理,尤其是地址空间这块。总结的题目如下。这边总结的比较少,因为楼主遇见的也不多,各位可以再在牛客上搜一点。


4 Redis

Redis是目前最火的缓存中间件了。而且面试常考,一方面是很重要,另一方面是知识点的确很适合做考点。楼主一般都是找大神博客看的,但是其实最好还是看书,Redis设计这本书。常见知识点如图。


5 MySQL

数据库这块非常重要,没有哪个公司部门不做CRUD的,很容易引出底层知识点。SQL需要刷点题目,牛客上有,leetcode也有。学习Mysql的最佳方式是去公司实习......知识点如图。


6 消息队列

消息队列也是高并发必选,最常见的就是Kafka,kafka的设计很有意思,而且难度也不大,但是我还没看过源码,因为之前没用到它,后面补的知识点。知识点如图。


7 分布式

分布式这块是难点,涉及到很多设计,场景题很常见。这块整理的内容比较少,如图。


8 Spring

Spring这块也是难点,源码特别难,楼主的掌握也不太好,遇见过的知识点如图。这边需要配合Maven的知识点看看,楼主没做总结,这块也很少见。


9 智力题

智力题楼主是针对各大厂做的,看了其他牛油总结的,放上链接,大家可以看看,也挺有意思的,的确很锻炼逻辑。
全部的知识点大概是这样,大部分都是自己做的笔记,稍微杂乱了点,最后祝大家都能拿到满意的offer,加油!有需要各位可以留言。另外,附上字节的面经。总结中如果有问题,各位牛油可以留言讨论。
全部评论
同门牛逼!!!
2 回复 分享
发布于 2020-11-01 19:09
是如何2月份到6月份能学这么多东西刷这么多题……
1 回复 分享
发布于 2020-11-02 15:28
字节的面试很喜欢问操作系统相关的内容吗
点赞 回复 分享
发布于 2020-12-07 00:39
边实习边刷题边背面经,我愿称之为找工作的king🤣🤣🤣
点赞 回复 分享
发布于 2020-11-05 19:04
非常感谢同学分享的优质内容,所以为了感谢同学对牛客社区的贡献与支持,😉 特别赠送同学100元京东卡一张~ 只要把面经链接放到面经知识点汇总专场下面,就可以领奖品了哟! 技术专场:https://www.nowcoder.com/discuss/447528
点赞 回复 分享
发布于 2020-11-02 16:21
楼主,你好,JavaGuide是一个微信公众号吗?
点赞 回复 分享
发布于 2020-11-02 15:45
楼主spring和kafka知识点看的是哪里的呢
点赞 回复 分享
发布于 2020-11-02 15:39
m
点赞 回复 分享
发布于 2020-11-02 12:13
点赞 回复 分享
发布于 2020-11-02 12:10
🐂mark
点赞 回复 分享
发布于 2020-11-02 11:53
m
点赞 回复 分享
发布于 2020-11-02 11:06
m
点赞 回复 分享
发布于 2020-11-01 23:39
点赞 回复 分享
发布于 2020-11-01 22:38
mark
点赞 回复 分享
发布于 2020-11-01 22:08
本科能学过计网的,也可以算是半个科班了吧
点赞 回复 分享
发布于 2020-11-01 21:49
校友牛逼
点赞 回复 分享
发布于 2020-11-01 18:53

相关推荐

让ai总结了一下问题和回答,心累了,面试官一直问优化相关的问题,多少也回答了一些出来,最后反问的时候,问有什么能加强的,说是觉得项目没什么亮点,一、代码问题的主动发现与预防主动发现方式静态代码分析:使用 ESLint、TSLint 等工具在编码阶段检测语法错误、代码规范问题、潜在逻辑漏洞(如未处理的空值、死循环)。自动化测试:通过单元测试(Jest)、集成测试(Cypress)覆盖核心逻辑,结合 CI/CD 流程在提交 / 部署前触发测试,提前暴露问题。代码审查:制定 Code Review 规范,重点检查边界条件、性能风险、安全性(如 XSS、CSRF)。监控告警:线上通过 Sentry 等工具捕获运行时错误(如 TypeError、Promise 未捕获异常),结合日志分析高频异常点。预防措施制定开发规范:明确命名规则、代码结构、错误处理方式(如统一使用 try/catch 或全局异常捕获)。技术选型管控:避免引入低维护性依赖,优先选择成熟库并控制版本。定期重构:针对耦合度高、可维护性差的代码进行重构,降低后续迭代风险。二、To C 项目的监控设计To C 项目需重点关注用户体验与稳定性,监控设计可从以下层面展开:前端性能监控核心指标:首屏加载时间(FCP)、交互响应时间(TTI)、白屏时间,通过 Performance API 或第三方工具(如 Lighthouse、阿里云 ARMS)采集。资源加载:监控 JS/CSS 加载耗时、图片加载失败率,设置阈值告警(如某资源加载超时 >3s)。用户行为与异常监控错误监控:捕获 JS 运行时错误、接口错误(4xx/5xx)、资源加载失败,关联用户 ID、设备信息便于定位。行为轨迹:记录用户点击、滑动等操作,分析卡顿、崩溃场景的触发路径(如某按钮点击后高频报错)。业务指标监控核心流程转化:如注册、支付步骤的成功率,异常中断时触发告警。设备兼容性:统计不同浏览器 / 机型的报错率,优先修复高占比问题。实现方式埋点系统:通过 SDK 主动上报监控数据,后端存储后用 Grafana 等工具可视化。实时告警:配置短信 / 钉钉通知,针对严重错误(如大面积白屏、支付失败)即时响应。三、虚拟列表优化实现虚拟列表核心是只渲染可视区域内的 DOM 元素,减少渲染压力,实现思路:核心原理计算可视区域高度、单个 item 高度,确定可见项数量(如可视区高度 500px,item 高 50px → 可见 10 项)。监听滚动事件,动态计算滚动偏移量,确定当前需渲染的 item 起始索引。通过容器内的 “占位元素” 撑起列表总高度,避免滚动条异常,可视区项通过绝对定位展示。关键优化缓存已渲染项:避免滚动时频繁销毁 / 创建 DOM,仅更新位置和内容。预渲染缓冲区:在可视区上下额外渲染 1-2 项,减少快速滚动时的空白闪烁。动态高度支持:若 item 高度不固定,可通过预估高度 + 滚动时修正位置解决。库选型:优先使用成熟库(如 react-virtualized、vue-virtual-scroller),减少自研成本。四、列表滑动卡顿的排查与优化排查方向性能分析:用 Chrome DevTools 的 Performance 面板录制滑动过程,查看是否有长任务(>50ms)、频繁重排(Layout)/ 重绘(Paint)。DOM 数量:检查列表是否渲染了过多 DOM(如未做虚拟列表),导致渲染线程阻塞。事件处理:滑动时是否绑定了高频事件(如 scroll、touchmove)且未做节流 / 防抖,导致 JS 线程繁忙。样式问题:是否使用复杂样式(如阴影、渐变)或强制同步布局(如频繁读取 offsetHeight 后修改样式)。优化措施实现虚拟列表:减少 DOM 数量(见上文)。优化事件:对 scroll/touchmove 事件节流(如 100ms 触发一次),避免高频执行。减少重排 / 重绘:将固定样式抽离为 CSS 类,避免 inline 样式;使用 will-change: transform 让浏览器单独分层渲染。数据处理:若滑动时需加载数据,提前预加载并缓存,避免同步阻塞。五、白屏的检测与解决检测方式前端埋点:在页面关键节点(如 DOMContentLoaded、首屏元素渲染完成)设置时间戳,若超过阈值(如 5s 未渲染)则上报白屏事件。图片监控:在页面顶部放一个 1x1 像素的 “探针图片”,若加载成功则证明页面正常,否则判定为白屏。错误关联:结合 JS 错误日志(如关键脚本加载失败、语法错误)定位白屏原因。解决思路加载问题:优化资源加载(如 CDN 加速、代码分割、懒加载),处理脚本加载失败(如重试机制、备用 CDN)。渲染阻塞:避免 JS 阻塞 HTML 解析(如用 defer/async),减少首屏不必要的 CSS/JS。数据依赖:若白屏因接口延迟,增加骨架屏、加载动画,避免用户感知空白;接口失败时显示错误提示并提供重试。兼容性:修复特定浏览器的渲染 bug(如 CSS 前缀缺失、ES6+ 语法未转译)。六、ECharts 性能问题及优化常见性能问题大数据量渲染卡顿(如万级以上数据点)。频繁更新(如实时数据)导致内存泄漏或 CPU 占用过高。图表容器大小频繁变化时重绘异常。折线图(多日期筛选)的优化与后端方案前端优化:数据采样:根据日期范围动态调整精度(如日级展示 24 点,周级展示 24*7 点,月级按天采样而非小时,避免数据量过大)。节流重绘:筛选日期时,通过防抖(如 300ms 延迟)避免频繁调用 setOption。销毁旧实例:切换筛选条件前,调用 dispose () 销毁旧图表,释放内存。懒加载:非首屏图表延迟初始化,避免阻塞首屏渲染。与后端沟通方案:动态返回精度:后端根据筛选的时间范围(天 / 周 / 月)返回对应粒度的数据(如周级返回按小时聚合的平均值,而非每小时原始数据)。分页 / 分段加载:若需保留细粒度,后端支持按时间段分段返回,前端滚动时再加载后续数据。数据压缩:后端用二进制或精简格式(如仅返回 [x,y] 数组而非完整对象)减少传输量。ECharts 适配方案响应式容器:监听窗口 resize 事件,调用 resize () 方法调整图表大小,结合 CSS 媒体查询适配不同屏幕。移动端优化:简化图表样式(如隐藏次要网格线、缩小字体),触摸交互适配(如支持双击放大、手势缩放)。七、图片优化方向资源优化格式选择:优先使用 WebP/AVIF(比 JPEG 小 30%+),降级兼容旧浏览器;简单图形用 SVG 替代位图。压缩处理:通过工具(如 TinyPNG)或后端服务(如七牛云)压缩图片,平衡质量与体积。合理尺寸:根据展示容器大小提供多分辨率图片(如 srcset 属性),避免大图小用。加载优化懒加载:使用 IntersectionObserver 监听图片进入视口后再加载,减少首屏请求。预加载:对首屏或即将展示的图片(如轮播图下一张)用 link [rel="preload"] 预加载。缓存策略:设置合理的 Cache-Control 头,复用缓存减少重复请求。体验优化占位符:加载前显示低分辨率缩略图或纯色占位,减少布局偏移(CLS)。错误处理:图片加载失败时显示默认图,避免破图影响体验。八、图片加载时间的检测前端检测监听事件:通过 img.onload 记录加载完成时间,减去 img.src 赋值时间,得到加载耗时。Performance API:使用 performance.getEntriesByType ('resource') 获取图片资源的加载详情(如 startTime、responseEnd),计算耗时 = responseEnd - startTime。埋点上报:将检测到的耗时结合图片 URL、用户设备信息上报,分析慢加载图片。工具辅助浏览器 DevTools:Network 面板筛选 img 类型资源,查看各阶段耗时(如 DNS、TCP、下载)。第三方监控:通过 Lighthouse 或监控平台(如 Datadog)批量分析页面图片加载性能。
查看8道真题和解析
点赞 评论 收藏
分享
评论
71
398
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务