vlambda博客
学习文章列表

【摆脱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


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