<audio id="audio" title="第34讲 | 从业区块链需要了解什么？" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/90/66/90b1957258d55afa828cafcb1f362166.mp3"></audio>

今天，我们来到了最后一个专题：如何从业区块链。经过了前面33篇文章的洗礼，相信你对区块链应该有了一个比较全面的了解了。

在今天的文章中，我会从两个角度出发，先从行业的角度来讲讲区块链行业现状以及人才需求，再从人才角度来谈谈从业区块链需要具备哪些基础技能。

## 行业现状

那么行业现状与实际的人才需求是怎样的呢？我们一起来看看。目前区块链领域的人才需求大致可以分为以下几种。

1. 根据客户的需求，搭建基于DLT技术的分布式账本应用，在DLT上实现客户要求的业务需求，这类与传统解决方案型的人才十分接近。
1. 公司已经具有了某些行业的资深经验，目标是通过技术选型选择某个公链，在此公链上开发基于区块链的应用。目前游戏与社交类的项目比较成熟，游戏类有以太养猫、LeBloc等，内容社区类有Steemit、币问、币乎等项目。这一类的特点是可以很好地与现有技术结合，在业务层面利用区块链的资产数字化特性，商业潜力大，技术发展空间也很大，进入门槛较低，风险较低。
1. 公司获得融资或者在海外发起ICO，目标是研发新一代公链，这一类是为了通过改进现有的区块链技术不足而创建的项目，技术发展空间最大，进入门槛最高，风险也最高。
1. 区块链生态基础设施类。数字资产交易平台、数字资产管理、移动钱包、硬件冷钱包、数字金融媒体、区块链咨询、矿池运营等都属于此类，这些都是目前商业利润最高的区块链产业，技术发展空间较大，进入门槛较低，风险也较低。

目前区块链的人才供应需求远远不足以支撑如此庞大的市场。换句话说就是人才极度稀缺，人才的稀缺与过高的估值形成鲜明对比，这也就是泡沫的形成。

与上面的分类相关的，是行业相应需求的编程语言。

第1类是DLT技术，由于超级账本的流行，DLT基本以Golang为主，但也会涉及应用可视化交互的问题，毕竟交付给客户的时候，指望客户使用命令行是不现实的，所以不可避免地需要具备一些前端技术。

第2类是公链应用，由于智能合约的存在，使用区块链的门槛大大降低，最流行的以太坊智能合约是以类JavaScript的语言Solidity编写的，目前也出现了不限定编程语言的智能合约区块链。实际上，我认为Solidity比其他完全开放式的智能合约要安全许多，所以建议你如果打算学习智能合约，还是最好从以太坊入手。

第3类是研发自己的公链。目前主流的是静态编译型语言，以C++和Golang最为常见，也有用Rust、Java、C#实现的公链，SPV轻钱包型多使用Java、Python、JavaScript实现。可以说公链研发几乎都涉及了主流编程语言。

第4类是在商业上与区块链最为紧密，但是技术上却是最不紧密的，整体技术栈与传统互联网网络技术差别不大，例如搭建一个区块链财经类网站，甚至不需要任何区块链技术，但是对内容运营有较高要求。

## 人才现状

我们分析了区块链行业的现状，接下来我们看看现有的人才构成。我们如果把现在互联网的人才划分一下，大致分为5个类别：

1. 技术决策者，这类主要指CTO、技术总监、技术专家等；
1. 代码生产者和维护者，也就是广大IT从业者、开发工程师；
1. 需求产生和归纳者，产品经理、需求分析师；
1. 交互与可视化，前端工程师、UI/UE与视觉设计等；
1. 产品运营，实际与用户接触，吸纳和维持用户。

目前的区块链产业基本以数字货币交易、数字资产管理、资讯类App为主，细分来说就是移动App钱包、炒币用行情工具、区块链资讯类App，以及一些简单的区块链App应用，对人才的需求大致符合互联网产业的需求，也就是上述5类人才都是需要吸纳的。

我们可以发现区块链产品的模式还比较单一，处于非常早期的状态。但就算是这些单一的App应用，从业人员也是不足的。

我在公司的实际运营过程中，发现有几种人才十分稀缺。

1. 理解传统金融交易，同时又了解互联网产品的人才。传统金融交易涉及的往往是券商或者证券交易所，区块链是新兴行业，所以具有跨界知识的综合性人才比较受欢迎。
1. 理解社区建设和互联网产品运营，又同时了解数字货币的人才。这一类最缺的其实是内容运营，无论是原创内容还是编辑内容，都需要扎实的区块链知识作为基础。这类人群招聘中很少遇到，一般公司都选择自己培养。
1. 了解大型开源项目建设，同时乐于和社区沟通分享的顶尖技术人才。不少顶尖技术人不擅于与人沟通，这也导致参与社区型项目过程中，其他开发者对其误解甚至产生偏见。

