java程序员和java架构师有什么区别呢?

确实,许多架构师都是从程序员开始的,因为架构师不能忽略实现,所以他们必须具备相当的开发技能。 但是,如果程序员全力以赴,他们会成为“java架构师”吗? 答案当然不是。 以我的经验,程序员和架构师之间有两个主要区别。

java程序员和java架构师有什么区别呢?

首先,程序员更擅长解决难题,而架构师更擅长解决复杂问题。

“困难”问题不同于“复杂”问题。 经过多年的发展,我意识到了这一点,所幸我意识到了。 用我的话来说,可以用几个简单的指标来衡量难题,例如应该提高系统的响应速度以及应该支持多少数据。 为了实现这些目标,当然需要做很多工作。 但是总的来说,解决这个问题的思路是线性的。

复杂的问题是不同的。 用几个简单的指标很难衡量。 更不用说指标了,即使问题在开始时就不清楚,也需要探索和定义。 复杂的问题分布更广泛,所需的功能也更全面。 希望成为软件架构师的朋友不妨看一下“软件架构师的12项培训”,其中许多不是“技术”内容。 java架构师应该如何沟通,谈判,展示领导才能并面对公司政治……给我印象最深的一件事是,在设计解决方案之前,您必须清楚每个利益相关者,他们的需求以及他们的态度,否则 您设计的解决方案可能无法实现。

其次,程序员更关注特定语言和工具的熟练程度,而架构师更关注抽象问题。

我们说程序员是“有能力的”。 通常,他的具体表现是他熟悉语言和工具,可以解决各种问题,并且可以快速,高质量地提交代码。 我们说java架构师是“有能力的”。 具体表现通常是他可以掌握问题的实质并给出可以经受考验的解决方案。 为了能够掌握问题的实质,架构师需要更抽象地思考。

可以回到建筑行业的比较。 优秀的建筑设计师不会对诸如亭子,车站,会议场地等某类建筑物的熟练建造感到满意,他将不可避免地需要更深入地思考:该建筑物需要什么结构? 是光束还是光束? 这些结构的特点是什么?它们是否适合这种场合? 在这里,“梁柱”和“梁平板”是更抽象的概念或用于解决问题的模型。 对于java架构师而言,在此级别进行思考非常重要。 但是,在软件行业中,许多具有开发背景的架构师不能抽象到这个级别,而只能停留在“什么是实现解决方案/现成的框架”级别,这还不够。 在采访中,我将提出一些有关软件开发原理的问题。 许多候选人对流行的框架非常熟悉,但是没有基本的软件开发原理(例如“关注点分离”)的概念,因此现有框架无法提供这些概念。 好的解决方案,因此与架构师之间仍然存在差距。