要成为一名软件架构师我需要知道什么?

2025-06-07

要成为一名软件架构师我需要知道什么?

我时不时会读@hillelogram@pressron@sebmarkbage(排名不分先后)的文章、推文或演讲,并意识到这些人的理解要深刻得多。他们不会局限于一种范式或一种编程语言,而是能够将不同语言的范式引入到当前的编程语言中。

例如,@hillelogram 从全新的角度讨论了继承。我使用继承很多年了,但从未从这个角度思考过它,也从未质疑过它。又例如,@sebmarkbage 将代数效应的概念引入了 JavaScript,虽然形式有限,而且仅适用于 React,但这个想法已经开始在不同的框架中传播,而且它非常直观且功能强大。又例如,@pressron 解释了命令式范式有其优点(人们通常更看重函数式范式,而其他情况下则不然)。

更重要的是,他们不仅理解它,还能让其他人理解它。他们能够解释它——这再次证明了他们的理解力。

Hoenikker 博士曾经说过,任何不能向
8 岁孩子解释自己所做的事情的科学家都是骗子

出自库尔特·冯内古特的小说《猫的摇篮》

我猜他们接触过许多不同的编程范式,或者他们学习过一些神秘但非常聪明的编程语言,或者他们受过相当好的计算机科学教育(并非所有学位都一样)。

最近我偶然发现了这句话:

如果您不知道编译器如何工作,那么您就不知道计算机如何工作。

——史蒂夫·耶格

这让我开始思考:计算机科学中是否存在一些特定的主题,能够显著提升我对计算机科学的总体理解?我应该自己写 Lisp 程序,还是学习 E 语言?我应该学习分支预测?我应该读《类型与编程语言》或《SICP》吗?我应该知道判定问题的答案吗?

获得真正深入理解的最有效方法是什么?需要哪些知识?

照片由 Samuel Zeller 在 Unsplash 上拍摄

文章来源:https://dev.to/stereobooster/what-should-i-know-to-be-a-software-architect-4ilm
PREV
How to create an ERC20 Token and a Solidity Vendor Contract to sell/buy your own token
NEXT
React 项目的 TypeScript monorepo