ブロックチェーンエンジニアになるには何をすべきか




どうも高妻です。Twitterでプログラミングのことや暗号通貨のことをつぶやいているのでよかったらフォローしてください。  

ブロックチェーンエンジニアとは?

そもそもブロックチェーンエンジニアとは何でしょうか?

ブロックチェーンを作れる、ブロックチェーンのことを深く理解している、DAppsを作れるなど、どれも現時点ではブロックチェーンエンジニアかなと思っています。

違うだろとかめっちゃ言われそうですが、ブロックチェーンに関わるエンジニアはブロックチェーンエンジニアでいいでしょう!

WEBに関わるエンジニアはWEBエンジニアと言われるのと一緒です。

開発に必要な言語は?

ブロックチェーンそのものや周辺サービスの開発に必要な言語はこれだ!みたいなものはないですがブロックチェーン毎に覚えておくといい言語はいくつかあるので紹介します。

Javascript

Javascriptはいろんなブロックチェーンのライブラリがたくさん出ているので学んでおいて損はない言語です。

Bitcoin、Ethereum、Ripple、Liskなど多くのブロックチェーンのトランザクションへの署名、アドレス生成処理などがJavascriptでも実装されています。

Javascriptで実装されている理由は、ブラウザから使うことを想定されているからですね。

これらのライブラリを使うとブラウザからの投げ銭、ウォレット機能の提供などができるようになります。

ちなみにBitcoinのJavascriptライブラリはこちらになります。興味のある人はいじってみてください。

>>bitcoinjs-lib

Bitcoin、Bitcoin Cash、LiteCoinの開発なら

BitcoinからハードフォークしたBitcoin、LiteCoinを含めたこの3つはC++で開発されているので、ソースコードを読んだり、開発に参加するにはC++の言語が必要です。

Bitcoin CashだけはGolangで実装された別のクライアントができたのでGolangでも開発に参加できます。

Ethereum、DAppsの開発なら

Ethereumはここ数年人気が高いGolangで開発されています。

ブロックチェーン自体の開発に参加するのはなかなか大変ですが、Ethereumを使ったDAppsを作るのはそんなに難しくありません。

プログラム経験者であればすぐに理解できると思います。

DAppsを作るのに必要なのはスマートコントラクト開発するためのSolidityという言語です。

他にもVyperという言語もありますが今のところSolidityの方が情報が多いので初心者はSolidityを使うことをお勧めします。

WEBからブロックチェーンエンジニアへ

自分はスマホゲームやWEBサービスを作るエンジニアからブロックチェーン関連サービスを作るエンジニアになりました。

どうやって学習し、ブロックチェーンエンジニアとして転職できたかを書きたいと思います。

スキルとしては何が必要?

個人的な意見を述べさせてもらうとブロックチェーンエンジニアになるにはWEBの基礎知識やサーバサイド、DBの基本的な知識は必要不可欠ですね。

ようは、現在広まっているWEBサービスを構成する技術を代替する可能性があるのがブロックチェーン技術なので既存技術について知っておく必要があります。

あとはブロックチェーンの基礎的な技術として暗号、ハッシュ関数、公開鍵暗号方式などは知識として理解しておく必要があります。

めちゃくちゃ詳しくなくてもいいですが、どういったものかは理解しておきましょう。

エンジニア未経験ならWEBサービスから作ろう

これから未経験でブロックチェーンエンジニアになりたい人にアドバイスが1つあります。

まずは1つでいいのからWEBサービスを作って、ブロックチェーンを使ったサービスとどこがどんな風に違うのか比較ができるようになるといいと思います。

そうすることで、現状の問題点を理解した上でブロックチェーンでどういうことができて、それを使うことでどんなメリットがあって何を解決してくれるのか理解が進みます。

ここら辺を理解していないとブロックチェーンの利点を活かしたサービスを開発するのは難しいと思います。

WEBエンジニアの知識と経験は役に立つ

現状ですと完璧分散化されたサービスを作るのは技術的に難しいです。

なので、中央的な仕組みとブロックチェーンを使った非中央的な仕組みを組み合わせるのが現実解なのかなと思っているのでWEBエンジニアとしての知識と経験は必ず役に立ちます。

社会人になってからエンジニアになった自分の経験から「効率よく学んでエンジニアになる方法」について書いているのでこちらも是非読んでみて下さい。

>>プログラミング未経験から最速でエンジニアになる方法

体系的に学ぶなら

プログラム未経験者が体験的に学ぶならプログラミングスクールがおすすめです。自分もはじめは同じような講習を受けて効率よく学習しました。

プログラミングスクールには受講前に無料体験を行っているところもあります。

特に、侍エンジニア塾はマンツーマンレッスンが特徴のスクールで、7000名以上の指導実績があります。さらに侍エンジニア塾では自分好みのカリキュラムを組むことができるのが利点でもあります。

WEBエンジニア経験者は何をすべき?

最初はひたすらネット、書籍、サンプルコードをいじって何が分からないか分かるようにならないとですね。エンジニア経験者であればこの道は一度通っているのでまた同じように学習しましょう。

最初はどんな分野を学ぶにしてもこの作業は必要だと思います。続けていればそのうち点と点が繋がって理解が深まると思います。

Ethereumを触るのがおすすめ

一通り本やネットでブロックチェーンの知識を得たら、Ethereumを触ってみるのをおすすめします。

Ethereumはスマートコントラクトを簡単に実装することができ、オリジナルのトークンや分散アプリケーションを比較的簡単に実装することができます。

また世界的に見てもEthereumの開発者が多く、ネットや書籍に情報が多いため学習にこまることがないです。

Ethereumを触るなら下記リンクに基礎から応用までをまとめたので、この内容を順番に実践すると理解が早くなるのでおすすめです。

>>Ethereumの基礎からSolidity、DAppsまで学ぶためのまとめ一覧

基礎は理解していて、より実践的な内容を学習したい人はこちらを読んでみてください。

>>TruffleとZeppelin Solidityを使ったERC20トークンの実装

>>EthereumのERC20トークンをRopstenネットワークにデプロイしてオリジナル通貨を作る

>>Truffle、Solidity、GanacheでEthereum DAppsを作る

体系的に学ぶなら

ブロックチェーンを学べるプログラミングスクールも多くなってきました。

その中でもブロックチェーン大学校はBitcoinの仕様策定にも関わっていたジョナサンアンダーウッドという著名な方が開いているスクールです。

ブロックチェーン大学校では無料体験を行なっているのでこちらから予約できます。

無料体験ですが内容もしっかりしているので安心です。

まとめ

今後ブロックチェーンエンジニアの需要はどんどん上がってくると個人的に思います。

現時点でブロックチェーンエンジニアが足りておらず、これからさらに市場が伸びていくことが予想されるので今のうちからブロックチェーンを学んでおくこは非常に有益なことだと思います。

残業なんてしてないで新しい技術を学びましょう!

オススメの書籍

ビットコインとブロックチェーンの詳細をしっかりと学びたい方にはこちらの書籍が非常におすすめです。ウォレットの仕組み、楕円曲線暗号、P2Pプロトコル、公開鍵暗号などビットコインを支える技術について詳細に解説されています。また、サンプルコードを通して実際に手を動かして学べるので非常に濃い内容となっています。

こちらはブロックチェーンの初学者向けになります。ブロックチェーンの応用例の紹介から基礎的な理論まで分かりやすく図解で解説されています。また、ビットコインやEthereum、HyperLdger Fabricを実際に稼働させてみて動作を理解するためのサンプルコードの解説もあります。

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です