从被踢出局到5个30K+的offer,一路坎坷走来,沉下心,何尝不是前程万里
先唠叨两句
刚毕业那会,工作经验短,招聘的要求同样也低,一般只看重逻辑思维能力和和一些用算法解决现实问题能力,对具体技术栈知识点的深度,掌握程度不强求,懂多少算多少,应届毕业生里面能够表现出中上水平就能被录用。我整体上感觉工作六七年后,并没有积累和年限相对应的技术储备,这一点如果是在稳定的岗位上也不会有太大问题。
直到2016年我的第二份工作,我在一家一线互联网公司内部孵化的直播产品,用了四年时间做到项目副手,而在被HR约谈到离职,前后不到四天。
我当时还在专心做规划,写东西、对业务需求、开发功能。应该还算是比较重要的,很多人等着的东西开展业务,我属于他们的上游模型。HR邮件通知说业务调整,这边接下来考核压力挺大,我跟另一个工资最高的同事只能留一个。而最后确定了是我,整个流程不过半天时间,之所以用了四天是因为需要交接的东西比较多,说来也真是讽刺。
不过的确没什么好抱怨的,另外那个同事的确比我更努力,时常能看到工作之余还在不断的学习,而我则更像一条躺在老本上等死的咸鱼,这样的我凭什么被别人坚定选择呢。
被踢出局之后,我回到了长沙,颓废了一段时间,但日子还得继续不是。没辙,想再找到一份不错的工作,就得提升自己的核心竞争力。之后有相当长的一段时间在补短板,也看些感兴趣的东西,像JVM和并发相关的,那时候每天都有种醍醐灌顶的感觉。
不过面试的时候还是被打回原形了,准备的很多东西都没有被问到,我自认为很厉害的东西只是钻牛角尖了。我他喵裂开!!!
不过好在认识了一位很牛的行业老大哥,至于怎么认识的就不赘述了,总之在他的引导下我才能拿到今天这5个还算不错的offer,不说废话了,先贴两个offer再给你们分享一下学习经验,不然你们还以为我吹牛皮。 这一年多不断的肝学习也整理了一些学习笔记和资料,是按照我下面要写的学习路线整理的,也都分享给大家,需要的朋友可以自行点击下方蓝字领取。
好了,开始正题。
为了拿到这5个offer我学了哪些东西?
一、性能调优
- Jvm性能调优
- Mysql性能调优
- Tomcat调优
- Nginx调优
二、并发编程
- 操作系统内核原理
- JMM内存模型
- 并发同步处理
- 并发包之tools限制
- 并发包之atomic原子操作
- 阻塞队列BlockingQueue详解
- 并发Map、List与Set详解
- Executor线程池详解及核心源码剖析
- ForkJoin框架详解
- 无锁并发框架Disruptor实战
三、框架源码
应用框架Spring
- Spring IOC源码剖析
- Spring Aop源码剖析
- Spring MVC源码剖析
- Spring注解式开发
- Spring 5新特性
- Spring Security原理与源码剖析
- Spring Webflux详解
ORM框架MyBatis
- MyBatis快速掌握
- Mybatis 源码分析
- Mybatis徒手实现
学习源码中的优秀设计模式
- 设计原则
- 创建型模式
- 结构型模式
- 行为型模式
- 设计模式对比及应用场景
当然了,只学不写是不行的,我自己是比较倾向学一段时间就自己动手写两个项目,不一定要多难,但一定得做,这一年多的时间项目也没少写,整理了20个比较有代表性的项目可以分享给大伙,源码跟笔记都有,应该挺好上手的。
四、分布式框架
分布式消息中间件
- Rabbitmq
- RocketMq
- Kafka
分布式储存中间件
- Redis
- MongoDB
- FastDFS
- Elasticsearch
分布式框架
- Zookeeper
- Dubbo
- ShardingSphere
- Netty
五、微服务系列
微服务架构变迁史
- Spring Boot详解及源码剖析
- Spring Cloud Alibaba详解及源码剖析
- Spring Cloud Netflix详解及源码剖析
六、互联网工具
Git
- 整体认知GIT体系结构
- Git客户端与服务端快速搭建
- Git的核心命令详解
- Git企业应用最佳实践
Maven
- Maven生命周期详解
- Maven插件体系详解
- Maven核心命令详解
- Maven的pom配置体系详解
- Nexus***搭建实战
Jenkins
- 整体认知Jenkins体系结构
- Jenkins如何做持续集成
- Jenkins搭建及使用详解
- Jenkins插件体系详解
Linux
- Linux原理、启动、整体架构讲解
- Linux运维常用命令实战
- Linux用户与权限讲解
- Shell脚本编程实战
虚拟容器
Docker
- Docker的镜像,仓库,容器详解
- 快速开始搭建Docker环境
- DockerFile使用详解
- DockerCompose集成式应用组合
- Docker服务编排实现
Kubernetes
- Kubernetes介绍与快速开始
- Kubernetes对象&Master组件&Node节点详解
- Kubernetes生产集群环境搭建与使用
七、拓展技术
算法与数据结构
- 算法复杂性分析
- 线性表、链表数据结构详解
- 队列、栈结数据结构详解
- 基础排序算法详解
- 数论&枚举&递归&分治&回溯思想详解
- 贪心算法与动态规划
- 快排与归并排序详解
- 二分搜索、哈希表详解
- 并查集算法详解
- 树,基本概念,二叉树(遍历),红黑树详解
- B树,Trie树,赫夫曼树,堆树详解
- 图论、深度优先遍历、广度优先遍历详解
- 最小生成树、最短路径详解
- 布隆过滤器与位图详解
区块链技术(Java版)
- 项目架构与技术点讲解
- 区块链原理整体介绍
- 区块链整体结构设计与实现
- 密码学
- 比特币钱包的设计与实现
- 比特币交易的设计与实现
- P2P去中心化网络设计与实现
大数据技术
- 第一阶段--开发环境构建
- 第二阶段--HADOOP核心
- 第三阶段--大数据通用生态圈组件
- 第四阶段--Spark及生态圈
- 第五阶段--基于spark的数据挖掘算法
人工智能技术
- 用一台电脑搭建一个机器人开发环境
- Python编程入门和应用范例
- ROS客户端库和应用范例
- 开发你的第一个机器人应用
- 如何协调一个机器人内部的行为
- 计算机视觉基础与应用
- 机器人建图和导航
- 开发一个智能安保机器人
- 神经网络基础与应用
- 基于ROS开发多机器人应用
- 群体智能
- 人工智能前沿探讨 类脑计算
- 人工智能前沿探讨深度强化学习(DRL)
应届生怎么提升自己的核心竞争力?
之前也有朋友问应届生面试有哪些需要注意的,我说注意的地方太多了,我就在这提一下怎么提升自己的竞争力吧。结合了我面试22家公司的面试官所问的问题我总结了下面几点,也许对应届生有一些帮助:
1、参加过竞赛( 含金量超高的是 ACM );
2、对数据结构与算法非常熟练;
3、参与过实际项目(比如学校网站)
4、熟悉 Python、Shell、Perl 其中一门脚本语言;
5、熟悉如何优化 Java 代码、有写出质量更高的代码的意识;
6、熟悉 SOA 分布式相关的知识尤其是理论知识;
7、熟悉自己所用框架的底层知识比如 Spring;
8、有高并发开发经验;
9、有大数据开发经验等等。
总结
写到这里其实也差不多了,该发的牢骚也发了,经验也跟大家分享了,幸好通过自己的努力之后结果还算不错,也祝正在迷茫的兄弟们早日上岸。
准备实习或者跳槽但又心里没底的兄弟都可以拿我这份面试22家公司后自己整理的面试题自测一下。