如何才能从程序员成长为实战型架构师?必掌握这7大实战技能经验
想成为一名架构师,但是架构师对应的技能,我应该掌握哪些啊?以及掌握的程度是什么样的?如何成为一名真正的实战性架构师?
我简要分为以下7点来谈谈,从技能的角度抛砖引玉,希望你对你架构师之路有一定的参考。
编程基本功:数据结构和算法
如果你一直关注,会发现我之前分享的阿里面试题系列,有许多关于算法内容,比如:HashMap如何扩容,底层的数据结构发生了怎样的转变。
这就是典型的数据结构基本功,这些掌握不好,在实际编程过程中,对于性能效率你是不清楚的。因此,我一直强调要重视算法,并且认为至少应该掌握下图中的这几种常用算法:数据结构相关的哈希表、链表、二叉树等等。
编程基本功:Java编程
这些都算是编程基本功底:多线程、JVM、并发容器、并发类、NIO等。
Web开发
web开发这个领域,如果你要掌握好了,发展也非常不错。
比如:现在的H5、小程序等,对于掌握前端技术的开发人员,竞争力杠杠。
当然作为后端开发人员,多掌握点前端的技术,那也是必须的。
数据库
重点都圈在下图了,这里涉及的技术还是蛮多的,mysql、oracle、nosql相关的mongodb,以及如今大家都熟知的分库分表、读写分离等技术。
除了大家熟知的部分,我补充几个设计相关的内容:数据库设计范式、索引、事务、数据库相关的慢查询、长事务,这些在高并发的情况下,这些也算是数据库技术的编程功底。
研发相关的框架工具
Java程序员对于下图应该都是比较熟悉的,这些框架与工具都是经常使用。
架构设计
谈到设计,就不得不提到项目中的概要设计和详细设计,这就会涉及到UML。
除此之外,整个项目的设计,这个时候考验你的架构设计能力。
这里的架构设计,包含的系列非常多,特别是Redis、应用程序拆分、拆分后涉及到的RPC微服务等技术,以及后端数据库的拆分技术,以及拆分后的分布式集群部署。
分布式会涉及到:分布式锁、全局唯一ID的生成、分布式Session…这里还有蛮多的,其实大部分我都分享过了,基本都在如下的的分布式系列分享专题资料。
从程序员到架构师,是很大的职业转变,也是不少程序员的职场规划路线。以上是我多年从业经验总结,分享给喜欢Java,喜欢编程,有梦想成为架构师的程序员们,希望能够帮助到你们。
我是mike,10年+程序员。曾先后就职于淘宝、盛大、百度、携程 ,历程高级研发工程师、研发经理、架构师、事业部CTO。坚持写文1年多,原创内容接近400篇,目前粉丝总数7万+,主要分享:BAT面试、架构、招聘等技术内容。
欢迎留言或进我的个人群179961551,本群专用于学习交流技术、分享面试机会,拒绝广告,我也会在群内不定期答题、探讨。