【摆脱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等)
学习方法、态度
-
勤奋,勤能补拙 -
动手敲代码 -
将所学应用到实际工作 -
学会提问(可参考《提问的智慧》) -
定期复习(这我在前面的文章中也有提到),最好可以复习结合写文章(发不发布均可),画思维导图 -
合理分配时间,时间精力花在刀刃,参照二八法则,番茄时间管理法。最近热门的谷爱凌就是榜样 -
再次强调,要践行,动手写,用到实际业务
规划答疑
很多初入门或者入门很久,仍在小厂或者学历、年龄等问题,导致竞争力差、晋升困难,下面从公司、学历等几个方面,做个简单的规划答疑。
外包/小公司出路
-
多数大厂并不排斥外包或小公司的朋友,不要放弃或自卑,努力提升,依然有大机会 -
不要在小公司里过早做管理,阻遏技术提升,而管理能力也提升不大,得不偿失 -
技术学扎实,然后跳槽
大专学历如何逆袭
-
用技术弥补学历上的短板 -
找机会补上学历,比如成人教育 -
持续学习,任何时候都不要放弃技术 -
技术+管理路线(搞好人际关系)
应届生/社招生如何进理想大厂
-
掌握算法与数据结构(应届生必问) -
掌握JVM+Mysql+并发+Redis+ZK+Netty+DP -
掌握Spring源码+JDK源码+Linux+网络 -
拿得出手的项目(主要针对社招生,应届生更看重基础)
大龄程序员中年危机
-
在小公司十多年,温水煮青蛙,技术和管理能力停滞 -
35内进大厂更合适,当然不绝对 -
35+建议去独角兽创业公司一搏,成事的机会更大 -
终身学习,保持竞争力,不要被下属diss
以上是今天分享的全部内容,希望对晋升或准备跳槽进大厂的通后和朋友们有帮助。最后,欢迎朋友们点个 赞 + 在看 ,万分感谢!❤️