写点什么

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

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

评论

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

从 Multirepo 到 Monorepo 袋鼠云数栈前端研发效率提升探索之路

袋鼠云数栈

高效率团队为啥都会选择Jenkins?一文带您了解Jenkins

wljslmz

持续集成 jenkins 8月月更

重学网络系列之(Ping与网关)

自然

网络 8月月更

解析大型电商网站系统架构分层设计

穿过生命散发芬芳

网站架构 8月月更

Kyligence 助力重庆银行获 IDC FinTech 突破奖认可

Kyligence

数据分析 智能多维数据库

Spring Boot 运行的时候提示日志错误

HoneyMoose

Polkadot + DeFi | 透明公平、高效交易的去中心化金融未来可期

One Block Community

区块链 金融创新 defi 波卡生态

leetcode 242. Valid Anagram 有效的字母异位词(简单)

okokabcd

LeetCode 算法与数据结构

自此乾坤始:中国量子计算产业化的激变时刻

脑极体

Spring 项目启动错误提示 LoggingApplicationListener

HoneyMoose

聚焦“工业互联网+危化安全生产”,工智道入驻华为云严选商场

IT资讯搬运工

阿里云-建站小能手快速体验

凌云Cloud

阿里云 网站建设

重学网络系列之(TCP)

自然

网络 8月月更

负载均衡算法

源字节1号

程序员 软件开发

Flink+ice 实现可视化规则编排与配置(Demo)

waitmoon

flink 规则引擎使用 规则引擎 CEP 编排系统

规范代码命名,让你的代码阅读起来更愉悦!

岛上码农

flutter 前端 移动端开发 跨平台开发 8月月更

重学网络系列之(UDP)

自然

网络 8月月更

以PostgreSql为例,说明生产级别数据库安装要考虑哪些问题?

字母哥哥

数据库 postgresql Linux

极光与华为云携手共赢,共同助力中企出海

科技云未来

[极致用户体验] 教你个超牛逼的分割线CSS!

HullQin

CSS JavaScript html 前端 8月月更

Java集合之map集合

楠羽

#开源

React在实际开发中Variables与Prop的实战运用

恒山其若陋兮

8月月更

英特尔CEO帕特·基辛格:以先进计算和封装创新,满足数字时代算力需求

科技之家

InfoWorld文章丨将数据编排技术用于AI模型训练

Alluxio

人工智能 机器学习 数据平台 Alluxio 8月月更

华为云构建“好用的化工数字化”

IT资讯搬运工

英特尔联手产业伙伴打造绿色、低碳、智能数据中心

科技之家

探秘苹果、微软、谷歌操作系统视觉设计,原来…

鼎道智联

ios windows UI 操作系统 视觉交互

浅谈DingOS 设备端计算

鼎道智联

隐私安全 智能推荐 本地计算 服务推荐

【Arthas】初识Arthas,安装使用

石臻臻的杂货铺

Arthas 8月月更

如何给注册中心锦上添花?

捉虫大师

微服务 架构设计 注册中心 服务发现 8月月更

C/C++size(),sizeof(),length(),strlen()对比分析详解

CtrlX

c c++ 进阶 热门活动 8月月更

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