其实互联网职业可以大致分两个阶段,在毕业后的3到5年内主要都是以学习、积累为主,从一开始啥都不懂的校园“新鲜人”向“职业人”转变。如果你是Java开发者,在这个阶段你会学习:
1、基础的Java知识,多线程、集合类、JVM
2、进阶知识,设计模式、系统设计和方法论
3、主流框架,Spring、Spring Boot、MyBatis……
4、微服务,Dubbo、ETCD、Spring Cloud……
5、数据库,Redis、ES、MySQL、分库分表
分享一下我的学习之路
2017从杭州师范大学(也是马云的母校)毕业后,我就留在了杭州,因为家庭原因,从大三开始已经没了考研的想法,只想快点工作,能稍微减轻父母身上的重担。计算机科班毕业,当时因为简历的原因在加上自己学的不是很好,投入大厂的简历全部石沉大海,没有丝毫音讯。最终来到了一家上市公司,浑浑噩噩的渡过的两年,除了CRUD啥都不懂,每月拿着9K+的薪水,日子过得紧张而又无趣。
今年年初,疫情覆盖全国,造成了大小型互联网公司全面缩水裁员,我们公司也不例外(公司不养闲人这个上班族都是明白的)毫无意外我被裁掉。本来感觉生活很无趣又惨遭下岗,这样的打击差点让我崩溃。(不过后来我知道,这是个提升自己的契机)
面临找工作的阶段,该怎么办?
等疫情不那么严重时,我从家来到了杭州,便开始了海投简历,最终邀请我面试的只有2个传统型公司,面试官说不需要你会高并发、微服务、只会curd就行,并给出5K的薪资。
转折点:我的逆袭阿里之路
说个笑话,Java开发2年半每个月才值5000,我想一想当时真的是欲哭无泪呀,我开始反思自己,为什么会混成现在这个样子?2年多的时间我干嘛去了?
明白我的知识缺失后,我开始先不打算找工作了,从0开始,先把2年多没有掌握的Java技术栈全部学一遍,从面向对象开始学起、【多线程、集合、锁、并发、JVM调优、垃圾回收器、MySQL/Redis、Spring源码框架、微服务等等...】全部学一遍。开始从网上整理资料、去Github去学开源项目、看学习视频、因为还有有些基础,学起来没有初学者那么费力。终于我通过修改了简历,海投之后,接到了三家大厂的面试邀请(阿里、网易、还有海康威视)还有一些创业公司的面试邀请...这里不一一列举了啊!
不知道朋友们对于大厂是怎么定义的?在我的眼中,像阿里、腾讯、百度这些大厂都是我比较喜欢的,在拿到三个offer后,我的选择当然也是阿里,不知道怎么说,就是对于别的公司,阿里似乎有一种吸引力直勾勾能我魂给勾走,当然薪资也占一小部分原因哈哈哈,这里对比一下(阿里25K15薪,网易25K14薪,海康威视26K14薪,你会选哪个?)、例外还有一部分是公司的原因,我感觉阿里的学习气氛特别好,真的有时候学习氛围很重要,人都有随波逐流的惰性,如果一个公司所有员工都不上进,我敢说这个公司肯定就这样了,我之前的公司就是这样。我不想再随波逐流的堕落下去,于是我选择了阿里,最终我拿到3个offer,进了阿里造轮子,这就是我的逆袭之路。
对于面试大厂的朋友,一些建议
阿里
阿里面试官一般都是P7/P8岗,对标到普通互联网公司相当于就是技术专家那种类型!他们对于没有经验的毕业生面试问的比较浅一点,大多数问题问的集合、锁、JVM调优,线程池、spring方面也会问源码、然后是分库分表、mysql、redis都会问点,
而1—3年工作经验的,70%看项目还是从实战项目来问,一般会问的比较深,想去阿里的朋友要做好准备,如秒杀系统项目一定准备好,20%问微服务、高并发。高扩展、高可用问题,这些你也应该准备好,10%问基础,像spring原理、Java内存区域是一定要知道的
网易
网易的面试官,对基础很看重,然后问的也是实战项目。基本上万变不离核心思想。
海康威视
海康威视的面试官跟网易的面试官差不多,也喜欢问基础。幸好我花了2个月的时间打好Java基础。
那么如果你前几年跟我一样都在Curd,没进行过系统的学习,想弥补这前 5 年的技术成长该怎么补救?
这里整理了一份我系统学习过Java开发手册,大家想要进行查漏补缺,系统学习,以及快速的学习和进阶,这本手册都适用!(→点击免费获取←)
image.png手册包含了Java、集合、多线程并发、反射、锁、Spring、SpringMVC、SpringBoot、JPA、Mybaits、微服务、Netty、RPC、网络、日志、消息队列、MySQL、Redis、设计模式、负载均衡、一次性算法、数据结构、Docker
image.png
image.png
image.png
1,Java集合(部分内容)
接口继承关系与实现
List
- ArrayList:数组
- Vector:数组实现、线程同步
- LinkList:链表
Set
- HashSet:hash表
- TreeSet:二叉树
- Linkhashset
Map
- Java实现
线程安全
可排序
记录插入排序
image2,Java多线程并发(部分内容)
线程实现/创造方式
4种线性池
- newCachedThreadPool
- newFixedThreadPool
- newScheduledThreadPool
- newSingleThreadExecutor
线程生命周期(状态)
- 新建状态
- 就绪状态
- 运行状态
- 阻塞状态
- 线程死亡
终止线程4种方式
- 正常运行结束
- 使用退出标志退出线程
- Interrupt方法结束线程
- stop方法终止线程(线程不安全)
3,Java锁(部分内容)
- 乐观说
- 悲观锁
- 自旋锁
- Synchronized同步锁
- ReentrantLock
- 可重入锁(递归锁)
- 公平锁与非公平锁
- ReadWriteLock读写锁
- 共享锁和独占锁
- 重量级锁/轻量级锁
- 锁优化
4,Spring(部分内容)
Spring特点
- 轻量级
- 控制反转
- 面向切面
- 容器
Spring常用模块
Spring主要包
Spring常用注解
Spring第三方结合
SpringIOC
- Spring容器高层视图
- IOC容器实现
- SpringBean作用域
- SpringBean生命周期
Spring 依赖注入四种方式
AOP 两种代理方式
image image image.png微服务(部分内容)
imageNetty/RPC(部分内容)
image网络(部分内容)
image日志(部分内容)
image消息中间接(部分内容)
由于篇幅原因,这份纯手写笔记已经被整理成了PDF文档,有需要我系统学习过的Java开发手册的朋友麻烦,(→点击免费获取←)”即可!
写到这里,其实已经差不多了,回报是会跟努力成正比的,希望大家能够在以后的生活中,拿出破釜沉舟的勇气和毅力去迎接每一次挑战和每一场面试,或许得到回报的时间会比较晚,但是谁不是一步一步迈过来的呢?最后喜欢大家都能拿到自己满意的offer进入自己喜欢的公司。Thankyou!
网友评论