我是如何准备秋招互联网大厂后端学习的?

写在前面

上周给师弟师妹们分享了我的秋招经验,总结了秋招中的一些问题,于是现在也把这些东西给发在博客上分享出来,毕竟之前也参考了很多其他人的经验,是时候回馈了。
本人末流双9硕,电子信息工程专业,java后端开发,非科班纯靠自学,秋招时刷题300+,基本无竞赛经历,无国奖,纯靠面评。秋招阶段拿了阿里、百度、字节的一些sp和ssp,还有一些其他的offer,就不赘述。整个秋招因为准备充分,基本非常顺利,结束的也非常早。

下面的内容是我从 为分享会做的ppt上复制过来的,为了省事,就不做过多的排版了。本文主观性较强,仅代表个人意见,不涉及对错,亦不参与对错讨论。仅供参考
本人博客的其他文章也可以参考,都是我在学习过程中记录的点滴

职业选择

  • 这是最重要的一件事,比直接准备知识点刷题都重要的多
  • 对于应届生来说,其实选择不只互联网这一条路
    在这里插入图片描述- 以上只是列举了一部分
  • 每个人的兴趣,生活状态,目标业务方向,自身的资源,家里的经济条件,情感生活,工作地点,部门工作氛围都不一样,所以要结合很多因素来具体选择适合自己的,而不是盲从
====几个tips,在准备秋招之前好好想想====
选择有很多,不要盲目从众
没有完美的工作
适合自己的才是最好的
多花时间想想自己想要什么是最重要的
学会放弃
  • 而关于互联网这一块,一般来说岗位分为后端、前端、运维、测试等,我这里说的是后端,后端整体的上限,待遇,难度都会更大,所以也是建议小伙伴们来学后端

语言选择

  • 编译性的语言一般是两种,java or c++,对于后端开发来说,得选一种来学
  • 那么学哪一个呢?
java:入门门槛相对低一点点,技术点相对多,体系相对完整。岗位很多,竞争也很大。偏向于业务

c++:入门门槛高一点点。岗位相对少一些,竞争也相对小一些。更偏重底层一些
  • 大多数岗位,语言不重要,会一个即可
  • 少数职位会有语言限制
    基架、中间件、芯片、游戏偏爱c++
  • 如何选择?:根据 兴趣、平时使用语言、目标岗位 来选择

面试问什么

(一般而言)

  • 面试的轮次:2-4技术面 + hr面
  • 面试的时间:30min - 1h30min
  • 面试的组成:
    知识点(八股):针对不同语言问不同的八股;岗位与语言不同时,会着重问非语言部分
    项目:介绍项目,项目细节,项目难点;项目如果出现xx问题你怎么处理
    教研室项目也有可能问
    算法题:手撕,一般中等为主,简单为辅
    (sql、智力题、场景题)(少)

通用八股

以下是我认为无论java还是C++至少得会的一些基本的知识点

操作系统:
	虚拟内存, 进程, 通信。。。
数据结构 :
	队,栈。。。红黑树,跳表,b树。。。
计通网:
	传输层(多),网络层(少),应用层(少)。。。
http:
	状态码, http的session cookie, .... http每个版本的区别。。。
mysql:
	锁, 索引, 引擎, 日志, 事务,同步。。。
	sql
redis: 
	用法, 数据结构, 持久化, 原理, 应用场景。。。
linux:
	基本的命令。。。
设计模式:
	掌握几个即可。。。

java八股

以下是我认为java至少需要学习的知识点

语言部分:
	java基础 (语言本身):String, StringBUilder, 字符串常量池, 反射, 泛型, 异常。。。
	java容器:hashmap, list, ...... 讲清楚原理。。。
	jvm :内存区域, gc, 垃圾收集器, 收集算法 。。。
	java并发:线程池, synchronized关键字, volatile关键字, juc的自定义同步组件, aqs。。。
	java io:。。。
框架部分:
	spring:作用,注解,ioc,aop,bean的生命周期等等。。。会的多加分。。。
	mybatis:缓存,sql注入。。。
	springMVC:注解。问的少。。。
	springboot:作用,如何使用,自动装配原理。。。
	springCloud:一般项目涉及才会问,nacos,grpc,dubbo,feign,熔断。。。
中间件:
	nginx:集群的负载均衡,解决跨域。。。
	MQ:异步,解耦,kafaka,RabbitMQ。。。

maven:
分布式相关:	
网络编程

如何准备八股

准备八股有这样的一些方式可以参考

  • 知识点总结网站:
    javaGuide、cs-notes、advanced-java
  • 培训班视频:(学习网站–b站)
    黑马(小知识点)
    尚硅谷(项目类)
  • 文章类:
    大厂技术网站>微信公众号>=知乎>>csdn类博客>>百度。。
    美团,腾讯。。。 路人甲,敖丙
  • 看书:
    很多都可以看,优先看mysql,redis,这些问的深
  • 面经:
    牛客
  • 建议食用优先级
    时间少:视频上手 + 文章深入(可省略) + 知识点总结复习 + 面经模拟加深印象(冲刺阶段)
    时间多:可以考虑在上面的基础上看看书(有选择的看)

