# 从T4到T8,4年时间,4次晋升。技术提升最快的那几年,我做了什么?
作者:小傅哥
博客:https://bugstack.cn (opens new window)
沉淀、分享、成长,让自己和他人都能有所收获!😄
哈喽,大家好我是技术UP主小傅哥。
从T4到T8,4年时间,4次晋升。这四年间的快速成长,主要来自认知的改变。我开始有意识的圈定自己的技术地盘
,形成一套自己的技术体系壁垒,让自己有更多的可能接住更多的机会。而认知的提升是见人、见事,以及能在不确中坚持并获得收益。
成绩的结果只是我自己的,但过往的经历却可以帮助很多人!
在这段过往中我清楚地认识到,千万别让自己只成为别人手里的螺丝钉或工具包。CRUD仔
、SQLBoy
这些工作,只能一个季度一个季度、一年一年的消耗你的时间和精力。而那些看似有难度的东西,如;编程范式
、设计原则
、架构模式
、架构风格
等,也只是因为你接触的少,所以感觉难。就像不少伙伴都觉得落地 DDD 复杂,使用 MVC 简单。但如果你最开始接触的就是 DDD 呢?有人带着你搞 DDD 的项目呢?让你一次次从创新的架构
、高级的编码
、场景的处理
、方案的手段
中,吸收这些能快速提升能力的知识,你会进步很慢吗?
那么,接下来小傅哥就给你分享下整体架构的成长路线,以及要提升能力需要做哪些类型项目。
文末有获取资料方式,还有送福利 4.0 50万 Tokens 活动!🉐
# 一、我是怎么想的?
4年多时间我在 bugstack.cn (opens new window) 博客,写了几百万字
技术内容,涵盖;系统架构、设计模式、源码、JVM、中间件、IDEA Plugin、字节码增强,以及各类实战项目。那你觉得这些技术内容都能帮助到工作提效?不一定,甚至可能有些工作中都不会使用。
就比如;手写JVM,但几乎2~3年也没有一次处理过JVM的问题。做字节码增强 + JavaAgent,但公司里也有专门的团队运维着全链路监控系统。懂得域名申请、备案、Nginx配置、前后端镜像打包部署发布,但公司有全流水线的CI/CD持续交付工具。
那都用不上,不白折腾了?
首先,这不白折腾,通过这些看似也用不上的学习,却构建了个人的技术栈体系逐步的闭环。就像当你要设计系统架构和遇到复杂问题时,其实这些看似没用上的知识,都是环环相扣的。他们可以让你对一件事想的深,看地更远。
然后,当我们来表述自己完成的工作时,往往需要站在当下的工作,先从上往下看,我为什么做这个事。之后从这个事往远看,做这个事能带来什么?这些技能是你在跳槽、面试、述职、分享时,非常重要的本领。否则你只能做一个执行者,让做啥做啥的工具。
最后,工作和个人,本身就是两条路线。当个人的能力远超工作所需的时候,也就是你能进入另外一个圈层的时候,且这个行为是不断正向循环的。而且个人的能力提高后,对于工作上的输出往往会有时候做出精彩一击,让你也能站在聚光灯下。
感受:做长期规划,脱离平台,仍旧具备个人价值。
# 二、有价值的学习
其实技术个人的成长往往是很快的,可能一年前还是CURD仔
,一年后就能独立架构系统,承接复杂需求。这样的伙伴成长速度,在大厂中非常常见。那是大厂的伙伴就很聪明嘛,很猛吗?其实也不是,而是什么环境,就容易锻炼什么样的素质。就像小傅哥在大厂的多年工作经验,编写的相关资料和实战项目,都是能帮助你锻炼出这样的能力,包括;
- 【思维】清楚地理解系统的演变、微服务的拆分、分布式设计的设计,而不是一讲到高并发就来说多线程。
- 【技术】熟练的运用 Spring、SpringBoot、MyBatis 等开发框架技术,并对其使用源码所提供的接口、类、SPI标准开发各类组件,有一定的设计思路和落地能力。
- 【技术】具备核心技术组件的使用能力,okhttp3、Guava、RateLimiter、Hystrix 等,设计出可靠的系统。
- 【技术】具备分布式技术栈的选型和使用,RPC、MQ、任务调度、分库分表,并基于分布式技术栈设计和落地系统。
- 【技术】可以熟练构建系统的 ELK 日志服务、分库分表数据同步、skywalking 全链路监控、Prometheus + Grafana 监控面板。
- 【架构】逐步了解并掌握,领域驱动设计(DDD)、微服务、微内核的架构模式
- 【架构】学习组件化设计,懂得系统边界的拆分,理解并能驾驭高内聚低耦合的编码经验。
- 【架构】通过结构化、函数化的面向对象思维,合理的设计系统,并开发出功能与框架分离,最小化复杂度的工程代码。
- 【设计】熟练运用工厂、策略、组合、模板等设计模式,编写出具备良好扩展性的代码。
- 【设计】通过单一职责、接口隔离、依赖倒置的设计原则手段,让代码更加清晰。从而做到整体的业务复杂不会影响局部的处理。
- 【方案】学习众多场景解决方案,如;三方支付对接、支付掉单补偿、大模型SDK设计和对接、低延迟任务调度、营销平台复杂性玩法等。
- 【其他】具备组件的设计开发能力,基于对同类共性需求的能力,开发出通用的技术组件。
以上,这些方面的内容举例,都可以从小傅哥所编写的文档和项目中学习到。此外还有非常多的细节架构方案,都是大家可以参与学习的。
# 三、一张架构成长地图
为了让我的粉丝伙伴,更加清楚地了解到架构师所需的技术类技能成长,这里小傅哥根据这份非常专业权威的资料 developer-roadmap By Kamran Ahmed (opens new window) 做了中文版的内容梳理。
原搞下载:https://www.alipan.com/s/LqwsNfHRx54 (opens new window)
以上这份资料不非得作为架构师指导路线,也是编程技能高级进阶类参考说明。这是一份理论资料,点开小圆点⭕️
会看到每条内容的具体明细介绍。
成长的路线地图能明确方向,但在这个过程中还需要配套的资料和项目,让伙伴们下场锻炼。而小傅哥就是想通过自己在大厂的积累,编写出相应的成长锻炼项目,让各位得到快速的技术积累。
# 四、技术学习资料
为了能让粉丝伙伴能像小傅哥一样得到全方面的成长,这里小傅哥在建设星球「码农会锁」的资料库时,分出;基础教程、业务项目、组件组件,以及开源项目、源码学习、架构方案这样几个大的模块。日常中小傅哥会把大厂的设计思想和技术手段,分享给小伙伴们。并在每个周末更新实战项目,目前【如图】星球已经完成了7个项目,以及1个在进行中的。
这样一套来自还在一线编码的架构师,编写的成体系的原创项目,在任何平台都是很难找到的!