2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

区块链工程师招聘进行时,我该如何入行?

  • 2020-12-01
  • 本文字数:2643 字

    阅读完需:约 9 分钟

区块链工程师招聘进行时,我该如何入行?

近日,中国人民银行数字货币研究所发布了一则“未来可期”招聘信息,这也是近半年以来数研所第三次对外公开招聘相关人才,岗位包括但不限于“前端研发工程师”、“大数据工程师”、“区块链工程师”等,工作地点则分布在深圳、北京、苏州三地。


此外,中国银联总公司正在招聘区块链研究方向的中级工程师和高级工程师。招聘信息显示,中级工程师的职责包括负责区块链场景落地的技术实施,高级工程师的职责包括负责区块链各业务产品的系统分析和规划,承担系统架构设计、核心功能代码编写等相关工作。


区块链开发人才已经成为行业发展的重要支撑。无论您之前已经编写过代码,还是拥有多年的软件开发经验,要成长为区块链开发者都需要一系列新的技能。但如果不熟悉这个行业,大家恐怕很难明确其中的具体技能组合。


为了解决这个问题,本文希望为大家介绍一点普适性的区块链技能需求。


从零开始


对于几乎或者完全没有编码经验的朋友,请先从以下技能开始,之后再进行更高级的学习。如果您已经熟悉编码知识,请跳过本节。


命令行


“命令行界面以文本行的形式,处理指向计算机程序的命令。” — 维基百科


适应命令行可以说是新晋软件开发人员的第一堂课。刚开始时,命令行看起来呆头呆脑、没什么精神,但只要习惯之后,您绝对会觉得离不开它。


最好的起点自然是在 Unix 或者 Linux 命令行界面上学习。大多数开发活动都是在 Unix 类系统上完成的。如果您使用的是 Mac,那么内置的终端或者说 CLI 就是基于 Unix,而且相当强大。如果只有 Windows 计算机,请尝试 Cygwin Linux 仿真器。


这里的重点,在于学习如何使用命令,从以点击界面与计算机交互的习惯中解放出来。


相关链接:https://www.cygwin.com/


Javascript


“JavaScript 是一种脚本或编程语言,允许您在网页上实现复杂的功能——每当网页需要完成静态呈现之外的操作,包括及时显示内容更新、交互式地图、动画 2D/3D 图形、滚动视频点唱机等,那么其中很可能要涉及到 JavaScript。” —Mozilla


JavaScript 主要是一种互联网语言。目前每一款网络浏览器都支持 JS,而且大多数网页上或多或少运行着一部分 JS 代码。它是一种客户端脚本语言,因此代码会被发磅至执行计算的客户端(网络浏览器)。这就与使用 PHP 在服务器端完成计算,再将处理完成后的结果标记发送至客户端完全相反。


这里向初学者、中级以及高级用户推荐W3Schools 上的精彩教程


相关链接https://www.w3schools.com/js/


NodeJS


“Node.js 是一套开源、跨平台、JavaScript 运行时环境,能够在网络浏览器之外执行 JavaScript 代码。” — 维基百科


NodeJS 使开发人员能够使用 JavaScript 编写服务器端应用程序。NodeJS 能够承载广泛的框架,帮助用户在 Node 之上创建及部署任何形式的应用程序。目前有很多区块链框架都建立在 NodeJS 之上。


区块链基础


“从最简单的意义上讲,区块链是一系列带有时间戳且不可变的数据记录。这些记录由不属于任何单一实体的计算机集群负责管理。这些数据块(即区块)均使用加密原理(即链)进行保护并相互绑定。” — Blockgeeks.com


区块链是什么?它是如何工作的?有哪些共识机制?节点是什么?智能合约又是什么?了解这些问题的基本答案,对于开发具有实用意义的区块链应用程序至关重要。Blockgeeks.com 就是一个绝佳平台,您可以在这里随意开发任何层级的学习项目,强烈建议大家亲自尝试。


相关链接https://courses.blockgeeks.com/?ref=637


区块链专项技能


到这里,您应该是拥有一定的编码经验,但不知道从哪里开始。下面来看在区块链上开发解决方案所需要的基础技能,而且主要针对以太坊生态系统。


Solidity


“Solidity 是一种用于编写智能合约的面向对象的编程语言。它用于在各种区块链平台上实施智能合约,其中最著名的当数以太坊。” — 维基百科


如果您已经拥有使用 JavaScript、C++或者其他现代面向对象语言的经验,那么肯定会发现 Solidity 的语法并不难掌握,因为它的设计受到这些语言的巨大影响。


智能合约具有不可变性。所谓不可变对象,是指在创建之后无法对其状态做出修改的对象。一旦智能合约部署完成,您将无法对其更改,也无法通过新版本逐步改进您的智能合约。大家可以将智能合约理解为需要经受住时间考验的“纪念碑”。


智能合约中存放有以太币,就像其他以太坊地址(钱包)一样。它也可以向其他地址发送和接收以太币。通过创建智能合约,您相当于在网络上部署一套规则,任何选择使用的人都自愿表示遵守。这是一种强大的功能,因为稍有不慎引发错误,合约内容就可能被黑客所利用。但是,由于参与智能合约的每个人都需要同意条款(即代码或法典),所以这里的“黑客”可能并不准确。总之,即使智能合约遭到技术破解,恶意人士也必须遵守规则——只是规则本身存在问题。


以太坊基金会提供的说明文档全面解释了如何使用 Solidity 语言编写智能合约。


