首页 » 编程知识 » 程序员如何培养成为架构师?

程序员如何培养成为架构师?

admin 编程知识 105 次浏览 没有评论
程序员精选俱乐部

一千个读者有一千个哈姆雷特,

但一千个程序员里也许只有一个架构师。

即便这一千个程序员,都或多或少有着架构师的梦。

很多人一提起架构师,认知里浮现的必然是做技术的,

却不知道其实除了这些技术人,很多人都是架构师,

区别只在于在不同的层面做着架构的事情而已。

第一阶段是新手期

这个阶段的典型特征是容易被新技术的华丽外表所迷惑。当在网上看到一种新技术的介绍或者心得,立即产生了大量肾上腺素的分泌,干什么都想用一用,如果这时有人跟他说你的这项工作用这个不合适的话,要是性子急的人估计就直接开始骂娘了,性子缓些的也会想尽理由说服你使用这个新东西,实在没办法的话,吃不下东西睡不着觉也想另找个地方用一下。

第二阶段是中级程序员阶段

这个阶段的程序员对技术、和工具的选择已经审慎了很多,可以根据具体的需求来选择需要采用的技术,可以写出详细的需求调研报告并提出设计方案,优点、缺点分析得清晰明了。在应用层面也有较强的全局理解力,在团队中也具有相当的协作能力,因此具备较强的解决问题的能力。

第三阶段是高级程序员/分析师/架构师阶段

进入这个阶段的前提是多年的工作经验,广阔的知识面和对系统底层到高层的全面认识,已经使其进入了无语言无工具的层次。也就是能任何清楚地感知每种编程语言的优劣、使用范围、编码禁忌,对一个大型工程能有最全面的了解,在选择语言和确定技术方案的时候不会被自己对语言或技术工具的偏好(或者根本已经无所偏好)所影响,真正明白了其实别管是神马语言、神马技术,归根到底咱们的对象还不是CPU、内存、硬盘和网络,该做的事情一件都不能少,所谓的技术框架是对初级程序员用的,真正高级了不研究个清楚透彻都不敢让你进来。即使对同一种语言,在不同的操作系统中,如Visual C++和Unix C、AIX XLC、GNU G++等等的区别,以及不同版本之间的区别也了如指掌。

主动思考、实践

保持对架构的好奇心,主动思考一些问题,比如微博的更新是推还是拉,双11的秒杀是如何实现的。抱着问题去看书,查资料会有更深的了解。平时应该看一些一线互联网公司的架构实践,如有必要,可构建类似的业务场景,在本地试验。

程序员如何培养成为架构师?

担当与抽象思维

在一个项目里面,最有可能成为架构师的技术人员,通常是那个最有担当的人。一个技术难题摆在大家面前的时候,谁都不会,但是这个人主动承担下来,不仅让领导认可你的态度,一旦你经常挑战你不会的东西,并且挑战成功,就会形成良性循环,以后就会形成这样的共识,再难的问题交给你也能搞定,因为你已经具备了这样的直觉和经验。

程序员如何培养成为架构师?

多交流,参加行业聚会

如果有机会,多参加行业聚会,结交技术大牛,看看他们对架构有什么独到见解。做为技术人不仅要埋头钻研,还要抬头看路。

程序员如何培养成为架构师?

重复的错误要引起高度重视

在职业生涯初期,我遇到了一个非常好的项目,给华为定制一款中间件平台,华为的严格程度,只要大家合作过,肯定都清楚的,当时我就犯了一个错误,而且是两次。如果没有前面的铺垫,这个错误说出来我估计很多人都不以为然:某个图标少了一个像素。在第一次他们提出这个问题时,我真是不以为然的,替换后就重新打版本了,结果不久再次出现了这种问题,当再次被当面提出时,我觉得真的挺难堪的。

要学会利用好每次失败的机会

凡事都有两面性。再说的直白些,关乎实际利益,前些天有同学在谈彼得定律,彼得定律是一个“向上爬”定律,人都是应该接受挑战,直到不能胜任。如果你是一个领导或决策者,一般你会给什么样的人机会,所有人都会喜欢能承担责任,快速解决问题,不断优化的人,但问题、瓶颈不是你说有就有的,正是一次次问题、失败提供了机会,关键还是看谁能抓的住。

将重构养成习惯

随着你不断添加更多的功能,代码库也会越来越复杂。为了保持代码库的可管理化,你需要重构。如果你不重构的话,你很快就会进入两难境地——即使是做 很小的改动都很困难、bug 没法避免、没有人愿意处理这个凌乱的代码库。重构能让你的工作更加轻松。事不宜迟,赶快养成重构的习惯吧。下面这本好书能教你该怎么做: 《Refactoring: Improving the Design of Existing Code》by Martin Fowler

学习软件架构

根据你上面选择的堆栈,再学习相关的架构。我推荐 Martin Fowler 写的《Patterns of Enterprise Application Architecture》一书。

总结:

架构师也并非是万能的。架构师是客户需求和开发者之间的桥梁。在软件行业中,一般提到的架构师是技术架构师,而忽略了领域架构师或者讲是领域工程师的概念。一个好的领域专家一定是业务领域的架构师,他能够给出某一个业务领域的架构,我们可以称为业务架构,只有技术架构和业务架构紧密结合才有可能真正创造出一个好的系统!

至于坚持,它同样很重要。一个人的能力是有限的,很难做到这个也懂那个也会。某种程度上,所掌握知识的广度对于我们的职业发展是有益的,但这是基于我们在某一方面很精这一前提的。要精于某一方面,就一定离不开在同一领域的不断坚持。坚持意味着我们在那个领域会碰到更多的问题和做更多的思考,这是成为领域专家的唯一途径。

义乌奥美编程,转载链接。

本文永久链接: http://code.ywbb.com/139.html

发表评论

Go