こんにちは,学生エンジニアの迫佑樹(@yuki_99_s)です.
最近,仮想通貨が異様な盛り上がりを見せています.
この根底にあるのが,『ブロックチェーン』と呼ばれる技術です
このブロックチェーンを活用したサービスを開発できるエンジニアは今かなり貴重で,将来さらに需要も大きくなると予想されます.
今回は,そんなブロックチェーン上で動くプログラムを開発できるTechAcademyのブロックチェーンコースを実際に体験してきたのでレポートしていこうと思います!
目次
ブロックチェーンの何がすごいの?
ここ最近話題の中心にあるビットコインですが,注目されている理由はブロックチェーンという技術が使われていることにあります
ブロックチェーンの理論的な話を解説すると,それだけで記事一つになっちゃうので省略しますが,ブロックチェーン技術は以下のような特徴を持っています.
- オープンなネットワークで,参加者がそれぞれ分散してシステムを管理する
- 履歴が追跡可能なので透明性の高い取引を実現
- データが分散して管理されているので改ざんが難しい
- 分散型システムなので,システムが中断することがほぼない
このようなメリットがあるため,今後ブロックチェーンという技術はさらに多くの場所で使われることになると予測されています
今は,金融分野での取引に活用されていますが,他にも活用シーンはたくさんあります.
例えば今までの政府は,莫大な資金を使って改ざんやハッキングされないシステムを作っていましたが,ブロックチェーンを使えばかなり低コストで改ざん不能で堅牢なシステムを作ることができるんですよ.
日本政府も,法人設立手続きや公共データの管理にブロックチェーンを活用する方針を出しています.
ちょっと調べ物してたら,総務省が法人設立手続きとか調達手続きにブロックチェーンを活用することを検討っていう資料が出てきた.
今開発できる人超少数だし,ブロックチェーンエンジニア大活躍時代来るよね. pic.twitter.com/Sa5NgN0unJ— 迫 佑樹(ふとめ) (@yuki_99_s) 2018年3月11日
ブロックチェーンエンジニアは全く足りない
ただ,現状ブロックチェーンを理解し,それを活用したものを開発できるエンジニアは全く足りていません.
というのも,新しい技術だけあってまだまだ知見を持った人が少ないんです
自分で学ぼうと思っても,書籍の情報がわずか1ヶ月後には古くなってたり,そもそも開発環境の構築で手間取ったりと思うように進みません.
そんな中,今回紹介するブロックチェーンコースは現役のブロックチェーンエンジニアに無制限に質問が可能で,実際に開発しながら技術をつけて行くようなカリキュラムとなってました.
ブロックチェーンコースの概要
ブロックチェーンコースで学べることはだいたいこんな感じ.
流れとしては,仮想通貨で使われてる基礎技術を学んで,開発に必要なプログラミング言語を習得してからどんどんブロックチェーンアプリを作って行くようなイメージです.
基本的に,カリキュラムで全部解説してくれているのでブロックチェーンに関する事前知識はなくて大丈夫かなと思います
ただ,結構馴染みがない単語も多いので,わからない単語を調べる根気強さは持っておくといいかなと.
どんなものが作れるの?
ブロックチェーンコースでは,イーサリアムネットワークのブロックチェーン上で実行可能な『スマートコントラクト』というプログラムを開発することができます.
スマートコントラクトは,日本語訳すると「賢い契約」となりますが,ブロックチェーンにおけるスマートコントラクトの定義は現在曖昧なので,ここでは「ブロックチェーン上で実行可能なプログラム」と理解しておけばOKかと思います
具体的に開発していくのは,以下のようなプログラム.
- クラウドファンディングを行うシステム開発
- 名前とアドレスを管理するシステム開発
- IoTで使えるスマートスイッチシステム開発
- オークションシステムの開発
- 厳正な抽選を行うシステムの開発
実際に,今回僕が開発したクラウドファンディングシステムはこんな感じになっています.
中央管理者がいないので,手数料を抑えられていて送金スピードも早く支援できるというブロックチェーンの特性を活かしたシステムです.
先ほどの概要のところでも少し触れましたが,ブロックチェーンを利用したサービス開発には,Solidityという言語を使用しています.
学習のスタイル
このブロックチェーンコースは,テックアカデミーの他のコースとはちょっと違う形式になっていて,教科書が用意されています.
他のテックアカデミーのコースでは,独自のオンラインコンテンツが用意されているのですが,ブロックチェーンコースはこの教科書に沿って進めて行く形式です.
自分のペースで本を読み進めながら,テックアカデミーが用意した理解度確認の課題を解き,わからないところをメンターさんに聞くことで進めて行くようなイメージ
よくある質問
最後に,よくありそうな疑問とかをまとめておきました!
実際に僕がこのブロックチェーンコースを受講する前に思ってた疑問なので,参考になるはずです.
ブロックチェーンコース受講にあたって必要な知識は?
なにか別のプログラミング言語を触ったことがあるといいかなと思います.
メンターさんに質問し放題とはいえ,全くのプログラミング初心者でいきなりブロックチェーンコースは挫折する可能性が高いです
プログラミングを全くやったことがない方は,テックアカデミーの他のコースで別の言語に触れてからブロックチェーンコースを受講するのをオススメします!
教科書は市販されているならわざわざ受講する必要ないのでは?
先ほども言ったように,市販の堅牢なスマートコントラクト開発のためのブロックチェーン[技術]入門という書籍を進めて行くような形式となっています.
僕も受講前は『本が市販されてるなら自分で勉強したらいいんじゃない?』と思ってましたw
しかし,いざやってみると環境構築の段階からエラー発生,プログラム書いてもコンパイルが通らなかったりで大変なことに
本を読んでしっかり理解できて,エラーなくスイスイ行ける方は問題ないと思いますが,結構ハードル高めです.エラーがおきた時の情報源も少ないので,現役ブロックチェーンエンジニアに質問できるのはかなり嬉しかったですね.
本買ってみて,挫折を経験してから受講を検討するという形でもいいかなと思います.
ブロックチェーンアプリ開発は難しいの?
Solidityというプログラミング言語自体の難易度はそこまで高くありません.
しかし,ブロックチェーン開発をしていると,どんどん新しい技術が出てくるのでそれを全部追って行くのが大変です
普通のWebアプリケーション開発とはデータの扱い方が全く違うので,つまずくならそこかなと思います.あとは独学の場合はエラーが出た時に解決法がわからなくて詰むことも考えられますが,メンターさんに質問すればその心配はないかと.
まとめ
今後需要が伸びてくること間違いなしのブロックチェーンエンジニア.
その一歩を踏み出すサポートをしてくれる数少ないプログラミングスクールがTechAcademyのブロックチェーンコースです.
21世紀最大の発明と言われるブロックチェーン技術を学び,開発できるスキルをつけてみませんか?
ちなみに,TechAcademyはビットコイン決済も受け付けています 便利なところをどんどん取り入れて行くスタイル,いいですね!