产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

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

  • 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:572140

评论

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

一篇文章带你彻底了解MySQL各种约束

若尘

MySQL 数据库 约束 4月日更

Nginx新增模块more_clear_headers问题记录

风翱

nginx 4月日更

安卓开发基础面试题,分享一点面试小经验,含BATJM大厂

欢喜学安卓

android 程序员 面试 移动开发

PI的一种简写。

山@支

声网 Agora 初体验

若尘

声网 Agora

阿里P8架构师分享私用Java学习资料(含视频和项目源码以及面试题)

北游学Java

Java 数据库 分布式 微服务

M2-task

Focused

Markdown使用语法

Geek_6370d5

markdown语法

Dubbo 学习笔记(二) Spring Boot 整合 Dubbo

U2647

Spring Boot dubbo 4月日更

机器学习水水笔记之——世界是积木吗?

Nydia

签约计划

【签约计划】调查采访能力考核成绩公布

InfoQ写作社区官方

签约计划 热门活动

架构实战营 - 模块 2- 作业

泄矢的呼啦圈

架构实战营

一文带你了解如何排查内存泄漏导致的页面卡顿现象

零一

chrome 大前端 浏览器 内存泄露 问题处理

Linux rm 命令

一个大红包

4月日更

再谈日更公众号

彭宏豪95

写作 感悟 微信公众号 4月日更

ffmpeg完美实现解封装操作!

txp

音视频

面向小白使用Git 的手册

程序员海军

git

推荐18个 Vue常用组件库

程序员海军

Vue 组件库

Prometheus官方文档Querying[三]function

卓丁

JavaScript 中的执行上下文和执行栈 的理解

程序员海军

JavaScript 大前端 上下文 执行栈

园区网的网关部署在接入层还是汇聚层 面试官与求职者之间谈话

艺博东

网关 交换机 网络配置

手撕83K STAR的Axios设计思想,并进行能力增强

梁龙先森

源码分析 大前端 axios

ARTS - week 5

steve_lee

Vuex整洁架构之道

devpoint

vuex vue架构 mapGetters mapState mapActions

ARTS - week 6

steve_lee

继续探究:一文理清JVM和GC(下)

比伯

Java 架构 程序人生 计算机 技术宅

安卓开发实战讲解!从新手到Flutter架构师,一篇就够!快来收藏!

欢喜学安卓

android 程序员 面试 移动开发

Java检查异常、非检查异常、运行时异常、非运行时异常的区别

Sakura

4月日更

如何高效率的工作

程序员海军

工作效率 提升效率

自定义Hadoop的输入格式

小舰

4月日更

HBase的rowKey设计技巧

五分钟学大数据

HBase 4月日更

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