こんにちは、TechCommitアドベントカレンダー2021 の20日目を担当する nawoo です。
私は、もともとWindowsソフト開発の仕事をしており、プログラミング言語はDelphiやC#を使っていました。数年前にその仕事をやめたあとも趣味の一つとしてプログラミングを続け、自分専用のソフトを開発したり、気になったプログラミング言語を学んだりしています。
今年(2021年)7月頃にTechCommitを知って入会し、同時にブロックチェーンプログラミングの勉強をはじめました。仮想通貨への投資やDeFiの利用などは以前から行っていましたが、その裏側で何が行われているのかをきちんと理解したいと思ったのがきっかけです。
その後、LootというNFTを知って「自分でもこんなNFTを作ってみたい」という具体的な目標に変わったことで、学習のモチベーションがぐんと上がりました。
この記事では、私が使ってきたスマートコントラクト開発のための学習教材を紹介しますので、参考にしてもらえれば幸いです。
1. ビットコインとブロックチェーン
まず、そもそもブロックチェーンとは何かを理解するためにこの本を読みました。
Bitcoinのブロックチェーンの仕組みについてとても詳しく説明されていて、「ブロックがチェーン状につながっているんでしょ」ぐらいの認識だったのが、具体的なブロックの構造、どうして改ざんできないのか、マイニングとは何をしているのか、、、といったことを理解できるようになりました。
スマートコントラクト開発というとEthereumが中心ですが、それでもまず最初にBitcoinを理解することは重要だと思います。
ただ、この本は2016年出版なので、内容が古く、Segwitやライトニングといった情報については書かれていません。原題は Mastering Bitcoin で、英語版の最新版はこちらでも読めます。(私はまだ読んでいませんが、そのうち読みたいです。)
https://github.com/bitcoinbook/bitcoinbook#chapters
この本はじっくり時間をかけて読みましょう。
2. マスタリング・イーサリアム
上の本と同じ作者が書いたEthereumの本です。
内容は、Ethereumについて詳細に解説するというよりは、概要を紹介する程度に留められています。Bitcoinとの違い、EVMとは何か、コントラクトとは何か、、、といったことをざっくりと理解することができます。
Solidity言語についても1章を使って説明がありますが、これだけでマスターするのは難しいので、他の教材で学ぶ必要があります。
こちらは2019年出版ですが、Ethereum/Solidityは進化が速いので、やはり内容は古くなっている部分があります。
この本はざーっと読んで次に行きましょう。
3. SolidityとEthereumによる実践スマートコントラクト開発
こちらは、実際に手を動かしてスマートコントラクト開発を進めていく本です。
Truffleという開発環境を使って、Solidityでスマートコントラクトを書いてデプロイし、さらにはReactでフロントエンドの開発まで進むので、スマートコントラクト開発の一通りの流れを知るにはちょうどいい本です。
2021年1月出版と比較的新しい本です。ただ、プログラミング本あるあるですが、本に書かれているとおりにやっているのにエラーが出ることがありました。また、作っているスマートコントラクトが個人的にはあまり面白くなかったので、最初は本の通りにコードを書いて動かしていましたが、途中から流し読みしてしまいました。
エラーが出ても気にせず飛ばして進めましょう。
その後
この3冊を読んだ後は、実際に簡単なスマートコントラクトを書いてみてデプロイする、その過程でわからないことをネットで調べていく、という学習方法に切り替えました。
Solidityは進化が早いので、ネット記事などはすぐに内容が古くなってしまいます。英語ですがSolidityの公式ドキュメントをチェックするのが確実です。
https://docs.soliditylang.org/en/latest/
その他、私が参考にしたサイトはこちらです。
PolygonでNFTを発行してみよう【前編・後編】 (※有料)
Truffleを使ってPolygonネットワークでLootのようなNFTを作成するための記事+動画です。
HashHub Research有料会員向けの記事ですが、私はこれを見るために有料会員になりました。(今はまた無料会員に戻りましたが💧)
独学ではデプロイまでたどり着けなかったのですが、この動画を見て初めてNFTを公開できました。
イーサリアムnavi
Ethereum,Solidity,NFTなどに関する情報サイトです。開発者向けの情報も多く、特にSolidityや勉強会の記事は役に立ちました。
Discordもあって質問や情報交換もできます。私も参加しています。
ブロックアカデミー
YouTubeでSolidity学習やdApp開発の動画を配信しています。dApp開発についてはなかなか日本語での教材が少ないので貴重です。
最後に
以上、私が使ってきた教材の紹介でした。
学習を継続するために、平日の夜はできるだけTechCommitのもくもく会に参加するようにしています。また、学習内容はブログにまとめています。ぜひ一度ご覧ください。
最後までお読みいただきありがとうございました。
どうぞ良いお年をお迎えください。