ブロックチェーン学ぶならこれ以上の教材はない!Udemyの Ethereum and Solidity が最高

プログラミング

こんにちは、現役エンジニアのとだこうき(cohki0305)です!

めっちゃいいやつ見つけた!これは良すぎる!!

最近仕事でブロックチェーンを扱うことになったので、いろんな教材使って勉強していたのですが、なんかしっくりこなかったんですよね…わかりにくかったり、あんまり楽しくなかったり…

でも、最近めっちゃいいやつ見つけました。Udemy の Ethereum and Solidity: The Complete Developer’s Guide です。

ブロックチェーン初心者向けに提供されている動画の講座なのですが、Blockchain や Ethereum についてわからない方でもこれを受講すると Ethereum の Smart Contract を使ったアプリを作れるようになります。

授業は 24 時間あり、めっちゃボリューミーなので一通りやればかなり Ethereum について詳しくなりますよ。料金も 2000 円くらいなので、本買うよりは全然安いかなと思います。

受講条件

一通り受けたのですが、以下の知識があれば問題なく最後まで受講できるかなと思います。

基本的な javascript と NPM の知識
mac あるいは Linux 環境があること
英語で授業を受ける(字幕付き)

カリキュラム

授業は 3 セクションに分かれています。というより僕が勝手に分けました。

1. ブロックチェーンの技術概要を学ぶ
2. Ethereum の Solidity と Contract を学ぶ
3. Contract を使いアプリを作る

という感じです。それぞれどういうことを学んだのか紹介していきますね。

ブロックチェーンの技術概要を学ぶ

僕が一番感動したのがこのセクションでした。書籍で学んでいた時、正直なんとなくしかブロックチェーンわかってなかったのですが、この授業受けたら一発でめっちゃ理解できました!!!!

ブロックチェーンって概念的に難しくて新しい概念なので、イマイチ理解できなかったのですよね…特に本だと訳わからん小難しい図とかいっぱい出てきて「もう無理!!!」ってなってました。

でも、動画学習はそのあたりの課題を上手く解決してくれましたね。というのも、動きを見ながら学べるのって直感的に理解できるので、新しい概念とか難しい概念でも理解できてしまうのですよ。

一枚の絵で説明するのと、アニメにして説明するくらいの違いですかね。アニメのほうが動きがあって情報量が多いので、状況を理解しやすいですよね?そんな感じで勉強でも動画学習は効果的です。

詳しくは話さないのですが、動画内では Blockchain Demo というサイトをつかってブロックチェーンと周辺知識を説明してくれています。

このサイトはブロックチェーンを視覚的に表現することを目的にしたサイトなので、解説付きで操作しているところを見ると、すごい理解が深まりますよ。

ちなみに、この授業ではBlockchain だけではなくて、授業全体にイラストを使って説明してくれているので、かなりわかりやすいですw

というか、説明も丁寧すぎて「もうわかったよ!!!」とイライラする事すらありますwそれくらい親切な説明です。

Ethereum の Solidity と Contract を学ぶ

次のセクションでは、Ethereum の Solidity と Smart Contract を学びました。

Solidity とは、Ethereum 上にアプリを作る際に利用するプログラミング言語なのですが、この講座では、Solidity の基礎から学ぶことができます。

プログラミング未経験者にとっては少し難易度が高いですが、経験者であれば他の言語と大した違いはないので、簡単に理解できると思います。

次に Contract を学んでいきました。

Contract とは、独自にブロックを作ることができる機能です。ブロックには様々な情報を保管する役割があるので、今の web アプリでいうところの DB を管理するモデルのような役割を持っています。

言語はさきほどの Solidity を使っていきます。

ちなみに環境構築は必要なくて remix という以下のようなブラウザ上で Solidity を実行できる環境で開発を進めていました。

実行結果をその場で簡単に見れるようになっているのでかなり便利でした。

感想

このセクションにおいても非常に説明が親切で Solidity の言語仕様をよく理解できました。「これ一人でやっていたらめっちゃ詰まっていただろうな」みたいなこと事前に紹介してくれていたのも嬉しかったですね。

授業自体が「書く -> 実行 -> テスト」というサイクルをこまめに行うようになっており、定期的に「やった!!できた!!」という達成感を得られるので飽きずに続けられたのも良かったです。

Contract を使いアプリを作る

ここまで学んだら、あとはひたすらアプリを作りまくりました。講座は 24 時間分あるのですが、半分以上がアプリ作成の時間でしたね。

個人的には、学んだことをすぐにアウトプットしたいので、アプリをたくさん作る時間があったのはかなり嬉しかったです。

ちなみに、作ったのは以下の 2 つでした。

1. 宝くじアプリ
2. クラウドファンディングサービス

宝くじアプリ

宝くじアプリは以下のようなアプリでした。

参加者が ETH を使って宝くじを買えるようしておき、管理者がランダムで勝者を選びます。選ばれた人は、それまでに参加者が支払った ETH を全額もらえるというものです。

宝くじを誰が買ったとか、ETH の合計値とかは Contract が情報を持っているという仕組みです。フロントエンドは、React をメインで作成しました。

バックエンドは基本的には、Contract がメインですが、node を使うので未経験の方は少し勉強しておいたほうがよいです。

この授業が地味にすごいなと思ったのは、React 未経験者のために React の授業まで提供していることですねwめっちゃ親切です。

クラウドファンディングサービス

クラウドファンディングサービスは Kickstarter や Campfire のようなクラウドファンディングの仕組みを作るのが目的です。

ただ、上記のサービスたちとは異なり、支援者に許可をもらわないと募ったお金は使えないようにするというものです。アプリの完成イメージは以下です。

 

※ フロントエンドは引き続き React

バックエンド

両アプリともにバックエンドでは node を利用していました。node にて web3 というライブラリを使いこなし、Contract をデプロイしたり、Contract のテストを行うというのが主な用途でした。

なので javascript の基本的な知識があり、npm を使えて、CommonJs あたりが分かれば十分理解できる内容です。

【さいごに】Udemy の授業がダントツにオススメ

他にも僕は書籍かったりオンラインの記事で勉強していたのですが、難しかったり、上記のような面白いアプリを作ったりがなく飽きてしまいました。

でも Udemy の授業はかなり面白くわかりやすかったです。他の教材で勉強するのがもったいないんじゃない!と思わせるぐらい良かったので、オススメしたかったです!

Ethereum and Solidity: The Complete Developer’s Guide

また僕自身、Note にて dapps のチュートリアルを販売しています。JavaScript 経験者であれば、作成できるようになっているので、英語で授業を受けるのに抵抗感がある方はこちらのチュートリアルを受けるのもいいですよ。