写点什么

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

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

评论

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

学生管理系统(2)

5月月更

使用 Amazon Cloud WAN 构建您的全球网络

云物互联

云计算 AWS Cloud WAN

反向代理 413 Request Entity Too Large 问题

HoneyMoose

【刷题第八天】11. 盛最多水的容器

白日梦

5月月更

Graylog 中文手册 常用功能和问题整理

爱好编程进阶

Java 程序员 后端开发

Java市场饱和了?为什么都这么说?

爱好编程进阶

Java 程序员 后端开发

Druid连接池源码阅读04

石小天

CDH5部署三部曲之二:部署和设置

爱好编程进阶

Java 程序员 后端开发

Java String类型和BigDecimal类型之间的转化及BigDecimal类型的介绍

爱好编程进阶

Java 程序员 后端开发

Java对内存空间的分配与回收机制

爱好编程进阶

Java 程序员 后端开发

设计模式之原型模式

乌龟哥哥

5月月更

Docker下的OpenResty三部曲之三:OpenResty加Tomcat的服务

程序员欣宸

Kubernetes openresty 5月月更

如何备份 WordPress 数据库

海拥(haiyong.site)

WordPress 5月月更

Cocos Creator学习の有限状态机

空城机

Cocos 5月月更

网站开发进阶(六十三)详解CSS3中的calc()

No Silver Bullet

css3 5月月更 calc()

CRMEB 知识付费模版消息修改教程

CRMEB

【LeetCode】一次编辑Java题解

Albert

LeetCode 5月月更

前缀和算法

工程师日月

算法 5月月更

在Flutter中使用WillPopScope

坚果

5月月更

【C 语言】指针 Two 之[定义指针变量、有效声明指针、使用指针、指针变量初始化]

謓泽

5月月更

2021-12-15【Codeforces Round #760 (Div

爱好编程进阶

Java 程序员 后端开发

[数据分析实践]-音频分析-BirdCLE-2

浩波的笔记

人工智能 机器学习 数据分析

Java stream流用法总结

爱好编程进阶

Java 程序员 后端开发

JAVA生成二维码图片和解析二维码图片内容代码实例

爱好编程进阶

Java 程序员 后端开发

基于SVN的CICD调研方案 _

ZuccRoger

5月月更

看 AWS 如何通过 Nitro System 构建竞争优势

云物互联

云计算 AWS DPU 硬件虚拟化技术

一份让面试官满意的简历究竟要做到什么

宇宙之一粟

简历模板 简历 5月月更

druid 源码阅读 4——走一个单测看sql运行

张大彪

数据库连接池 -Druid 源码学习(四)

wjchenge

Druid 数据库连接池

FLV封装格式

Loken

音视频 5月月更

为什么花大本钱培训后,研发团队的表现还是很差?

高山

培训 CMMI 培训效果

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