lemoncai
Java程序员如何(怎样)才能成为一名合格的架构师,需要经过哪些路径、具备哪些技术知识体系?这是程序员们经常问到的问题,本篇我将通过程序员进阶之路、程序员薪酬待遇、架构师必备技术进行详解,文末有程序员进阶架构师详细学习内容。
一、程序员进阶之路
架构师也是从初级程序员起步的,程序员从初级、中级、高级再到架构师,职级不同,技术能力要求不同,这是一个不断经验积累的过程,后面会讲到。
二、程序员薪酬待遇
程序员在不同的职业发展阶段,薪酬待遇差别大,初级程序员与初级架构师的收入差距能达到几十万,架构师岗位可谓是名利双收(技术牛人+团队核心+丰厚收入),这也是程序员们期望往架构师方向发展的主要原因,关于薪酬待遇下图以阿里为例,供大家对比参考。
三、架构师必备技术能力
架构师是团队中的技术权威,需同时具备技术的深度和广度,哪些技术是架构师必须具备的呢?我总结了十七点,先简单罗列几点。
1、大数据
Hadoop
Hbase
Spark
Storm/JStorm
2、算法与数据结构
数组
链表
栈
队列
树
二叉树
B Tree/B+ Tree
红黑树
哈希
3、排序
内部排序
插入排序
直接插入排序
希尔排序
选择排序
简单选择排序
堆排序
交换排序
冒泡排序
快速排序
归并排序
基数排序
桶排序
外部排序
4、分布式系统
从集中到分布式
分布式Session:Session复制、Session绑定、Session服务器(靠谱)
分布式缓存:Redis、一致性Hash算法
数据库:读写分离、主从热备、分库分表、一致性
分布式事务、CAP、BASE、2PC/3PC
分布式锁
Redisson
负载均衡、硬件、F5、软件、LVS、Nginx
消息队列:RabbitMQ、ZeroMQ、ActiveMQ、Kafka(推荐)
服务化:服务注册与发现、Zookeeper
架构
微服务
Spring Boot
Dubbo
RPC
SOA
虚拟化
Docker
由于字数限制,未能完整列举,若需要程序员进阶架构师的完整学习资料,将关键词【架构】私信给优知学院,即可秒收,已有超过3万+程序员成功领取啦~。
优知学院
架构师是程序员的发展方向之一,所以很多程序员对架构师的工作岗位和工作内容也比较关注。目前IT行业的很多架构师都是从程序员成长起来的,可以说程序员是架构师的一个重要基础。
从程序员成长到架构师大概需要经历四个阶段,分别是初级程序员、主力程序员、核心研发级程序员、架构师。每个解决都有不同的任务,也有不同的知识储备,如果能一步一步成长到架构师,对于程序员来说不仅要有较强的工作能力,还需要有较强的学习能力。
在初级程序员阶段,主要的工作是功能模块的实现,能够辅助主力程序员完成具体的功能实现,这个阶段会锻炼程序员的基础编码能力。在初级程序员阶段,主要需要学习软件开发的流程、技术实现以及软件部署和测试方面的内容。往往初级程序员阶段的成长速度是比较快的,工作能力强的初级程序员在1到2年就会成长为团队的主力程序员。
主力程序员要独立完成功能模块的设计和实现,对软件整体结构有清晰的认知,知道模块之间的逻辑关系,能完成初级研发任务,对技术边界有一定的认知。主力程序员的发展方向有两个,一个是走项目经理,再到咨询专家的路线,另一个就是走架构师,再到技术专家的路线。如果走项目经理的路线,则需要深入了解行业知识。而对于架构师方向来说,更应该了解各种技术方案的应用场景,以及相应的性能指标,尤其是技术关键点的解决方案,工作能力强的主力程序员经过2到3年的时间会成长为团队的核心研发人员。
核心开发人员的主要工作任务往往是产品的容器部分开发,这个过程能够对软件产品有深入的学习,核心研发人员往往要跟着产品线走,大部分核心研发人员未来都会成长为架构师或技术专家。
我从事软件开发工作多年,目前也在负责移动互联开发团队和大数据团队,我会陆续在头条写一些关于软件开发方面的文章,感兴趣的朋友可以关注我的头条号,相信一定会有所收获。
如果有大数据方面的问题,也可以咨询我。
谢谢!
IT人刘俊明
说多了其实很简单,我就是一个屌丝架构师没有多少深的知识,甚至无法编写出多线程高性能程序,什么设计模式呀,垃圾回收呀都不精通……这能算是架构师吗?我坚信一条做企业最有价值的人,做企业不可替代的人,做自己最感兴趣的的事。现在已经从架构师转成研发经理,不过担任架构方面工作,希望能给大家分享出不一样的案例demo。谢谢。