Solidity 学習: 初心者向け Web3 プログラミング入門 4選
May 09, 2022この記事で紹介するサイトやツールの一覧
- CryptoZombies (クリプトゾンビ)
- Solidity by Examples
- Remix
- Hardhat
- イーサリアム navi
- Ethernaut
この記事はこんな人におすすめです。
- スマートコントラクト開発を始める人
- Solidity の本を買ったけど、次に何をしたら良いかわからない人
- 開発環境の構築でつまずいた人
- Web3/Dapps 開発に興味がある人
プログラミング初心者が挫折しないために
プログラミング初心者の中には、環境構築の途中で挫折してしまう人がたくさんいます。
プログラムのコードが間違っているのか、環境構築が間違っているのかはじめのうちは判断ができません。
プログラミング言語を覚えたいのに、インストールや実行中にエラーが起きてしまい、時間だけが過ぎてしまいます。
だから、一番はじめは環境構築が不要な学習が適しています。
最初におすすめするのは定番の CryptoZombies です。
CryptoZombies
ゲーム感覚で1つずつ課題をクリアしながら Solidity を学んでいきます。
CryptoZombies の良いところ
- 日本語に対応している
- ゲーム感覚で面白い
- プログラムをブラウザ上で実行できる
- 多くの Solidity エンジニアがここから入っている
CryptoZombies のイマイチなところ
- 内容が更新されておらず Solidity のバージョンが古い
ブラウザさえあれば、ほかに何も必要ないので初心者でもすぐに始められます。日本語に対応しているのも良いですね!
しかし、CrypboZombies は体系的に学習を進めていくので、自分に必要ないことも学習しなければなりません。 ボリュームが多い上に、自分に必要かどうかもわからないことを理解しなければ先に進めなかったりするので段々とモチベーションが下がります。
プログラミング学習においては、必ずしも体系的な学習がベストではないとぼくは考えます。 簡単なプログラムを実行できるようになったら、なるべく実際にプログラムを動かしてみることをおすすめします。
そこで、次はいろんなコードサンプルから自分が気になるものを選んで実際に動かしてみましょう。
Solidity by Example
https://solidity-by-example.org/
Solidty をある程度学んだら、次にやるべきことは自分でコンパイルして動かしてみることです。
サンプルコードをコンパイルして、テストネットにデプロイしたり実行してみましょう。 テストネットなら誰でも無料でトークンをもらえるので、それを使うことでデプロイできます。
実際にビルドしたり、デプロイすればいろんなエラーに必ずぶつかります。 しかし、プログラマにとって大事なことは言語の文法を知っていることではなく問題を解決する力です。
エラーがおきたとき、はじめのうちは原因を切り分けるのが大変です。 サンプルコードならコード自体はだいたい正しいと言えるのでエラーの原因を絞り込むことができます。
テスト環境にデプロイするための 2 つの方法をご紹介します。 そのときの自分に合っている方法を試してください。
- Remix
- Hardhat
Remix
Remix はブラウザでコードを編集したり、Metamask ウォレットを使ってテストネットやメインネットに スマートコントラクトをデプロイできる無料サービスです。
Remix の使い方はこちらのページにまとめてあります。(画像多め)
Hardhat
Hardhat はローカル PC に仮想のスマートコントラクト実行環境を作ることができます。 2022 年現在、Solidity エンジニアがメインネットのデプロイにもよく使っています。
Hardhat を使ったデプロイ方法はこちら
自分の気になるサンプルコードを選んだり、エラーにぶつかったり、その解決方法を検索したりして進めてください。 そうした小さな成功体験の積み重ねこそがかならずエンジニアとして成長に繋がります。
進んでいくうちに、自分だけで解決できない問題にぶつかるかもしれません。
そんなときは相談できる相手や、一緒に学習を進める仲間が欲しくなります。
つぎに紹介するイーサリアム navi はそんな人たちが集まるコミュニティです。
イーサリアム navi
でりおてんちょーさんというエンジニア(NFT リサーチャー)が、運営されているサイトと無料の Discord コミュニティです。
でりおてんちょーさん自身が Solidity を学習しながら、みんなで一緒に成長しているぬくもりのあるコミュニティです笑
不定期で勉強会なども開催しているので、Discord に参加したり、Twitter をフォローしましょう。
日本の Solidity エンジニアはまだ数が少ないので、結構すごい人が勉強会に参加することもあるかも?
Ethernaut
https://ethernaut.openzeppelin.com/
Ethernaut は中上級者向けで、Chrome の Developer Tools の Console を使って、ゲーム感覚で Solidity を学ぶことができます。
Ethernaut の良いところ
- テストネットのスマートコントラクトを実際に操作している
- ゲーム感覚で学ぶことができる
- プログラムの脆弱性の問題を理解できる
はじめに Metamask を使って Ethereum のテストネットに繋ぎます。
ブロックチェーンのテストネットにあるスマートコントラクトを実際に操作しながら進むので、ブロックチェーンを実際に使いながら理解できます。
スマートコントラクトの実行には Web3.js を使うので JavaScript の知識が多少必要になるかもしれません。
このサイトがほかと違うのは、問題の内容がスマートコントラクトの脆弱性、つまりバグを見つけるようになっているからです。
ぼく自身も、まだ少ししかやっておりませんが、プログラムのバグを見つけるという課題は、高度なプログラミング知識を求められるので、この課題をマスターしたら、開発における高度かつ実践的なスキルが身につきます。