Ethereumにおけるブロックチェーン開発用のチュートリアルを調べてみた

Ethereumにおけるブロックチェーンの開発は、情報の不足や新技術の把握等、現状では難易度が高く、Ethereum初心者が段階を追って技術を身に着けられるチュートリアルが必要と思われた方も多いと思います。

Ethereum開発のフリーチュートリアルと言えば

##[**CryptoZombies**（日本語対応あり）](https://cryptozombies.io/)
> Loom Network社の初心者向けチュートリアル
評価（10段階）：
使いやすさ：★★★★★★★★☆☆
難易度：　　★★☆☆☆☆☆☆☆☆
専門性：　　★★★★☆☆☆☆☆☆
有用性：　　★★★★★★★★☆☆
お勧め度：　★★★★★★★★★★

##[**Ethernaut**([日本語訳はこちら](https://qiita.com/nny-yamamura/items/f0273eb22cce0acb7306))](https://ethernaut.zeppelin.solutions/)
Zeppelin開発チームのセキュリティ技術修得向けチュートリアル
> 評価（10段階）：
使いやすさ：★★★★★☆☆☆☆☆
難易度：　　★★★★★★★☆☆☆
専門性：　　★★★★★★★★☆☆
有用性：　　★★★★★★★☆☆☆
お勧め度：　★★★★★★☆☆☆☆

がよく知られておりますが、初心者向けのCryptoZombiesに対し、中級者以上向けのEthernautに挑戦するのは難易度的にかなり乖離があり、またEthernautはセキュリティに特化しており、他のチュートリアルの必要性を考え、現在公開されているEthereumチュートリアルの状況を調べてみました。

