关键是,你要不要到这个“碗里”去。
近日,中国人民银行数字货币研究所发布了一则“未来可期”招聘信息,这也是近半年以来数研所第三次对外公开招聘相关人才,岗位包括但不限于“前端研发工程师”、“大数据工程师”、“区块链工程师”等,工作地点则分布在深圳、北京、苏州三地。
此外,中国银联总公司正在招聘区块链研究方向的中级工程师和高级工程师。招聘信息显示,中级工程师的职责包括负责区块链场景落地的技术实施,高级工程师的职责包括负责区块链各业务产品的系统分析和规划,承担系统架构设计、核心功能代码编写等相关工作。
区块链开发人才已经成为行业发展的重要支撑。无论您之前已经编写过代码,还是拥有多年的软件开发经验,要成长为区块链开发者都需要一系列新的技能。但如果不熟悉这个行业,大家恐怕很难明确其中的具体技能组合。
为了解决这个问题,本文希望为大家介绍一点普适性的区块链技能需求。
从零开始
对于几乎或者完全没有编码经验的朋友,请先从以下技能开始,之后再进行更高级的学习。如果您已经熟悉编码知识,请跳过本节。
工信部:加大人工智能、区块链、数字孪生等前沿技术研发力度:金色财经报道,国新办于4月20日下午3时举行新闻发布会,工业和信息化部总工程师、新闻发言人赵志国表示,下一步,工信部将重点做好三方面工作,做优做强信息通信业,为推动经济社会高质量发展提供坚实支撑。一是夯实数字设施底座。研究出台推动新型信息基础设施建设协调发展的政策措施,推进“宽带边疆”、千兆光网“追光行动”、中小城市云网强基建设、移动物联网高质量发展行动,一体化推进新型基础设施建设。二是加快技术产业创新。推动6G、光通信、量子通信等关键核心技术加速突破,加大人工智能、区块链、数字孪生等前沿技术研发力度。攻克一批“卡脖子”关键领域,提升产业链供应链韧性和安全水平。三是深化行业融合应用。大力推进5G、千兆光网等新一代信息通信技术在垂直行业、信息消费、社会民生等领域的融合应用,推动工业互联网规模应用,聚焦重点领域形成创新应用示范标杆,助力产业数字化转型。[2023/4/20 14:15:59]
命令行
“命令行界面以文本行的形式,处理指向计算机程序的命令。”—维基百科
美马萨诸塞州提交法案拟创立“区块链特别委员会”:金色财经报道,两项与加密相关的法案被提交给美国马萨诸塞州众议院,第一项涉及创立“区块链特别委员会”,第二项涉及“保护加密货币交易中的消费者”。据悉,名为“建立区块链和加密货币特别委员会的法案”由马萨诸塞州代表 Josh S. Cutler 和 Kate Lipper-Garabedian 提交,旨在马萨诸塞州众议院内成立一个指导小组来研究区块链技术,成员包括众议院议长、少数党领袖和参议院议长,主要研究政府使用区块链技术的可行性、有效性、可接受性和风险,数字资产和加密货币对马萨诸塞州收入的潜在影响等。(cryptoslate)[2023/1/23 11:27:16]
适应命令行可以说是新晋软件开发人员的第一堂课。刚开始时,命令行看起来呆头呆脑、没什么精神,但只要习惯之后,您绝对会觉得离不开它。
最好的起点自然是在Unix或者Linux命令行界面上学习。大多数开发活动都是在Unix类系统上完成的。如果您使用的是Mac,那么内置的终端或者说CLI就是基于Unix,而且相当强大。如果只有Windows计算机,请尝试CygwinLinux仿真器。
西班牙足球联赛Laliga将使用区块链技术对进球的足球进行认证:12月6日消息,西班牙顶级足球联赛 Laliga 宣布实施新系统,将使用区块链技术来追踪进球的足球。据悉,该系统将由第三方公司 Gol-Ball 提供,将对这些足球进行认证,使用户能够通过官方市场或抽奖活动购买这些足球。[2022/12/6 21:24:24]
这里的重点,在于学习如何使用命令,从以点击界面与计算机交互的习惯中解放出来。
相关链接:
https://www.cygwin.com/
Javascript
“JavaScript是一种脚本或编程语言,允许您在网页上实现复杂的功能——每当网页需要完成静态呈现之外的操作,包括及时显示内容更新、交互式地图、动画2D/3D图形、滚动视频点唱机等,那么其中很可能要涉及到JavaScript。”—Mozilla
JavaScript主要是一种互联网语言。目前每一款网络浏览器都支持JS,而且大多数网页上或多或少运行着一部分JS代码。它是一种客户端脚本语言,因此代码会被发磅至执行计算的客户端。这就与使用PHP在服务器端完成计算,再将处理完成后的结果标记发送至客户端完全相反。
姚前:区块链可以让公之于众的数据更加可信:8月6日下午两点,蚂蚁链、罗汉堂、新浪财经共同策划的《寻找区块链力量》系列访谈第一集正式开播,中国证监会科技监管局局长姚前与蚂蚁集团董事长井贤栋共话区块链如何赋能信任。
姚前表示,进入数字时代,如何超越纸质载体,立“数字“为据,如何打上数字手印,盖上数字公章,以防止数字的易更改,就需要全新的技术来予以保障。而对数字货币或高价值的数字资产而言,还有“双花“问题需要解决:100元的数字货币,即便被扣上了数字公章,比如由中央银行签署了数字签名,也有被拷贝重复花费的可能。
区块链技术就是数字时代解决上述一系列问题的综合性数字技术的统称。比如用对端的公钥加密,用本端的私钥签名,可以解决数据的保密问题、按手印的问题、确定交易对手方的问题;用哈希算法辅之以时间戳生成的序列号可以解决数据的唯一性问题,防止“双花“;用共识算法可以解决在没有可信中间人的情况下,一人记录数据、多人监督复核、不能随意造假的问题。(新浪财经)[2020/8/6]
这里向初学者、中级以及高级用户推荐W3Schools上的精彩教程。
声音 | 人民网董事长:三种眼光”读懂区块链的今天和明天:人民网董事长叶蓁蓁今日发文《三种眼光”读懂区块链的今天和明天》称,在一系列的政策扶持下,区块链技术在我国迅速发展并与各行各业深度融合。如今以创造社会价值、赋能实体经济为核心已成为大势所趋。对于区块链的认识,也要与时俱进:既要讲当前,更要讲长远;既要看国内,更要看全球;既要防风险,更要促发展,特别对于其在建设网络强国、发展数字经济、助力经济社会发展等方面的巨大作用更要有深刻、系统、完整的认识。文章提到,第一,要用发展的眼光看区块链技术,不能低估它的明天。必须落实总书记部署,把区块链作为核心技术自主创新的重要突破口。第二,要用科学的眼光看区块链标签,不能高估它的今天。我国在区块链领域拥有良好基础,要加快推动区块链技术和产业创新发展,积极推进区块链和经济社会融合发展。第三,区块链技术的集成应用在新的技术革新和产业变革中起着重要作用,要继续用战略的眼光看区块链产业。发展区块链可能面临监管上的风险,但不发展区块链则可能陷入长期落后的危险。[2019/10/26]
相关链接: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/
TruffleSuite
“TruffleSuite使开发人员以尽可能舒适的方式完成从构思到DApp的开发流程。”—TruffleSuite
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
作者|AlexRoan
译者|核子可乐
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。