Java程序员要如何才能完成从新手码农到架构师的转变?

陳康喜


我在第一家单位工作的时候,工作到第三年,单位给我印了名片,上面的职位是【项目经理】,当时一方面有些窃喜,“我都是项目经理了,好像很厉害的样子”,另外一方面有些惊讶,“我都干啥了,怎么就成项目经理了,不是还是干开发的那些事儿么”。后来我逐渐发现,有些公司的头衔都很唬人的,所以在一些公司不要太在意架构师这个头衔。

在我眼里,架构师也可以分成两种:一种是从程序员一步一步成长后“进化”成为的架构师,一种是PPT架构师,当然,我们的奋斗目标肯定是要成为前者。

架构师的工作职责

  • 把控需求:架构师需要从需求阶段就介入的,架构需要和需求人员(产品经理)沟通需求,保证自己可以完整的理解和把握客户需求。

  • 架构设计和技术选型:如果是一个新的项目,架构师需要对项目进行分解,形成项目架构,在此基础之上再完成技术选型(要结合公司的实际情况)。如果是一个老项目,架构师同样需要这次的需求做在什么地方,是在现有技术上就能实现,还是需要引入新的技术。

  • 制定规范、把握方向、踩坑填坑:架构师是要跟随项目的整个流程,架构师就是项目的技术权威,他应该时刻与开发人员进行沟通,让开发人员理解架构意图,实现业务功能。架构师不是一个指挥者,把系统设计好了就让程序员来干,有一些技术难点,都需要架构师冲在前面解决。而不是当项目遇到一个“坑”时,架构师是要“真刀真枪”的写代码的。


需要在哪些方面努力,才能成长为架构师

  • 技术深度和广度:这一点不用多说了吧,架构师的技术储备一定要丰富,也就是见多识广。想象一下如果一个架构师连memcached、redis都没听说过(哈哈,我说的就是六七年前自己)。

  • 抽象思维:这是进行系统分析和需求分解的基本素质,具备抽象思维的能力,才能把一个大的需求,分解成一个一个小的功能,但是分解后依然可以掌控全局。

  • 沟通能力:和需求人员沟通,和业务人员沟通,和项目成员沟通...

  • 领导能力:推动整个项目的发展,需要架构师的领导能力,这里说的领导力和项目经理所需的领导力还不太一样,想象一下如果有一个只会写PPT的架构师,做出来的架构设计不切实际,那么怎么可能让开发人员信服。这里的领导能力,更多的是指技术能力的影响,甚至是个人魅力,也就是【可以服众】,让开发人员心里想:“这个架构这牛,跟着他我学到了很多东西”。


我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。


会点代码的大叔


目前随着互联网的持续发展,架构师的成长路线也越来越多,以前行业内部的大部分架构师都是从程序员成长起来的,但是目前也有一批架构师是“培养”出来的,还有一部分架构师出自咨询专家等岗位。

从Java程序员要成长为一名架构师往往需要经过以下几个阶段:

第一:从初级程序员到主力程序员。这个阶段主要是夯实开发的基础,在主力程序员期间会积累大量的设计方案,这是一个重要的学习阶段,通过与架构师的接触能够了解架构师在设计软件整体方案时的思路。大部分程序员都能完成从初级程序员到主力程序员的转换,只要多参加一些实际项目大部分人都能积累足够的经验。

第二:从主力程序员到研发级程序员。从主力程序员成长为研发级程序员往往是一个重要的发展过程,要升级到研发级程序员需要具备更加全面的知识结构,另外对程序员的基础知识有一定的要求。研发级程序员要解决软件开发过程中的核心问题,往往关乎到整个软件的性能。有不少主力程序员很难突破到研发级程序员,一个重要的原因就是知识结构不全,所以为了解决这个问题,有不少程序员会选择通过读研来完成突破。

第三:从研发级程序员到架构师。从研发级程序员到架构师是一个比较常见的发展路线,也有不少研发级程序员走技术专家的路线,当然这与具体的研发环境有一定的关系。从研发级程序员成长为架构师对知识面的要求还是比较全的,这就要求研发级程序员在工作的过程中要注重知识面的广度。

总的来说,从程序员成长为架构师还是比较扎实的。

作者简介:中国科学院大学计算机专业研究生导师,从事IT行业多年,研究方向包括动态软件体系结构、大数据、人工智能相关领域,有多年的一线研发经验。

欢迎关注作者,欢迎咨询计算机相关问题。


IT人刘俊明