以下
[**awesome-solidityのGitHubページよりチュートリアル一覧**(20180418現在)](https://github.com/bkrem/awesome-solidity)
から抜粋
（逐次追記予定）

---
##[**1. Discover Ethereum＆Solidity**](https://www.ludu.co/course/ethereum)
(chapter5迄無料、それ以降のchapterは29.99US$支払う必要あり)
ベストプラクティスを使用して分散型Twitterクローンを作成するプロセスを一通り完了するコース。
Complete course that takes you through the process of creating a decentralized Twitter clone using best practices.

> Solidityの基本文法や、truffle、MetaMask、Remix等の周辺アプリの使用方法、ICO等具体的な目的別コントラクトの生成方法が分かりやすく詳細に記入されております。chapter5以降は有料となりますが、
・このチュートリアルでなければ書かれていない
・他のチュートリアルに比べて分かりやすい
等の際立った点は特に見られず、同程度の内容で「無料」のチュートリアルもございますので、$29.99を支払う価値があるかどうかは、他のチュートリアルを確認した上で判断した方が宜しいようにに思えます。
また、翻訳をかけると、コード自体も「翻訳」されてしまうことも気になりました。

> 評価（10段階）：
使いやすさ：★★★★★★☆☆☆☆
難易度：　　★★★★☆☆☆☆☆☆
専門性：　　★★★★☆☆☆☆☆☆
有用性：　　★★★★★☆☆☆☆☆
お勧め度：　★★★☆☆☆☆☆☆☆(無料ならば★+2)

---
##[**2. Monax Smart Contract Tutorial**](https://monax.io/docs/solidity/)
非常にシンプルなスマートコントラクトから始まり、関連するデザインパターンで徐々に複雑なスマートコントラクトに移行していくチュートリアルシリーズ。
Tutorial series which begins with a very simple smart contract and teaches how to gradually increase the complexity of your contracts with relevant design patterns.

> チュートリアルサイトが廃止になり、上記Link「2. Monax Smart Contract Tutorial」をクリックすると、にチュートリアルのモジュールが公開されているGitHubページにアクセスされます。
（チュートリアルモジュールは[こちら](https://github.com/monax/legacy-docs/tree/master/solidity)）に保存されております。

使いやすさ：★★★★☆☆☆☆☆☆
難易度：　　★★★★★★★☆☆☆
専門性：　　★★★★★☆☆☆☆☆
有用性：　　★★★★★☆☆☆☆☆
お勧め度：　★★★★☆☆☆☆☆☆(無料ならば★+2)

---
##[**3. Solinity Workshop**](https://github.com/androlo/solidity-workshop)
コントラクト指向プログラミングとより発展的な言語内容をカバーする包括的な一連のチュートリアル。
Comprehensive series of tutorials covering contract-oriented programming and advanced language concepts.

>コントラクト動作のメモリ（ストレージ）構造について詳しく記入されているチュートリアルになります。基本的なSolidityの文法を紹介した後に「Assembly」についての文法及び、ブログの作成等を通じて「Assembly」を段階的に理解するような構成になります。
「Assembly」については現時点（20180423）では情報も少なく「Assembly」を使用してコントラクトを作成する方には有用なチュートリアルになります。

> 評価（10段階）：
使いやすさ：★★★★★★☆☆☆☆
難易度：　　★★★★★★★☆☆☆
専門性：　　★★★★★★★★☆☆
有用性：　　★★★★☆☆☆☆☆☆(Assembly使用前提ならば★+3)
お勧め度：　★★★★☆☆☆☆☆☆(Assembly使用前提ならば★+3)


---
##[**4. Upgradable Contracts**](https://blog.colony.io/writing-upgradeable-contracts-in-solidity-6743f0eecc88)
アップグレード可能なスマートコントラクトを書くための中規模のチュートリアル。
Medium article on writing upgradable contracts.

>Ethereumのコントラクトは一度ブロックチェーンにデプロイすると更新が出来ないので修正の際に工夫が必要ですが、このチュートリアルは
コントラクトの更新（後付け）についての基本的なコードの書き方についての情報が手短に(約200行)紹介されております。
翻訳エンジンを用いた場合、コード自体も「翻訳」されてしまうことなど気になることがございますが、
コントラクトの更新について要点について分かりやすく纏まっており、また実作業でコントラクト更新作業は必要になることも多いので、個人的に一読をお勧めするチュートリアルの1つとなります。

> 評価（10段階）：
使いやすさ：★★★★★★☆☆☆☆
難易度：　　★★★★☆☆☆☆☆☆
専門性：　　★★★★★★★★☆☆
有用性：　　★★★★★★★☆☆☆
お勧め度：　★★★★★★★☆☆☆

---
##[**5. EthereumDev.io**](https://ethereumdev.io/)
スマートコントラクトとDAppsの作成から始めるまでの完全なチュートリアル。
Complete tutorial from starting to writing complex smart contracts and DApps.

>主な項目としては、
・Solidityの基本の修得(chapter1～chapter7)
・Embark Frameworkを使用したDappsアプリケーションの修得(chapter1～chapter3)
があり、いずれもEthereumやSolidityを初めて扱う初心者を対象にしており、
各chapterは詳細な操作手順が示されているので途中で躓く部分は少ないと感じます。

> また、CryptoZombiesでは扱わない機能
・Walletの操作・コントラクトとの連携
・Embark Framework
・コントラクト指向の基本
・コントラクトのライフサイクル
等の機能を扱っており、実務を想定した場合はおすすめのチュートリアルの１つになります。

> 評価（10段階）：
使いやすさ：★★★★★★☆☆☆☆
難易度：　　★★★☆☆☆☆☆☆☆
専門性：　　★★★★☆☆☆☆☆☆
有用性：　　★★★★★★★☆☆☆
お勧め度：　★★★★★★☆☆☆☆

---
##[**6. Learn Solidity**](https://github.com/willitscale/learning-solidity)
Solitudeを学ぶ - 暗号、ICO、およびデプロイを作成するための完全なガイド。
Complete guide on getting started, creating your own crypto, ICOs and deployment.

>Youtubeを利用してライブコーディングをしながら解説を行うタイプのチュートリアルになります。
チュートリアルとしてアップされているYoutubeの動画は27章まであり、いずれも無料で視聴が可能です。
講義内容はSolidityの基本文法から、動画の中で使用されているRemix(Brawser Solidity)の使用方法、
上記の「暗号」「ICO」「デプロイ」が扱われており、また、「マルチシグウォレット」「Assembly」等他のチュートリアル等ではあまり見かけない項目も扱われているのが特徴となっております。
海外のコンテンツなので解説は英語ですが、発音や講義内容が比較的分かりやすく英語が苦手でもある程度は理解できると感じました。
気になる点は動画内のコードがやや見にくいことぐらいで、この内容の動画が無料で視聴可能というのはなかなかないと思われます。

>評価（10段階）：
使いやすさ：★★★★★★★☆☆☆(日本語対応ならば★+2)
難易度：　　★★★★★☆☆☆☆☆
専門性：　　★★★★☆☆☆☆☆☆
有用性：　　★★★★★☆☆☆☆☆(日本語対応ならば★+2)
お勧め度：　★★★★★☆☆☆☆☆(日本語対応ならば★+2)

---
##[**7. LearnXInY**](https://learnxinyminutes.com/docs/solidity/)
経験豊富な開発者のための15分でSolidityを学ぶチュートリアル。
Learn Solidity in 15 mins (for experienced devs).

> 銀行の取引を模倣したSolidityコードが約800行にわたり表記されており、コメントにてコード内の文法項目が説明されております。
（実質的コードの量は300行ぐらいになります）

>スマートコントラクトを動作させる環境や詳しい解説は全くなく、開発環境を自分で用意出来るか、Solidity開発についてある程度経験があり、文法項目を整理する方が対象に思われます。
スマートコントラクト開発初心者には当チュートリアルは全く向いてなく、また重要な文法項目（Library等）が掲載されていないことが気になり「4. Upgradable Contracts」と同様、コードがタグで囲まれておらず、翻訳エンジンを用い他場合、コード自体も「翻訳」されてしまうことも気になりました。
文章については分かりやすく手短に纏まっており、先に述べた「経験者が文法項目を整理する」目的には適しております。

>評価（10段階）：
使いやすさ：★★★★☆☆☆☆☆☆
難易度：　　★★★★☆☆☆☆☆☆
専門性：　　★★★☆☆☆☆☆☆☆
有用性：　　★★★★☆☆☆☆☆☆
お勧め度：　★★★★☆☆☆☆☆☆

---
##[**8. Hackr.io Tutorials**](https://hackr.io/tutorials/learn-solidity)
チュートリアルとコースを監査するコミュニティ。
Community curated tutorials and courses.

---

以下追加予定