秋招回顾

如今已经2025年12月份,对我来讲26届秋招已经结束了,我的面试历程从今年3月持续到了11月。。

先说一下背景和技术栈吧,211硕,后端开发,编程语言C++Golang,两段非互联网大厂实习,秋招总共10+offer,中小厂居多(大多数大厂没有面试机会),最后签了某BAT大厂。

我是一个基础比较薄弱的人,本科阶段什么都没学会,因此所有的内容都是从研一开始从头学的。这里做一个总结,希望能供和我一样基础薄弱甚至0基础的人参考。虽然我在过去学习的过程中方法、路径等有诸多不足,但仍旧按照当初的思路进行总结。

准备秋招面试主要分为四个部分:基础学习、八股文、项目、面试准备

基础学习

编程语言

我主要学习了C++和Golang两门编程语言,编程语言的学习主要是两个部分:多看多写。比如我不了解C++或者Golang这门语言,而我又没有很多其他语言的基础(因为很多人学一门新的语言之前已经掌握了不少其他的语言和编程思想),我的方法是先找一本电子教程,比如《xxx入门/圣经》,迅速过一下其中的基本语法,如何过呢,就是教程中的示例,能够自己独立在IDE中无bug地写出来就差不多了,不要太过于执着记住甚至背诵其中的语法,编程是一门实践而非理论的学科,多写而不是多背才能记住。

然后就是多看多写了,这个时候就非常需要耐心了,第一步总是痛苦的嘛。首先是多看,我的方法是从GitHub中找到要学的这门语言的一些小的项目(指代码行数与设计的复杂度),比如我在学Golang的时候完整地看了groupcache,从这些地方可以学到如何正确、优雅地使用API与有逻辑地表达等。第二步是多写,我的方法是自己尝试去写一些数据结构的内容,比如排序、树、图等一些基本算法,如果遇到不会的就使用AI辅助,即使写完了也使用AI来优化一下,这样在写代码的时候遇到问题解决问题, 基本代码能力自然就会提升。

算法题

我学算法的方法也是比较朴素的,就是做LeetCodeCodeforces。对于算法题我也是从0开始。开始做的时候连两数之和都不会,所以先从简单题开始做。最暴力地也往往就是最有效的。我使用的是题海战术,我从开始做题开始,每天做3-5道题,开始的时候每天就是3-5道简单题,然后掌握了一些基础之后每天会做1-2道中等题,如果不会就看答案学会它,然后是每天都做中等题,最后是每天会做1-2道困难题。这里有一点需要注意的是:对于不会的题,看完题解学会之后,一定要自己独立写一遍,过几天再独立写一遍。 不瞒大家说,我用两年多的时间在LeetCode已经做了这么多的题了。

alt

八股文

这一部分的学习就比较曲折了。开始的时候由于没有经验,研一的时候找了各类知识星球总结的八股文大全,然后就闷着头开始看开始背,看了一遍又一遍,背了一遍又一遍,总是容易忘记,遇到一些变换的问题就完全不会了。所以,后来又开始找一些文章、博客开始学习,此时开始零散地掌握数据库、操作系统和计算机网络的核心概念和知识点了。

但对于现在来讲,我认为如果想要在面试中做到出色,基础的八股文或者说这些概念是远远不够的。目前我对这部分的学习,主要借助AI进行深挖,高效率掌握核心内容。比如我们面试中遇到这样一个问题:TCP的拥塞控制是什么? 这个问题网络上的回答数不胜数,我就不在此赘述。然而,我自己的学习经历与面试经历会在原来的回答上加上这样一些内容:

  • 慢启动、拥塞避免、快重传、快恢复这几个阶段的基础概念的算法叫Reno。
  • Linux中默认实现的Cubic和BBR,然后解释Cubic是什么和BBR是什么?
  • 额外的一些点,比如ECN标志的作用?dctcp中是如何使用的?

当然,在这些概念的学习中,最好加上代码的学习,比如看一下Cubic(可以先看Bic)和BBR的代码是如何实现的,以及自己尝试写一个类似的demo(这里就可用新学的语言来写,也就有了实践的地方)。当深入到代码实现层面的时候,我们就可以进一步了解其中的一些细节,比如BBR中RTT是如何计算的?

项目

项目这里应该会是很多人头疼的地方。这里推荐一下 零声教育 ,尤其是走C/C++方向的同学。他们这里有一个大纲 ,非常适合新手小白从头开始学习准备。如果经济条件允许且自己确实无法找到正确的路线,可以购买他们的课程服务,会有专门的指导老师进行一对一的指导。

对于项目的准备,我觉得有两点需要特别注意:

  1. 不管是做什么项目,是用什么语言,是什么方向的应用,不管是自己写的,还是开源的,还是进行二次开发,在这个过程中的每一步都要考虑如何为项目的上线做准备,比如某一个技术框架的引入能否解决上线之后的真实问题?这一部分技术或者算法在实际场景中是如何抉择的?
  2. 项目的完成过程中,显然我们很难每一部分代码都自己完成,尤其涉及到基础组件的引入、中间件的使用等,但在这个过程中要时刻去思考、总结这个过程中自己遇到的问题以及如何解决的。因为在面试过程中,对编程细节、技术选型的思考会非常加分。

项目完成之后,我觉得最好是将项目中的技术内容、核心要点、架构等内容写成文档,这样可以留给以后自己回看(根据我实习的经历,很多大公司也会如此做,当然文档泛滥就不好了)。

这里额外想到实习的问题。我自己的对于学生阶段的实习的思考是这样的。我觉得实习主要有两个目的:

  1. 在简历上写一个背景,所以公司越大越好,比如BAT的实习就很有含金量,至于实习做什么,对于我们这种弱鸡来讲没有什么区别,除非遇到个别非常看重垂直经历的面试官(不过我现在在想未来会不会越来越看重垂直经历来筛选人)。
  2. 在面试的时候让面试官找一个角度开始系统地提问。从这个角度来讲,实习和项目的目的本质都是一样的。当然,我比较垃圾,实习的内容都很水很偏,所以面试官基本都是问项目的。

面试准备

为什么会有这一点呢?因为从技术的角度来讲,我自认为非常垃圾(我基础比较差,天赋也不高)。但是我自认为表达能力相对不错,我一个人即使对面不搭话,我也能够一人滔滔不绝地讲一个多小时。所以在面试的时候,不管是技术面还是HR面,从聊天的角度来讲,我基本都能和面试官聊得不错,甚至把面试官逗笑,极个别面试官和我甚至聊到了一些非技术性的话题(比如社会发展、人生选择成长等话题)。我觉得这方面让我相对于其他人会加一些分数。

引用鲁迅在《且介亭杂文》中的一句话“‘急不择言’的病源,并不在没有想的工夫,而在有工夫的时候,向来没有想”。表达能力的提高在于平时不断地练习,自己在脑海中思考该如何表达自己的思想,在身边有人的时候向身边的人表达自己的内容。说到这里,想到一篇学英语的文章,感觉是异曲同工的。学好英文的十个步骤

最后,非常荣幸如果有人能看到这篇文章。我从三年前的小白一步一步走到今天,身边的朋友、家人、老师都功不可没,非常感谢他们。大家有求职上的需求可以考虑一下零声教育

也非常欢迎看到这篇文章的人与我交流,共同学习进步:

**************

#秋招#
全部评论
力扣题量也太牛了
点赞 回复 分享
发布于 今天 00:52 广东

相关推荐

饿魔:看到在线简历了吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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