关于算法题

  • 我个人刷题数量不多,在秋招时lc刷题量是300+,还刷了些牛客的题
  • 我整体算法题准备的不是很系统,虽然整个秋招面试手撕基本都过了,没有什么算法题的压力,但是还是建议大家系统准备算法题
  • 建议可以看看acwing的算法视频课
  • 剑指offer必须要刷的,我至少刷了有3遍+,考原题的可能性很大,必看!!!
  • leetcode的top100也是有必要刷个2遍+的
  • 然后可以看看https://codetop.cc ,这个网站有专门针对企业的题库,包括leetcode也是有企业题库的,那个也不错,不过好像要会员
  • 个人认为,题刷的数量越多越好,但是,在你时间不够的时候,尽量保证刷过的题都会,把刷过的题重复刷几遍

智力题

  • 整个秋招就tp-link和美团有问智力题,这个问到的频率因人而异
  • 可以准备着玩,智力题都挺好玩的

大数据题

  • 这个我没被问到过,但是不少人被问到过
  • 我觉得有准备的必要
  • 基本题型就 内存有限,大数据,如何处理,如何找出某一个,如何看交集,如何排序
  • https://doocs.github.io/advanced-java/#/./docs/big-data/find-common-urls
  • 基本解法就是 hash,hash,hash

关于项目如何准备

  • 项目是什么:
    实践自己掌握的技术点
    对实际业务场景的理解
    面试中聊天的桥梁
  • 电商秒杀会被嫌弃?如此不堪?
    • 不然
    • 大部分的java项目,都是具体的业务实现,博客,电商,一些管理平台等等,实际上他们的技术点都差不多,只是实现的业务不一样而已
    • 对于面试官来说,项目是关注技术点,为什么用技术点,怎么用技术点,怎么解决问题等等,这些才是重点,所以不要太把中心放在花里胡哨的业务上了
    • 被嫌弃电商秒杀,实际不是嫌弃项目,可能是嫌弃你这个人太菜了
    • 我整个秋招,30+面试,没有被嫌弃过项目,还被夸过
    • 总结:项目不会被嫌弃,只要你逻辑足够清晰,技术点了解的好,用的好,技术点多,技术点高级,那么做什么具体的业务没问题的
  • 项目是积木
    • 将自己学的知识点放入项目,提升b格
    • 项目可以不断的升级
    • 同样的问题有不同的解决方式
    • 所以同样一个项目,到不同人手上,会做成不同的样子,做成不一样的高度
  • 项目聊些什么
    项目的业务场景
    项目的结构、功能、技术栈
    项目的难点以及如何解决
    面试官发问:如果你的项目中出现xx情况,你将如何解决(多数是某个中间件崩溃)
  • 在做项目时就要考虑上面可能要聊的东西

准备的时间点

  • 需要注意的时间:
    实习面试:过年后-3月底(大量hc结束)-6月 (提前面试可以帮助自我调整)
    秋招:6月底开始提前批,7/8月大量爆发,9月之后基本正式批,hc减少加快
  • 我的时间点:
    20.9月之前:看完java基础,jvm,操作系统,数据结构,计网 (不过基本都忘了,可忽略)
    20.9月-:开始刷题,一直持续
    20.11月宣讲会后:花了一个月时间选项目
    开始正式准备
    20.12-21.2:项目,java容器,io,nginx,redis,框架(项目中用到,便一起学了)
    21.1-21.3:java并发
    21.3:mysql,系统背八股,模拟面经,刷剑指offer,准备实习面试
    实习面试,此时上面的八股学齐,刷题300
    21.4-21.5:升级项目,重复刷题
    21.5-21.6:看spring源码,看分布式相关:
    21.6-21.7:模拟面经,狂背八股
    开始秋招 刷题300+
    21.7-21.8:面试集中在7月中旬、下旬,到8月上旬,中旬,30场面试
    21.9-21.11:几乎无面试,天天休息
    21.10-21.11:开奖,谈薪,纠结,选择
  • 以上时间只是一个参考,每个人学习效率不同,花费时间不同
  • 因为自己是单独的摸索,所以浪费了非常多的时间,走了非常多的弯路,很多东西准备了都没用上,所以实际真实有效学习时间要短的多

实习重要吗

  • 实习不重要,实习面试重要!(因为我们不放实习,所以只能这么安慰自己了)
  • 实习的意义:
    提前感受工作,看自己是否适合这行
    提前熟悉业务,看是否感兴趣
    实习并不会太提升自己的竞争力,反而可能会耽误自己的秋招时间(一般而言)
  • 实习面试很重要
    修改项目
    转变学习策略
    消除紧张
    获得直通车机会
  • 但,不要all in
    实习面的部门不一定是自己想去的
    面评也不一定是最好的
    所以,练手为主

一些小tips

选择大于努力
要学会包装
源码可以看,但不要太钻牛角尖
不能说给面试官听的技术就是白学 (功利的考虑,其实多学总是有好处的)
多投,早投,多面 (hc会越来越少,笔试越来越多,面试难度越来越大)
以面代学是高效的学习方式 (实战是最好的学习方式)
勤做笔记,便于复习
博客、github是加分项
思考问题要全面
充分利用好师兄师姐资源
团战大于单挑 (抱团学习,多交流)
实时根据面试反馈以及自身情况调整自己的学习计划
多看面经,多思考
背八股时可以假想面试,模拟回答
做项目时,多思考可能出现的问题以及解决方案
  • 16
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值