+ - [笔试](#_208)
- [面试](#_216)
+ [笔试和面试中需要注意哪些?](#_221)
* [下学期参加秋招](#_235)
* + [参加校招提前批招聘](#_239)
+ [参加正式秋招](#_247)
- [大四](#_257)
+ [总结](#_262)
一个高考失利人的2022届秋招复盘,目前收到腾讯 字节 百度 阿里 京东的offer
前言
- 高中时期由于谈恋爱和打篮球确实影响到了学习成绩最终来了一所双非本科院校, 但是我没有选择复读, 而是选择在大学期间通过努力学习来不断的提高自己.
- 写这篇博客的意义, 就在于我想给那些高考成绩不好但又想通过自己努力来改变的同学们一点我的经验和建议.
- 希望我们一起能打破一个观点, 双非本科也能进大厂!!!
本人情况和秋招结果
- 写这篇博客的时候我是大四, 现已经准备和一家 不错的公司给的不错的岗位和不错的薪资 签约三方了
- 目前会的技术栈就是核心还是Java为主(SE EE JVM 多线程), 及其生态比如Spring那一套都有学过, 数据库方面MySql和Redis, 中间件比较熟悉Kafka, 再就是实习工作中学习了Golong和一些Rpc的东西, 也学习和解决过一些高并发和分布式问题
- 科班基础知识,比如计算机网络原理, 操作系统, Linux, 设计模式, 算法也必须得会
- 这些对应的知识在我博客分栏里可以找到
战绩
CSDN
GitHub
(去公司了就基本不往自己GItHub上传代码了)
LeetCode
- 在大三上学期找实习的时候收到过百度 滴滴 腾讯 阿里云的offer
- 秋招目前收到百度 腾讯 阿里 字节跳动 京东 转转集团的offer
好接下来进入正题给大家分享我的过程
备注: 本人是本科, 所以我讲的是我的本科阶段的学习过程! 随心写的一篇文章,如有错别字多多包涵
大学时间线安排
大一
- 当时选择专业的时候只是因为自己爱玩游戏, 所以选择了计算机科学与技术, 对编程一无所知,纯小白
- 学习了高数,大物,C语言这些基础课程,还大了一年院队篮球,没什么太大的收获
大二
- 重点学习了Java为主(SE EE JVM 多线程), 及其生态比如Spring那一套都有学过, 数据库方面MySql和Redis
- 侧重点学习了科班基础知识,比如计算机网络原理, 操作系统, 数据结构, Linux, 设计模式, 算法
举一些面试例子
数据结构和算法如何考?
- 说说你常用的排序算法,复杂度是多少?
- 什么是稳定排序?什么是不稳定排序?
- 搜索树有什么特点?平衡树呢?
- AVL树有了解吗?红黑树的特点是什么?AVL与红黑树的区别是什么?
- 那我们写一道算法题把(大多LeetCode原题)
- 笔试也会考算法编程题目
- 等等一大堆…
如何学习这部分知识
-
笔试算法:笔试主要靠编程,以我今年秋招为例,我笔试下来的亲身经历就是,大的公司靠的比较难,比如图各种骚操作(一般就是给你起点,然后给你各种阻碍,让你找出口),逻辑分析,动态规划等等,小的公司比较简单,而且还能百度到原题。笔试没有固定的题型,考经验和自己算法能力
-
面试算法:
- 小公司:难度中等或较小,一般可能就是让你玩玩数组,摆弄摆弄字符串,然后考考《剑指Offer》上的原题就过去了
- 大公司/中等公司:难度较大,极有可能让你写动态规划/贪婪算法等等内容,而且还可能来一道你不知道怎么解的题目;当然,也可能考《剑指Offer》上的原题
-
我个人情况是什么样的?
- 刷《剑指Offer》,把上面的题目过一遍,重点在链表操作,树操作那一块,我最好的战绩就是一周做完一遍(博客有记录)
- 刷LeetCode,尽量每天至少一道
- 熟悉数据结构与算法的基础,比如说什么是搜索树、平衡树,都有哪些特点呢?各种排序算法及其复杂度分析。什么是动态规划及其思想是什么呢?还是深度优先遍历和宽度优先遍历 等等
网络原理如何考?
- 说说TCP三次握手,四次挥手
- TCP与UDP的区别是什么鸭?
- TCP是如何保证可靠性的呢?
- TCP的拥塞控制原理是啥啊?
- UDP如何保证可靠性传输呢?
- HTTP了解吗?与HTTPS的区别是什么呢?
- HTTPS如何保证安全传输鸭?
- 啥是TIME_WAIT状态啊?为啥要设计TIME_WAIT状态啊?
- 等等一大堆…
如何学习这部分知识
-
我个人的情况是什么样的呢?
- 先跟着老师学了一遍,后续为了更加稳定和扎实(防止面试官考太难)
- 把《TCP/IP》看了一遍(重点在TCP那一块),有点厚,把重点地方阅读了一下
- 然后从"OSI七层"模型下手,把每一层都熟悉一遍,重点放在网络层和应用层(HTTP协议)
数据库如何考?
- 说说MySQL的索引是如何实现的?
- MySQL的事务隔离级别有哪些,区别是什么?
- MVCC机制知道吗?
- 什么是聚簇索引?什么是非聚簇索引?
- 来,说说Redis的数据类型有哪些?
- 来,说说Redis这些数据类型的底层使用的哪种数据结构,有什么特点呢
- 介绍介绍Redis的持久化?
- 上面既然你说了两种持久化方式,那么区别是什么呢?
- 你知道Redis的内存淘汰机制是什么吗?
- 等等一大堆…
如何学习这部分知识
一开始跟着老师有学,但自己还是想深造一下
- MySQL:
- 基础的语法没怎么看,当然面试也不考语法,比如说create、delete,面试官一般不考这个(当然,有的面试官可能就会考,几率较小,我美团一面的时候就让我写了一个SQL,没写出来,然后就把我挂了)
- 把《MySQL技术内幕》看了,好书啊,看完之后再配合配合网上资料,感觉MySQL准备的就差不多了
事物、隔离级别、索引(重点)看看就好了 - 《InnoDB引擎》这本书你读完,基本上面试不可能考住你了
- Redis:
- 基础的语法,那些命令的就别记了,记不住的,面试官也记不住的(如果考了你没回答出来,你可以反问面试官,估计面试官也不知道,哈哈)
- 看了《Redis设计与实现》与《Redis开发与运维》,看完之后,我反问我自己,Redis还有我不知道的?
- 主要就看看Redis的数据结构,数据结构底层是如何实现的,再看看Redis持久化,内存淘汰机制,复制,哨兵,集群就差不多了
操作系统如何考?
- 听说你了解操作系统?来说说进程和线程的区别?
- 我看到你简历上有些你了解操作系统?来,说说协程你有了解吗?与进程和线程的区别是什么?
- 分页和分段的区别是什么?
- 什么是上下文切换?
- 什么是中断?
- 等等一大堆…
如何学习这部分知识
第一遍入门肯定还是跟着老师学的快,基本也够,但是以防被面试官考死,还是自己再深入看看靠谱
- 我是看了B站王道考研的讲解视频,个人感觉挺不错,收益良多
最重要的Java如何学?
特别注意,一定要有老师带着学,不然很容易走弯路,并且很容易不知道什么重要什么不重要!!!
我是跟着老师学了JavaSE和JavaEE, 基本上包含了Java基本语法, 集合, 多线程, 反射, JVM, JavaWbe, Spring等一系列东西, 这部分是重头戏,东西太多了!!!
当老师带你学完一遍了,你入门了,接下来就可以自己看书深入研究!!!
JAVA书籍推荐:《Java核心技术·卷 I 基础知识》、《Java核心技术·卷 II 高级特性》、《Java并发编程的艺术》、《Java并发编程实战》、《深入理解Java虚拟机》
大三
上学期找实习
- 上学期立刻开始找实习工作, 有一个好的实习经历对秋招太重要了!!!
- 有实习证明在校招中是很占优势的,不论是在简历筛选还是面试环节中!!!
实习的重要性
- 简历含金量增加:大厂实习经历是一个很好的加分项,在找实习的时候最大的拦路虎就是简历筛选不通过(双非),而在秋招中除了某些注重学历的公司,没有出现再次出现过这种情况。
- 面试难度降低:大部分时间都在聊实习经历,如果方向比较契合,甚至会大幅度放水
- 实习转正:大厂通常会预留将近50%的HC给实习转正的同学,同时提前拿到转正保底,面试更有底气
- 个人成长:从一开始的什么都不懂,到独立上线第一个需求,到独自承接一个业务线的所有需求。这段实习经历不光提高了我的技术和业务能力,也提高了我的抗压能力
- 个人能力的体现: 如果你有一个大厂实习经历, 就可以体现出你的能力是已经被认可过的, 大概率不会招来废物,那面试官和HR也会有这个观点, 自然对你的态度就不一样
如何准备简历
- 内容要突出你会的东西,你知道的知识
- 有实习经历一定要写上, 写在最前面
- 布局美观大气,最好找一个好看而且重复度低的模板
- 将你的项目也要介绍上去,要有关键点讲解
- 最好控制在2页内,不要写流水账内容
- 让同学帮你检查错别字和错误内容, 尤其邮箱和手机号!!!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
52)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!