{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

到底怎样的程序员能称为架构师?

edgardengedgardeng 回答0 收藏1
收藏问题

9条回答

imingyu

imingyu

回答于2022-06-28 15:52

到底怎样的程序员能称为架构师?首先要知道架构师是做什么的,架构师主要职责是确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。

那么怎样从一个程序员成为架构师呢,我总结了以下几个方面:

意识方面

首先程序员自身想往架构师方向发展,然后换位思考与架构师的差距,该如何努力才能符合一个优秀的架构师,所以关注范围是不同的,程序员专注于具体细节,而架构师专注于“宏观视角”,整体大局出发,所以不能只专注写代码。

技术方面

架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作,所以要想成为架构师,自身的技术能力一定要提升,基础一定要扎实。还有就是要去掌握一些知识来提升自己的抽象能力,提高自己的建模能力,因为架构师所需要具备的就是能够从很纷繁复杂的需求当中抽象出一个共同的东西出来。

平时积累方面

优秀的架构师要满足业务需求和能够灵活对各个人士的技能,同时也对了解多种框架熟悉应用,清洗明确适应场景,这些都需要程序员长期的积累,从开发工作中提升自己的技术,从项目中积累中提升业务能力。

架构师专注宏观,但通晰微观;开发框架,又精通需求;熟练当前技术,还能前瞻未来发展。成为一个架构师绝对不是一朝一夕就能突破的,是要从基础开始一点一滴积累而来。而作为程序员更是要打好自身的基础,开拓自己的视野,用自律的心态和积极向上的意识敦促自己,跨越台阶,成为合格的架构师。

评论0 赞同0
  •  加载中...
Miracle

Miracle

回答于2022-06-28 15:52

作为一名从业多年的IT人,我来回答一下这个问题。

首先,架构师是程序员发展的一个重要方向,也是IT行业中的重要岗位。

一个软件产品的开发需要一系列角色的配合才能够完成,从一个产品的设计到最终的部署需要产品经理、策划、交互工程师、视觉工程师、架构师、产品经理、程序员、测试、运维工程师等一系列角色的配合。

从研发的角度来说,程序员可以简单划分为两类,一类是设计,另一类是实现。负责设计的程序员通常也就是所谓的研发级程序员,主要解决系统级问题,比如平台的研发、接口(API)的设计等工作,通常针对的是行业级问题。而负责实现的程序员通常是所谓的应用级程序员,通过接口来完成平台功能的调用从而实现具体的业务逻辑,工作的重点在于具体功能的实现,往往针对于具体的应用场景。

技术领域的架构师也通常分为两个大类,一类是平台架构师,另一类是应用架构师。平台架构师制定的是平台的研发策略和技术指标,通常要结合功能定位和行业定位来进行具体的设计。平台架构师通常是研发级程序员成长起来的,同时具备一定的行业前瞻性。比如James Gosling(Java创始人)和Linus Benedict Torvalds(Linux创始人)就是典型的平台架构师。

通常所说的软件架构师大部分指的是应用架构师,针对于具体的应用场景给出软件产品的设计方案、技术选型和接口设计等,通常应用架构师需要对各种平台产品有较为清晰的了解,并能够紧跟技术发展趋势来不断优化设计方案。另外,应用架构师需要具备一定的行业背景,对于方案的技术瓶颈有丰富的解决方案。应用架构师通常是应用级程序员成长起来的,往往具有多年的行业开发经验。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网方面的问题,或者考研方面的问题,都可以咨询我,谢谢!

评论0 赞同0
  •  加载中...
cyqian

cyqian

回答于2022-06-28 15:52

精通常用的技术,设计模式,业务

评论0 赞同0
  •  加载中...
时飞

时飞

回答于2022-06-28 15:52

架构师不是说针对去学习,就能掌握到的。首先,你需要对各个技术面都要了解,需要知道实现一个产品,都需要哪些功能,以及各个功能需要的部件和这些部件之间的数据交互。

我一开始是嵌入式工程师,后来从openstack转做控制台的后台和前台开发,在到后来前后端分离,开始转入react开发,以及公司需要手机app开发,学习了flutter的开发。到现在我们公司的对外产品的大项目的整个架构设计都是我来负责的,我觉得真的是需要从产品服务的部署运维,底层服务实现,前端用户展示,都是需要涉及到的。从我们这个项目所涉及面来讲,主要是kubernetes,prometheus,grafana,postgresql,mongodb,eggjs,react,django,alertmanager,redis,rabbitmq,这些都需要熟悉掌握。至于架构图,肯定不能在这里展示了。所以,我觉得,成为架构师,是需要自己去多掌握各方面的技术,有产品全局角度的分析。

评论0 赞同0
  •  加载中...
iamyoung001

iamyoung001

回答于2022-06-28 15:52

你好,科技领域工作十多年的三邵又来梦呓了:-),如有回答不妥,请指正。


架构师需要具有一定的「 技术宽度 」和「 技术深度 」。


如果说程序员具有以下这些典型特征,那么这个程序员可以认为是架构师级别的:


1、对一个领域所涉及的众多技术面都有所掌握,能够独立完成开发,包括需求分析、方案设计、编码实现。

2、具有一定的方案设计经验并能独立完成开发。

3、可以独立完成一个复杂系统的架构设计,可以是从0到 1 设计一个新系统,也可以是将架构从 1.0 重构到 2.0。

4、能够创造新的架构模式。


如果你觉得我的回答对你有帮助,或解答了你的疑惑,欢迎点赞和关注!你的支持是我持续输出的动力!

评论0 赞同0
  •  加载中...
JerryC

JerryC

回答于2022-06-28 15:52

一直做软件架构设计,也有7~8年了,主要说下个人理解吧,具体什么样的程序员可以称为架构师,这个没有标准答案。

1、视野要宽阔

2、业务经验要丰富

3、有实战型的一套技术体系,从前端到后端要都有了解,从开发到交付都有落地经验

4、善于总结、乐于分享给同事

5、及时更新自己的技术栈,逐步迭代项目中觉得不合适的架构设计

目前就想到这么多,共勉。

评论0 赞同0
  •  加载中...
Lionad-Morotar

Lionad-Morotar

回答于2022-06-28 15:52

精通某个行业的全面技术,熟悉各种开源框架(主要是Java领域),精通底层c和c++编程技术,精通数据库技术(数据设计、性能调优、高级SQL语法),精通前后端开发技术,熟悉数据结构和算法。根据项目需要能选定合适的技术方案,规避技术风险。在软件出现疑难杂症的时候能最快找到问题方向和思路,同时给团队提供技术保障和技术培训!

评论0 赞同0
  •  加载中...
codeKK

codeKK

回答于2022-06-28 15:52

关注范围:程序员专注于具体细节,而架构师专注于“宏观视角”。领导关系:程序员处于被领导地位,架构师则扮演领导角色。资历背景:架构师的从业时间一般比程序员更长。气质特性:架构师是重要的梦想家,而程序员则是面向繁琐任务的实干者技术取向:架构师做出选择,而程序员提供选项。技能:架构师的技能水平高于程序员。代码:架构师需要编写之代码平均少于开发人员。组织互动:架构师所参与之“业务”会议数量远多于程序员。薪酬:架构师薪酬水平高于程序员。自身价值:架构师的价值要高于程序员。

评论0 赞同0
  •  加载中...
happen

happen

回答于2022-06-28 15:52

以前的宜兴城市网就是号称是我架构的,所以那么值钱!其实我以前做的是游戏,我们在开发游戏,我们想玩游戏,然后我还是自慰器生产商和开发商!谢乾不承认,不接受,认为我是城市网架构师!

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<