很多同学想成为一名架构师,但是对于其中的技能掌握程度,以及编程功底的要求?设计能力的要求有哪些?
我简要从以下7点经验来谈,从技能的角度抛砖引玉。
编程基本功:数据结构和算法
1.数据结构相关的哈希表、链表、二叉树等等
2.常见的算法有哪些?至少下图的算法我认为应该要掌握。
比如:HashMap如何扩容,重点就是考底层数据结构。
编程基本功:Java编程
这些都算是编程基本功底:多线程、JVM、并发容器、并发类、NIO等。
Web开发
其实web开发这个领域,如果你要掌握好了,发展也非常不错的。
比如:现在的H5、小程序等,对于掌握前端技术的开发人员,竞争力也是杠杠的。
当然作为后端开发人员,多掌握点前端的技术,那也是必须的。
数据库
重点就看图了,这里涉及的技术还是蛮多的,mysql、oracle、nosql相关的mongodb,以及如今大家都熟知的分库分表、读写分离等技术。
这些都是大家熟知的,我补充点设计相关的:数据库设计范式、索引、事务、数据库相关的慢查询、长事务。
这些也算是数据库技术的编程功底。
研发相关的框架工具
Java程序员对于下图应该都是比较熟悉的,这些框架与工具都是经常使用。
架构设计
谈到设计,就不得不提到项目中的概要设计和详细设计,这就会涉及到UML。
除此之外,整个项目的设计,这个时候考验你的架构设计能力。
这里的架构设计,包含的系列非常多,特别是Redis、应用程序拆分、拆分后涉及到的RPC微服务等技术,以及后端数据库的拆分技术,以及拆分后的分布式集群部署。
分布式会涉及到:分布式锁、全局唯一ID的生成、分布式Session…这里还有蛮多的,其实大部分我都分享过了
…等等
作者简介
陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注作者「mikechen」公众号,获取更多技术干货!
后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》