我在实际招聘工作中，经常会遇到不同的候选人，针对他们的盲区，我总结了以下经验。

第一点是候选人的完全匹配度非常不高，但某一技能模块匹配度又很高，直接选用的话要考虑培养成本，不选用又感觉可惜，招聘者经常处在两难的选择。

例如应聘者来自传统交易领域，但是完全不懂区块链，也不了解有哪些知名可靠的数字货币交易平台，那么必然就需要一个较长的培训过程。所以我建议各位求职者业余时间炒炒币感受一下，并且购买几本区块链相关书籍作为入门铺垫。

第二点是思维转变。很多求职者抱着跟风的心态过来尝试，由于区块链大热，所以就来试试。我认为这是好的开始，毕竟勇敢迈出第一步很重要。

但是在实际面试过程中，这部分求职者由于对经济和金融理解有些浅薄，有一些错误的认识，这类人才即使进入区块链行业不久也会被吓跑。区块链行业早期收益高，风险也高，大家一定要认清自己的风险偏好再作打算。

第三点求职者本身抗拒数字货币，认为数字货币就是泡沫，他们认为区块链技术才是未来，但是当我问为什么区块链技术是未来的时候，也答不出个所以然。这里有可能是对数字货币巨大风险的恐惧，也有可能是不愿意接触了解产生的偏见。数字货币作为区块链的第一大应用，客观接受是前提。

第四点是求职者以为投递区块链岗位，需要非常深的区块链理解和技术储备。但这部分求职者往往是仅通过网络上几篇文章的阅读，就过来面试区块链岗位了。

其实作为招聘者，我一般不问区块链技术，也不会问共识算法，我一般还是问编程语言的基础知识，例如TCP/IP协议，C++的右值引用，所以即使不懂区块链也没有关系，区块链也是构建在互联网之上的，扎实的编程基础才决定了后续学习效果和成长的速度。

这里，我列出了公司实际的一些岗位需求，给你参考。

1. 公链核心开发者：编程语言基本功非常扎实，代码风格容易阅读，精通中英文文档撰写，英语口语流畅，了解区块链技术基础即可。
1. 钱包App以及其他基础设施开发者：了解主流语言开发包，了解移动互联网产品的开发和上架过程，了解区块链私钥管理即可。
1. 社区运营：互联网产品社区运营，对数字货币和开源社区抱有热情，熟悉常见线上线下运营手段。
1. 钱包App产品运营：互联网产品运营，这类与理财类App比较接近。
1. 数字资产交易平台：这类人才需求最大，基本上会涵盖上述5种人才储备。
1. 区块链研究：这类分为行业战略研究、技术研究两类，前者类似咨询行业，后者主要是CTO、架构师等高端技术社区、开源技术社区推进。

## 明确与制定自己的发展方向

其实无论是区块链还是前段时间大热的人工智能，是做技术还是做产品，我们首先要找准的都是自己的方向。

不同的人从业的出发点也不同，我曾经面试过一位C++技术大牛，他与C++之父共事过两年，是十分聪颖、沟通能力良好的一位工程师，当我力邀他加入我们公司的时候，他说道：“我要的不是某个火热的行业，只是希望有一份稳定且风险不高的工作，继续自己的兴趣技术研究。”

如果求职者看哪一行火热就想从业，这种随波逐流的心态可能会导致什么也做不好。所以我十分建议你先要弄清楚自己的职业喜好，如果有条件，你可以做一个职业和性格测试，找准自己未来的定位，争取让自己的性格与自己的职业摩擦最小。

区块链是一个新兴的行业，可选的余地大并不意味着对从业者没有要求。恰恰相反，这样的行业恰恰需要从业者有扎实的编程语言基础，相对完备的计算机和网络理论知识结构。

毕竟无论是人工智能还是区块链，如果你具备了扎实的基础，在上手学习的过程中，也会快人一步。

不过仅仅拥有领域知识是不够的，目前行业的发展都呈现出跨界跨领域的趋势，所以你也不必局限在自己的领域内，适当地扩充其他知识也是十分有助于职业发展的。

## 总结

今天我分别从行业需求和人才分布两个角度出发，谈及了区块链行业从业话题。其实无论什么样的工程师想入门区块链，都需要具备扎实的编程语言知识、计算机和网络知识，基本功扎实这个标准，放到任何一个行业都是一样的。

总结起来，你首先要找准自己的职业方向，其次是具备扎实的领域基础知识，最后是拓宽自己的知识面，想必这样从业区块链也会信心十足，早日实现财富和技术自由。

那么今天的问题，你认为从业区块链行业最重要的知识点是什么呢？你可以给我留言，我们一起讨论。感谢你的收听，我们下次再见。


