先唠叨两句

刚毕业那会,工作经验短,招聘的要求同样也低,一般只看重逻辑思维能力和和一些用算法解决现实问题能力,对具体技术栈知识点的深度,掌握程度不强求,懂多少算多少,应届毕业生里面能够表现出中上水平就能被录用。我整体上感觉工作六七年后,并没有积累和年限相对应的技术储备,这一点如果是在稳定的岗位上也不会有太大问题。

直到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徒手实现

学习源码中的优秀设计模式

  • 设计原则
  • 创建型模式
  • 结构型模式
  • 行为型模式
  • 设计模式对比及应用场景

四、分布式框架

分布式消息中间件

  • 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)

我的面试经验汇总(有需要的点击此处获取文档完整版

下面先给大家上一个总的目录大纲,基础的东西就不进行过多的赘述,我们将会从面试必问的说起,同时由于每篇的内容过多,我们也只说重点,太过基础的内容谁都会,我就不多敲字浪费大家的时间了!

SpringCloud


Redis


JVM


MySQL


Zookeeper


Kafka


Dubbo


spring


Rabbitmq


springboot


应届生怎么提升自己的核心竞争力?

之前也有朋友问应届生面试有哪些需要注意的,我说注意的地方太多了,我就在这提一下怎么提升自己的竞争力吧。结合了我面试22家公司的面试官所问的问题我总结了下面几点,也许对应届生有一些帮助:

1、参加过竞赛( 含金量超高的是 ACM );

2、对数据结构与算法非常熟练;

3、参与过实际项目(比如学校网站)

4、熟悉 Python、Shell、Perl 其中一门脚本语言;

5、熟悉如何优化 Java 代码、有写出质量更高的代码的意识;

6、熟悉 SOA 分布式相关的知识尤其是理论知识;

7、熟悉自己所用框架的底层知识比如 Spring;

8、有高并发开发经验;

9、有大数据开发经验等等。

总结

写到这里其实也差不多了,该发的牢骚也发了,经验也跟大家分享了,幸好通过自己的努力之后结果还算不错,也祝正在迷茫的兄弟们早日上岸。

准备实习或者跳槽但又心里没底的兄弟都可以拿我这份面试22家公司后自己整理的面试题自测一下。