相关链接https://solidity.readthedocs.io/en/v0.6.4/


Web3.js


“web3.js 是一组库,这些库使您可以使用 HTTP 或 IPC 连接与本地或远程以太坊节点进行交互。” —Web3.js说明文档


Web3 弥合了传统内部世界与去中心化世界之间的鸿沟。我们通常使用 Web3 通过Metamask等浏览器扩展将以太坊区块链接入客户端浏览器。遗憾的是,最常见的网络浏览器并不支持开箱即用 Web3,因此必须配合 Metamask 方可实现。


Web3.js 库可被轻松安装到任何 JavaScript 项目当中,并允许您的 DApp 向用户定义的区块链发送信息或从中获取信息。本地、Testnet 以及以太坊主网都可以通过 Metamask 与 web3.js 进行连接。


这里是 web3.js 提供的一些常用的实用性功能。Web3 同样拥有 Python实现。


相关链接:https://web3js.readthedocs.io/en/v1.2.6/


Truffle Suite


“Truffle Suite 使开发人员以尽可能舒适的方式完成从构思到 DApp 的开发流程。” —Truffle Suite


Truffle 是一套框架,能够促进全栈去中心化应用程序的开发、测试与部署。Truffle 当中包含不少精彩的功能。


首先是框架本身。它提供一个出色的开发环境,您可以在几分钟内编写并部署智能合约,其测试框架同样易于使用,可以选择 Solidity 与 JavaScript 来测试您的智能合约,并可以轻松通过命令行将合约部署到任何测试网络或者主网络当中。


接下来是本地 RPC 区块链,即Ganache。Ganache 允许您通过两次单击,快速在开发环境中启动本地区块链,这就大大降低了在计算机上开发 DApp 的难度。


这里推荐大家阅读说明文档,您将透彻了解应如何根据当前环境调整配置,并按照教程自行开发、测试并部署区块链解决方案。


相关链接https://www.trufflesuite.com/


延伸阅读:


https://medium.com/swlh/the-skills-you-need-to-be-a-blockchain-developer-9c8f6d3372c8


2020-12-01 14:572427

评论

发布
暂无评论
发现更多内容

CMP是什么意思?谁能解释下?

行云管家

cmp 多云管理平台 多云管理 云管平台

DTCC 干货分享:Real Time DaaS - 面向TP+AP业务的数据平台架构

tapdata

OpenMLDB Weekly Update(2021.9.12-2021.9.19)

第四范式开发者社区

人工智能 机器学习 开源技术 OpenMLDB

现成秒合约交易APP系统开发模板

架构3期模块一作业

渐行渐远

架构实战营

人脸识别主板能应用哪些产品设备?

双赞工控

安卓主板 工控主板 主板定制

OpenMLDB Weekly Update(2021.8.30-2021.9.6)

第四范式开发者社区

机器学习 数据库 第四范式 开源技术 OpenMLDB

一周信创舆情观察(10.11~10.17)

统小信uos

OpenMLDB Weekly Update(2021.9.27-2021.10.4)

第四范式开发者社区

机器学习 数据库 开源 第四范式 OpenMLDB

OpenMLDB Weekly Update(2021.10.11-2021.10.18)

第四范式开发者社区

第四范式 开源技术 OpenMLDB 机器学习数据库

OpenMLDB: 一文了解窗口倾斜优化技术细节

第四范式开发者社区

机器学习 数据库 开源技术 OpenMLDB

Defi系统开发搭建(案例)

SpringBoot 自动装配

黄敏

从零到熟悉,带你掌握Python len() 函数的使用

华为云开发者联盟

Python 数据结构 函数 内置函数 len()

模块一

迪马

【云管平台】多云混合云管理平台用哪个好?

行云管家

公有云 私有云 混合云 多云 云管理

分布式事务开山之作,带你深入理解分布式事务

华章IT

有了这个告警系统,DBA提前预警不是难题

华为云开发者联盟

数据库 监控 GaussDB(DWS) 智能监控 告警系统

OpenMLDB Weekly Update(2021.9.5-2021.9.12)

第四范式开发者社区

机器学习 数据库 第四范式 开源技术 OpenMLDB

SimpleDateFormat线程不安全了?这里有5种解决方案

华为云开发者联盟

安全 线程 变量 SimpleDateFormat

官方线索|金山集团“程风破浪,码动未来”

xcbeyond

1024我在现场

开发者测试你必须知道的7件事

华为云开发者联盟

软件 开发者 测试 代码 测试工程师

ARouter 在多 module 项目中实战

逆锋起笔

android arouter 路由框架 阿里arouter

OpenMLDB:一文了解带参数查询语句(paramterized query statement) 的细节

第四范式开发者社区

机器学习 数据库 GitHub 开源 OpenMLDB

阿里巴巴10个顶级开源项目,确定不来看看?

Java 阿里巴巴 开源 面试 项目

现成DeFi交易所系统源码开发

永续合约APP系统开发简介(搭建)

OpenMLDB Weekly Update(2021.9.19-2021.9.26)

第四范式开发者社区

机器学习 数据库 开源技术 OpenMLDB

OpenMLDB Weekly Update(2021.10.4-2021.10.11)

第四范式开发者社区

第四范式 开源技术 OpenMLDB 机器学习数据库

百度商业托管页系统高可用建设方法和实践

百度Geek说

架构 高可用

区块链工程师招聘进行时,我该如何入行?_区块链_Alex Roan_InfoQ精选文章