程序员书库(ID:CodingBook) 猿妹编译
链接:https://medium.com/@david.vancouvering/becoming-a-software-architect-6c5ca8508422
在编程领域,许多程序员的最终目标都是成为一名优秀的架构师,最近,WeWork的首席工程师戴维·范库弗林发了一篇博文,和大家分享了如何成为一名软件架构师,以下是博客原文编译:
是的,我是一名软件架构师——首席工程师,我喜欢这个岗位,因为它极具挑战性,而且也很有趣,容易让你感到满足,但同时也让我有点难过,因为我再也不能为所欲为的写代码,我需要拼命的挤出时间来写代码,做东西
当那些年轻的工程师问我:当年是如何一步步的走到这个岗位的?所以,我是如何当上架构师的呢?
不同的人走的道路也不同
在我讲自己的故事之前,我想强调一下,每个人的道路都是不一样的,对我有用的未必就是你受用的。
我和许多首席工程师一起工作过,他们每个人都有非常不同的风格和技能。有些人非常擅长沟通,能够引导别人,提出高级的设计和策略。有的人在在某个特定的领域有着非常专业的见解,并且能够在该领域不断创新。有的人则是伟大的领导者/导师。所以,你不能因为我这样做了而成为一个架构师,你也选择这样做,这是不对的,适合自己才是最好的。
寻找潜在的主题和模式
当我看到我自己或一个团队把时间都花在了一堆低质量的代码上,或者事情效率奇低无比的时候,我就会问自己为什么会这样,我们怎样才能做到更好,我热衷于寻找问题的根本原因,我没有办法忍受事情原本的样子
在《系统之美》一书中, 德内拉·梅多斯 鼓励我们不要只关注发生在我们身上的一系列事件,而是要更深入地挖掘和理解导致这些事件发生的潜在原因。这样你才能看到更多的可能性,而不仅仅是对事件做出反应时,这样你才能在这个充满各种复杂系统的世界里更好地生活。
阅读
提到梅多斯的书,正好引出我的下一个观点,我们并不是孤立无援的或者,如果我们有发掘智慧的能力,我们就能拥有更多的智慧
我记得一些很好的书,它们完全开阔了我的眼界,让我看到了一种新的思维方式。比如Eric Evans的《领域驱动设计》,一本关于领域驱动设计方面的书,它就阐明了用户驱动的领域建模方法;从Jay Kreps、Werner Vogels等人的博客知道了如何在网络规模上管理数据,以及如何通过一种干净的、可伸缩的、解耦的方法来集成系统组件之间的数据。
在我寻找理解行为背后原因的过程中,我读过的书和文章已经成为我职业道路上的关键里程碑,从中学习和实践的东西,都已经成为我工作中最重要的工具,除非你不想学习和改变,不然阅读会让一切皆有可能。
那么,如何找到这些书籍和文章呢?我采取的是听取一些我所尊重的人的意见,并将他们和原始资料联系起来,主要主要是通过管理一个由我尊重和信任的业内人士组成的Twitter feed来做到这一点的,虽然会有很多无用的信息,但是我依然可以从中得到一些宝贵的信息,使我的知识不断增长。
写作
在成为一名架构师之前,我是想成为一名技术作家,我一直很喜欢写作,对写作的热爱,在我的软件职业生涯中提供了很好的便利,并且我认为这有助于我得到管理层和我的同事的认可和尊重。如果你没有办法写下来并解释你的想法,会使你比较难和别人进行交流,这会使你晋升有难度。
但写作并不是对每一个人来说都是一件很轻松的事情,但是,对我来说这很容易,所以,我并不是提这条建议的最佳人选,但是在指导其他人之后,我认为最好的方法还是做到这一点,努力的挤出时间定期做一些技术写作。另外顺便说一句,阅读可以提高写作水平。
顺便再提一句,你写作的时候,多使用图表和图像,人们在视觉上吸收和理解概念方面比纯文字要好很多。
少说话,多做事
所有的这些思考、阅读和交流都很棒,但是你还需要采取行动来支持它。这才是所有想法实现的基础,这也是帮助你赢得众人的尊重,并成为领导者的关键。
去做别人不想做的项目与重构,努力和团队一起组织尝试新的实践,升级没有人要去升级的库,构建自动化脚本减少团队的工作量,采取主动的工作形式,可以展示你的奉献精神并引起别人的注意。
我认为任何一种成功都是运气、努力、挫折和进步的结合,虽然在某种程度上我意识到我喜欢架构师这个角色,但我并没有什么宏伟的计划,它就像是水到渠成的产物一般。最后,助你好运,愿你的生活充满转变、学习和成就感。
关于作者
WeWork的首席工程师。曾就职于Castlight Health,Symantec,Sun Microsystems,Sybase等
本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.sosokankan.com/article/1800123.html