有句话这么说的:不想当将军的士兵不是好士兵!你才刚入行就有这种想法是很好的,接下来就是要付诸行动了!

先看下架构师具体的职能是什么?

1,负责将业务需求转化为可执行的开发计划,制定整个项目的架构搭建!

2,负责整个项目的各方面指标,比如高可用性,高稳定性,高效率等等!

3,降低整个系统的可扩展性,降低维护成本,保证系统的质量!

怎么成为一个优秀的架构师呢?起码得做到如下几点:

1,熟知整个系统涉及到的技术栈:前端,后端,数据库,运维,测试!

2,分布式技术:微服务,负载均衡,集群,一致性hash,高可用,容器技术,服务间通信等等!

3,中间件:数据库相关包括监控中间件,分库分表中间件,缓存中间件,消息队列等!

4,技术能力:开发能力优,阅读过大量框架源码,能快速发现和改进已有框架的问题,熟知设计模式,能搭建稳定性和扩展性好的架构,对主流技术能迅速掌握!

5,调优能力:jvm调优,sql调优,服务器调优,能快速定位局部出现的可能性问题!

6,工具:svn,maven,gradle,git,jenkins,jmeter,jstack等等各方面的工具!

换句话说,作为一个架构师,需要上得厅堂,下得厨房!!!我目前定位是一个初级架构师,仍需努力。。


哎哟JAVA不错哦


我有以下建议,请您参考:

1 优秀代码能力

架构师应该要承担项目中核心、复杂代码的编写工作,这也是阿里毕玄对于架构师的要求。所以必须在日常的工作中多写代码,承担核心代码编写工作,锻炼自己。

其中有一个非常重要的能力:抽象能力。比如一段代码出现在A类中,就不应该被复制到B类中,把公用代码抽象出来,抽象为架构工程,可以提高开发效率,增加代码可读性和维护性。


2 精通相关业务

业务架构师必须对所在行业有着深刻的认识,这样可以对业务提出好的建议,有的建议甚至是方向性的建议,这就需要在工作中积累,不要抵触业务学习。


3 从0到1设计开发项目的能力

请参看我的头条文章:《从0到1构建互联网业务系统的基本方法论》


4 沟通能力

架构师不是一个人在工作,必须协调组内的成员,把架构描述清楚,把任务分配妥当,对项目进度的把控,必须有一个好的沟通能力。


5 排查问题能力

代码出现了问题,尤其是线上问题,十分紧急,架构师必须能迅速定位问题,解决问题。这就要架构师平时多排查问题,掌握一些基本的排查工具和方法。



IT徐胖子


新手变老手,可以通过不断的积累代码量、项目经验来实现,就是所谓的代码敲多了,手就“老”了。

但是老手与架构师又完全是不同的概念的。

架构师的核心在于思维,要站在比一般的开发工程师更高的高度看待问题。如果举个例子的话,程序是一栋大厦,架构师是设计师,而普通的程序员就是施工人员。工人按照设计师的图纸施工,一层层的把大厦建起。

怎么成为架构师呢?肯定不是凭空想来的。

每一个架构师都是从实际的开发中成长起来的,多年的开发、学习,让他们都有着扎实的专业基础、熟练的专业技能、丰富的知识掌握,以及最重要的一点:优秀的编程思想。前面的那些很多开发者都能达到,但最终能成功成为架构师的却为数不多。决定能不能成功打通“任督二脉”修炼成功的关键在于:你能不能把你拥有的这些东西融汇贯通,吸收升华,然后形成结果,提高你的编程思想高度。不做一个只会搬砖的码农。


奇驴打鱼


java如果现在还是零基础的话,建议先学习java,打好java基础,最基本的框架也要学好。

如果你现在已经是java程序员的话,可以参考一下这个学习路线

可以关注我,里面有很多技术文章供你学习,私信我回复【资料】也可获取各种学习资料,全是技术干货,每一天都会更新。


优效程序员


首先要打好基础,其次在工作中根据安排的任务需求深挖下去学习,然后就要广泛的稍微了解一起比如前端、移动端的一些知识,不求精通,起码有所了解。

当然,如果你有兴趣来学算法,欢迎关注我一起学习!


五分钟学算法


先打好基础,在工作之余要注意多积累,多练手,切不可完成工作就算完事了,一定要注意自我学习,自我提升,奔着架构师的梦想前进,你可以的!加油!


搞笑中的战斗机


首先要有足够的项目经验,并且不断的学习成长,多看,多写,多研究,慢慢成长


分享到:


相關文章: