【摆脱CRUD,大厂进阶之路】Java架构师学习指引

大家好,我是梦塔。

今天主要给大家分享对标阿里P7架构师,所需的学习路线(也可以理解为需要掌握的内容),学习方法以及职业规划答疑。对需要内部晋升、能力提升或者准备跳槽的同学,提供一个可行的思路。

学习路线
主要涉及以下几个方面的内容:

源码/框架
并发编程
性能调优
分布式(框架)
微服务
项目实战
互联网/开发工具
扩展
1.源码框架
重点在主流框架源码的阅读和学习,站在巨人的肩膀上,帮助我们更好地提升技术视野和代码质量。

主要涉及应用框架(重点Spring)、ORM框架(重点在mybatis)等,以及源码中优秀的设计理念、设计模式等。

阅读源码方法:可以先从整体体系、架构入手,然后理解核心的原理、机制,再从源码一步步解析掌握这些原理和机制的实现。

例如,Spring的IOC源码阅读——先整体认知到Spring体系,理解IOC原理,掌握Bean生命周期,然后阅读代码,同时将Spring Context装载过程分析掌握。读源码,再结合手动实现,能更好地帮助你理解和掌握框架,加深一些容易混淆概念的区分。比如:FactoryBean和BeanFactory。

2.并发编程
重点在JMM、锁、线程及线程池等,大的方面,可以概括为以下几点,可以按照这些点再深入扩展分支,由点及面,掌握并发。

JMM内存模型
并发同步处理
并发包tools限制
并发包原子操作
阻塞队列(BlockingQueue)
并发Map、List和Set
Executor线程池及源码
并发框架(ForkJoin)
3.性能调优
性能调优也是日常工作会重点使用的技能,涉及到软硬件、网络等,这里重点概况下软件(中间件)方面性能调优大方面:

JVM性能调优(主要涉及JVM机制、调优工具、GC等)
MySQL性能调优(主要涉及MySQL索引数据结构、explain、锁和事务、慢查询等)
Nginx(主要涉及Nginx的掌握、核心配置、负载配置等)
Tomcat(主要涉及Tomcat架构、环境配置、Tomcat线程模型等)
4.分布式(框架)
分布式框架在工作中应用广泛,可以主要掌握以下:

分布式架构理论基础(主要涉及CAP、数据最终一致性BASE理论、高并发、高可用、分布式一致问题方案等)
分布式消息中间件(RabbitMQ、RocketMQ、Kafka等)
分布式存储中间件(Redis、MongoDB、FastDFS、ES等)
分布式框架(Zookeeper、Dubbo、ShardingSphere、Netty等)
5.微服务
微服务同样在工作中不可获取,重点掌握以下方面:

微服务架构演进历程
Spring Boot(应用、核心原理及源码)
Spring Cloud(Spring Cloud Netflix理解即可,可以重点在Spring Cloud Alibaba上,掌握对应框架的应用、核心原理及源码)
虚拟容器(Docker、K8S)
6.项目实战
实践是掌握或提升技能最好的方式,将所学所长发挥出来。在这方面可从以下几个项目入手,这样可将上面提及的内容充分展现。(涉及架构整体设计、微服务拆分、分布式解决方案、高可用高并发及秒杀实现、调优及监控等)

分布式调用链平台
IM工具
电商平台
7.互联网/开发工具
工欲善其事必先利其器,这里所用的工具主要包括以下几个:

Git
Maven/Gradle
Jenkins
Linux
Docker
K8S
8.扩展
除了基本的技术技能和所擅长的领域,还需要开拓技术视野,这样才能提高自己的能力及竞争力。

面试方面(职业生涯规划,面试礼仪、常见问题等,简历优化,大厂面试、算法题等)
算法和数据结构
区块链技术(原理、演进,设计、实现,密码学,BTC、ETH,P2P、智能合约、NFT等)
大数据技术(环境构建,Hadoop,通用生态圈组件如:数据采集器、数据仓库、OLAP、NoSql等)
AI(机器学习、深度学习,线性回归、SVM、朴素贝叶斯、决策树、模型集成等常用算法,人脸、语音识别、NLP等,主流框架,课程推荐吴恩达大佬的机器学习和深度学习课程。机器人,群体智能,类脑,DRL等)对于新手小白想更轻松的学好Java提升,Java架构,web开发、大数据,数据分析,人工智能等技术,这里给大家分享系统教学资源,扩列下我尉(同英):CGMX9880 【教程/工具/方法/解疑】
学习方法、态度
勤奋,勤能补拙
动手敲代码
将所学应用到实际工作
学会提问(可参考《提问的智慧》)
定期复习(这我在前面的文章中也有提到),最好可以复习结合写文章(发不发布均可),画思维导图
合理分配时间,时间精力花在刀刃,参照二八法则,番茄时间管理法。最近热门的谷爱凌就是榜样
再次强调,要践行,动手写,用到实际业务
规划答疑
很多初入门或者入门很久,仍在小厂或者学历、年龄等问题,导致竞争力差、晋升困难,下面从公司、学历等几个方面,做个简单的规划答疑。

外包/小公司出路
多数大厂并不排斥外包或小公司的朋友,不要放弃或自卑,努力提升,依然有大机会
不要在小公司里过早做管理,阻遏技术提升,而管理能力也提升不大,得不偿失
技术学扎实,然后跳槽
大专学历如何逆袭
用技术弥补学历上的短板
找机会补上学历,比如成人教育
持续学习,任何时候都不要放弃技术
技术+管理路线(搞好人际关系)
应届生/社招生如何进理想大厂
掌握算法与数据结构(应届生必问)
掌握JVM+Mysql+并发+Redis+ZK+Netty+DP
掌握Spring源码+JDK源码+Linux+网络
拿得出手的项目(主要针对社招生,应届生更看重基础)
大龄程序员中年危机
在小公司十多年,温水煮青蛙,技术和管理能力停滞
35内进大厂更合适,当然不绝对
35+建议去独角兽创业公司一搏,成事的机会更大
终身学习,保持竞争力,不要被下属diss

以上是今天分享的全部内容,希望对晋升或准备跳槽进大厂的通后和朋友们有帮助。最后,欢迎朋友们点个 赞 + 在看 ,万分感谢!❤️

你可能感兴趣的:(python,virtualenv,程序设计)