十年 Java 开发传奇经历:我是如何从外包逆袭成为大厂架构师的
写在前面
我的一位朋友在某大型互联网公司担任架构师。刚毕业那年,他以外包的身份进入了某度,那个时候他几乎每一天都很焦虑,大家技术能力没差太多,为什么“我”是外包身份?
后来辞职,去了一家 20 人左右的创业公司,担任技术主管。由于团队不大,他毕竟有大厂的落地经验,也很年轻比较有想法,带了2、3个人把自己的想法基本都落地了。某一些时刻还是很满足当时的状态,毕竟压力不大,薪资也不错。
有一次和大学同学聚会,和几个在BAT的同学聊了聊技术,发现“自己”在创业公司这几年,完全是吃老本的状态,一直在纯输出,创业公司的业务发展很慢,不管是管理还是技术都很受限制。
然后他就开始刻意让自己输入一些东西。因为他学习能力比较强,通过一位前同事的引荐,就进入了现在的公司,并且一路成长为架构师,薪资基本上可以碾压同龄人了。
他回顾自己的这10年,总结一句话就是:
走出舒适圈,保持刻意学习,才有成为架构师的可能。
当你踏入这一行开始,就必须要不断学习提升自己! 如今技术发展更迭的速度非常快,不保持学习提升自己就要面临被淘汰的残酷。那么该从哪里开始学起,学什么?这里我给你5点建议:
1、读懂框架源码
框架它本身就是一个工具,但是作为高级工程师与架构师这个是你必须要学会和掌握的。让你读源码并不是真的让你读懂它,而是要理解它底层实现的原理,培养起框架思维和自定义框架的能力。
2、掌握分布式架构设计
面对互联网项目高并发、高可用、高性能的特点,分布式系统的架构能力是你必须要掌握的。面对亿级的数据系统架构如何迎接高并发流量的挑战,这是作为架构师,必须要考虑的问题。
3、深刻搞懂算法和计算机底层原理
项目性能瓶颈一部分是要通过底层调优实现的,而一些高级的内核和引擎开发往往是需要一些精良算法和对底层原理的理解才能完成的, 只有掌握这些,才能多一些角度进行项目优化。
并且,去一些大厂面试,也是100%都会面到的。就算你现在的工作还用不到算法和底层原理,但如何以后想要进BAT这样的的大厂,还是要尽快学习起来。
4、掌握数据库调优和选型
架构最难的部分就是存储,如何用MySQL支撑起海量的数据,并保持高响应性,如何让数据库持续的稳定运行,都是必须掌握的技能。不管是现在主流的 MySQL,MongoDB、还是大数据 Hadoop 生态圈中的 HBase 等等。
掌握这些数据技术让你不管是面试还是技术方案选型,都可以锦上添花,并且能够应对向大数据延展的业务需求。
5、性能调优与解决方案
对 Tomcat、Nginx 等主流应用服务器能够进行深入使用,通过性能调优能够支撑业务的并发。一些经典场景化问题给出解决方案,如SSO、即时通讯、订单系统、日志系统等等,并能够在面对众多方案时知道如何进行选择。
关于如何学习?
我也带过很多刚工作不久的新人,他们的普遍问题是:工作那么忙,根本没时间学习。确实是这样,互联网的节奏太快了,有时下班很晚,到家只想休息。但是哪一位架构师不是这么过来的?他们成为架构师了也还在保持学习,比你优秀的人都还在努力,你有什么借口不去努力?我个人建议大家好好规划一下自己的时间,每天挤出2个小时用于学习,以后你的能力和薪酬一定可以得到很大提升。
没有学习资源?
我给大家分享一份专门针对Java技术人成长的《阿里内部Java成长手册》,前段时间还有朋友给我报喜“说他把这份学习资源学了一半面试成功入职某东,薪资也是比之前翻了将近一倍”,证明这份由阿里大佬整理的Java成长手册具有特别大的学习价值,这份成长笔记也是涵盖了Java开发所有需要了解或掌握的知识点,下面我们来看看这份《阿里内部Java成长手册》的目录吧:
一、Java基础知识
JAVA异常分类及处理
JAVA反射
JAVA注解
JAVA内部类
JAVA泛型
JAVA序列化(创建可复用的JAVA对象)
二、Java集合框架
接口继承关系和实现
List
Set
Map
三、Java多线程并发
JAVA并发知识库
JAVA线程实现/创建方式
4种线程池
线程生命周期(状态)
终止线程4种方式
sleep与wait区别/start与ru区别
JAVA后台线程/JAVA锁
线程基本方法
线程上下文切换
同步锁与死锁
线程池原理
JAVA阻塞队列原理
......
四、JVM
线程
JVM内存区域
JVM运行时内存
垃圾回收与算法
JAVA四种引用类型
GC分代收集算法 VS 分区收集算法
GC垃圾收集器
JAVA I0/NIO
JVM类加载机制
五、Spring原理
Spring特点
Spring核心组件
Spring常用模块
Spring主要包
Spring常用注解
Spring第三方结合
Spring IOC原理
Spring AOP原理
Spring MVC原理
Spring Boot原理
......
转发+关注,然后添加VX(tkzl6666)获取这份《阿里内部Java成长手册》的免费领取方式吧。
六、Netty和RPC
Netty原理
Netty高性能
Netty RPC实现
RMI实现方式
Protoclol Buffer
Thri ft
七、微服务
服务注册发现
API网关
配置中心
事件调度(kafka)
服务跟踪( starter-sleuth)
服务熔断(Hystrix)
API管理
八、数据库
存储引擎
索引
数据库三范式
数据库是事务
存储过程(特定功能的SQL语句集)
触发器(一段能自动执行的程序)
数据库并发策略
数据库锁
基于Redis分布式锁
分区分表
两阶段提交协议
三阶段提交协议
柔性事务
CAP
九、数据结构
栈(stack)
队列( queue)
链表(Link)
散列表(Hash Table)
排序二叉树
红黑树
B- TREE
位图
十、Java算法
二分查找
冒泡排序算法
插入排序算法
快速排序算法
希尔排序算法
归并排序算法
桶排序算法
基数排序算法
剪枝算法
回溯算法
最短路径算法
最大子数组算法
最长公共子序算法
最小生成树算法
好了,就介绍到这里吧,这份《阿里内容Java成长手册》共涵盖29个Java相关的核心知识点,而且图文并茂,通俗易懂,也不会让人学习的时候感觉到枯燥。
转发+关注,然后添加VX(tkzl6666) 获取这份《阿里内部Java成长手册》的免费领取方式吧。
评论 (3 条评论)