热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TechHQ首席架构师浓缩1000小时的项目经验总结出5大技能点,架构师必看!

来源|Hackernoon作者|AlbertoCuesta(Caada)编译|火火酱责编|Carol出品|区块链大本营(blockchai

640?wx_fmt=png

来源 | Hackernoon

作者 | Alberto Cuesta (Cañada)

编译 | 火火酱

责编 | Carol

出品 | 区块链大本营(blockchain_camp)

     

"成功不是结局,失败也不是灾难:重要的是要有继续下去的勇气。"

——温斯顿 丘吉尔

自从我开始担任TechHQ的首席架构师以来,我已经设计了至少十几个区块链应用程序了。我入职后的第一项任务是写一篇关于作为架构师如何开始学习区块链技术的文章。

到目前为止,这仍然是我写过的最受欢迎的文章,但现在是时候写它的第二部分了。之前的文章浓缩了80个小时的经验,而这一篇则浓缩了超过1000小时的经验。

(参考链接:https://hackernoon.com/becoming-a-blockchain-architect-in-10-steps-b5945701e9cd)

继续读下去,你就会得到这个问题的答案:一个项目从概念到实施阶段,将商业理念转化为技术解决方案时,最有用的技能是什么?

作为一名区块链架构师,我到底在做什么?

事实上,有许多不同类型的软件架构角色,但我会对我的角色进行这样的描述: 

“我是架于商业和技术之间的桥梁。我通过和业务部门沟通来了解他们的需求,然后通过和技术部门沟通来了解这些需求是否可行。之后,我再向业务部门提供使用可行技术的建议,并通过不断协商,最终找到双方都可接受的解决方案。在实施过程中,随着新挑战的出现,我会不断改进这一想法。”

有人认为架构师的定义特征是他们很了解技术,并起到一定的领导作用。了解很多有关技术或业务的知识确实是有帮助的,但架构师真正做的是理解和沟通。我的解决方案设计过程是这样的:

  1. 向双方专家学习;

  2. 向对方的利益相关者解释你学到的内容;

  3. 提出解决方案;

  4. 返回第1步;

         

640?wx_fmt=png

作为TechHQ的架构师,我碰巧了解很多有关区块链的知识,但是如果具体到每个项目来说,我还是要学习一些新的概念。比如这个月我了解了联合国开发计划署如何向贫困人口提供服务,以及如何进行原子交换。

还是那句话:了解很多有关技术或业务的知识确实是会有帮助的,但架构师真正做的是理解和沟通。

这种不断学习和提出建议的过程也意味着大多数时候都是错误的。只有在多次错误之后,你才能学到足够多的知识,并提出一个真正合适的解决方案。

如果你想成为一名成功的架构师,你必须专注于学习广泛的学科,了解别人,并让别人了解你。

过去的一年里我学到了什么?

在过去的一年里,我学到了很多关于区块链的知识,同时我也学会了如何在一个新的领域里成为一名更好的架构师。

640?wx_fmt=jpeg

如果有一天我决定成为一名机器学习架构师,我也会遵循同样的道路。我会重点关注五个方面:

  1. 不断地迎接新挑战;

  2. 主动接触各种技术专家;

  3. 获取近期业务所需的实践技术知识;

  4. 从每个项目中抽象提取高级模型;

  5. 记录下你学到的一切;

1、不断地迎接新挑战

或许你不一定经常有这样的机会,但我却时常要面对这样的状况。我在TechHQ的合作伙伴总忙于各种会议和企业圈,这就意味着我要不断充实、具体化自己的项目。

从最初繁琐复杂的“这些人想要建立他们自己的区块链平台和人工智能建模的共识算法”明确到“他们想要建立一个拥有自己加密货币的线上食品市场”。

640?wx_fmt=png

其中项目中很多都没有经过概念阶段,但所有的项目对我来说都是有用的。我很看重生产力,总是把自己完成每项任务的时间记录下来。在第一个项目中我需要花费24个小时才能完成的工作在几个月后只需要4个小时就能完成。

我需要处理的材料主要是一些带有图表的文本,有时还需要代码示例。文本范围从学术解决方案描述到营销宣言都有。同时,我常常会涉及新的领域,但大多数时候所有人都是要离开自己的圈子的,即使是Vitalik。有才华的人不愿一直待在自己的舒适圈。

这些都是我在训练中遇到的最棒的事情:

  1. 我了解了一个业务用例是否可以使用区块链来完成;

  2. 我了解了怎样的区块链技术是可以成熟运作的,怎样的是不能运作的;

  3. 我学会了辨别模型并用它们来快速提出解决方案;

  4. 我学会了在写作中什么时候要注重说服力,什么时候要注重准确性;

  5. 我认识了很多人,可以向他们请教我没学过的东西;

如果你很幸运地遇到了很多挑战,那么你应该欣然接受。如果你的工作是负责单一产品,那你需要付出额外的努力并设法吸收额外的知识。

640?wx_fmt=png

时刻保持学习的你

2、主动接触各种技术专家

当我加入TechHQ时,我意识到区块链环境还不够成熟,以至于我能够在几个月内就达到学习曲线的顶端。虽然这没什么错,但我发现要完全了解有关区块链的一切知识是不可能的。在任何项目中,都需要有人了解以下这些事情:       

  • 区块链基础设施:我开始学习很多有关区块链基础设施的知识。比特币、Ethereum、Hyperledger、Quorum、Corda以及很多其他项目都属于这个领域。在去年的大部分时间里,我都在做有关Ethereum或Quorum的工作,偶尔也有Hyperledger的项目。现在我认为,对于其他平台有个大致的了解并且在基础设施层面有人可以交流就足够了。接下来的几年会发生很多事情,因此你需要为最终的重大发展做好准备。

  • 区块链开发工具:在此,我学到了如何在基础层面上使用metamask,  ganache和truffle工作,仅此而已。在一个项目中,你需要的远不止这些,我很感激我有Bernardo Vieira ,他好像知道一切都是如何运作的,而且能一直提出很酷的东西(solviz, soldoc)。如果你要编码,你需要以某种方式填补这一空白,因为工具的变化速度很快,所以这并不容易。

  • 智能合约开发:我学会了编写智能合约,这使我对区块链机会和发展模型有了更深的了解。软件开发比开发工具或基础设施更接近于业务方面,因此如果你只能专攻一个,那我会推荐这个。

  • 其他技术领域:云架构、网络、DevOps、测试、前端开发、用户体验、平面设计。有时你会在这方面需要一些帮助,但大多数时候,你最好让其他人来做这些必须的工作。你要专注于你能带来价值的地方。

  • 其他项目角色:如果你(和我一样)在项目管理或团队领导方面很差劲,那就让别人来担任这些角色吧。创业公司总是资源紧张,因为这些角色与架构师的角色很接近,所以你会发现自己常常会被拉去做这些工作。如果我必须要担任一个非技术角色,我总是会选择业务分析师,因为这能帮助我更好地了解业务。

3、获取实践知识

6个月前,Bernardo让我帮他解决一些数学问题,并花了几个小时为我提供了一个区块链开发环境。当我学习在专业环境中使用git时,他还会花更长的时间来纠正我的错误。在我学习solidity时,我最终编写了一个定点数学库。

       640?wx_fmt=png仍不是很确定。

智能合约开发的一个特点就是它会迫使你生成简单代码,至少在Ethereum里是这样的。在大多数区块链解决方案中,智能合约会比代码的十分之一还要少。我发现这使得编写智能合约比编写普通软件还要容易,因为一旦编写了一个小核心,其余部分就会被转移到前端。

我很适合做架构师,因为我可以编写紧凑的概念论证来实现解决方案的商业理念,并且在生产中基本保持不变。编写代码非常耗时,所以我只在有时间和有项目需要的时候才去做。作为一名架构师,你的时薪很高,你需要为其提供价值。然而,编码有时是显示你对技术方面意义的最佳方式。

智能合约开发使我对staking patterns(权益模型)、tokenization(令牌化)、货币兑换、支付分配和访问控制有了更深入的了解,当我要为商业想法提出解决方案时,这些模型会一次又一次地出现。

4、抽象提取一切的高级模型

当我为上一个雇主设计解决方案架构的时候,我并没过多地考虑设计模型。我大部分时间都花在了协商如何在有众多利益冲突的情况下从A处获取数据到B处。我们需要生成模型,但是上下两个项目之间几乎没有什么是可以重复利用的。

在创建新产品时,模型的用途就显现出来了。“你的智能电表公司想要用区块链做什么呢?物联网数据收集、数据注册表、支付流程和控制模块就可以让你根据支付状态来打开和关闭电表。我们为X、Y和Z公司也做了类似的事情。”“你想要一个加密食品市场吗?你需要自己的加密货币,但你也有分散式市场和集中式市场两种选择。让我们来看看!”

       640?wx_fmt=jpeg我用“模块”做区块链。

将解决方案分解为通用模型可以让你快速思考特定用例的技术机会是什么,并指导你与业务所有者的讨论。这对架构师来说非常重要,你需要用业务部门可以理解的方法来向他们解释你提供的解决方案,将其分解开来讲解对每个人来说都更轻松。

5、记录下你学到的一切

我曾经读过架构师的职位描述,其中提到需要展现思想领导力,当时我完全不懂那是什么意思。我也一直想写点东西,但也没什么好说的。令人惊讶的是,这两件事情结合在一起竟成为我工作的支柱。

       640?wx_fmt=jpeg用这个东西你要怎么做Ctrl-C Ctrl-V呢?

作为一名架构师,你会被视为一名领导者,但并不是在项目刚开始的时候。在最初的几轮协商中,你会从业务和技术方面学习,以便能够提出解决方案。当这几轮协商结束,但仍然没有满足要求时,你需要成为领导者,帮助利益相关者们达成妥协。

通过经常写作的方式,不仅可以完善自己的思维和论点,而且写写文章也能帮你了解自己在说什么。你不希望人们盲目地跟随你,你也肯定不希望用明知别人都会闭口不谈的点,但是第一印象很重要,通常你写的东西往往就是决定了第一印象。

作为一名架构师,学习写作的另一个好处是,我所有的项目都是以书面形式交付的。中间可能有编码,有很多很多的对话,但在只有文字会被作为最终稿带走。它被浓缩成两页纸写进白皮书。我现在写了很多了,这也变得越来越容易。这绝对是今天提到的最重要技能之一。

总结

作为一家极具发展潜力的公司的架构师,我设计过几十个有着不同细节的区块链解决方案。我花了80个小时才感觉自己对区块链有了些想法并开始设计解决方案。在接下来的1000个小时,学习速度只会更快。

如果您想了解如何成为更好的区块链架构师,我建议您执行以下操作:

1、要确保自己有稳定且源源不断的项目。每个项目都是一个学习的机会。付费客户、开元合作和你自己的项目都是可以的。尽量不要像我之前那样一整年只完成了3个项目。

2、和比你更有能力的人在一起。如果你是团队中的一员,或者是许多团队中的一员,那么你需要专攻架构并有更为广阔的世界观。

3、如果你想专攻某一方面,那就选智能合约开发而不是其他的技术技能。所以技能都很重要,但对于区块链来说,智能合约是最接近业务逻辑的技术组件,并且可能是在缩小业务计划和技术机会间差距方面最有用的。

4、试着去了解事物。我开发过 Tokenomics Framework,也创造过Design Patterns。每一天都尝试寻找新的方法来分类信息和你所做的事情。高瞻远瞩是非常必要的。

5、记录下你学到的东西,不管是否有人看。你要能根据不同的受众,在不同注册表中清楚地表达自己,要能用一页页的文字表达自己。

 

这是一段很赞的旅程。正在看这篇文章的你,有什么想法?欢迎留言告诉营长~

640?wx_fmt=gif

推荐阅读:

  • 以太坊新生合约总数骤减; 比特币大跌, 本周主链排名震荡 | 数据周榜

  • 别让分析公司卖了你:一文读懂比特币的私密性及隐私保护

  • 99年少年12岁时买下100枚比特币, 如今却将所有积蓄压在一个不知名的代币上,还放话将超越Libra!

  • Dropout、梯度消失/爆炸、Adam优化算法,神经网络优化算法看这一篇就够了

  • 只给测试集不给训练集,要怎么做自己的物体检测器?

  • 换脸软件 ZAO 刷屏:你在玩换脸,别人想要你的脸!

  • 华为鸿蒙为什么非要碰物联网?

  • mysql表设计要注意什么

猛戳"阅读原文"有惊喜哟smiley_12.png

老铁在看了吗??


推荐阅读
author-avatar
幻竞_847
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有