突然ですが筆者はいま、SolidityというEthereum開発言語の勉強をしていて、本格的に書籍を買って勉強し始めてから2ヶ月目の段階です。
Solidity一通り基礎オブ基礎が終わったので、この本を購入してみた。
— でりおてんちょー|derio (@yutakandori) July 16, 2021
また読み終わったら、HiÐΞでレビュー記事を書きます📚 https://t.co/zXvpMIQt8i
本を買うまでは、YouTubeでSolidityの初心者向け動画をみながら勉強していましたが、なかなか難しく挫折しかけたので本を買った次第です。
ちなみにフロントエンドはReactを使おうと思い、こちらは本とYouTubeを使って勉強している段階です。
今では、ある程度Solidityの基礎は理解できるようになり楽しくなってきたのですが、ここまでの道のりはとても長く、何度も挫折しそうになりました。。
無駄なことしてしまったな…
と、過去を悔やむ期間もありました。
皆さんには、筆者のように勉強の順番を間違えてメンタルブレイクしてほしくないと、強く思っています。
ということで、この記事では筆者の経験をもとに、これからSolidityの勉強を始めたいと思っている方が挫折せず、そして楽しくSolidityを学べる方法を紹介しています。
この記事では、以下の構成で書き進めていきます。
実際に無知の状態からSolidityを勉強してみて、挫折しそうになったポイントとそれに対する対処法を述べていきます。
一通りSolidityの勉強をやってみて、個人的にもっとも効率よく挫折しない勉強方法について解説します。
Solidityに関するさまざまな書籍や動画がありますが、個人的にオススメなものを厳選してご紹介します。
最後に、勉強を進めていく上でどうしても解決できない問題が出てきたとき、どうすれば良いかについて紹介します。
※この記事は、Solidityを勉強し始めて2ヶ月目の段階で書かれた記事です。
※現時点では5ヶ月ほど経過したため、当時と違う考えなどリライトしたい部分について、緑マーカーを添えて追記しています。
※本記事は一般的な情報提供を目的としたものであり、法的または投資上のアドバイスとして解釈されることを意図したものではなく、また解釈されるべきではありません。ゆえに、特定のFT/NFTの購入を推奨するものではございませんので、あくまで勉強の一環としてご活用ください。
イーサリアムnaviの活動をサポートしたい方は、「定期購読プラン」をご利用ください。
筆者のSolidity挫折ポイント
筆者が Solidityを勉強し始めた頃に挫折したのは、主に以下の点です。
- Node.js, Truffle, Ganacheなどの環境構築
- フロントエンド意味不明()
- 調べても解決しないエラーが次々でてくる
ざっくりこんな感じですが、おかげさまで前髪が5mmほど後退した気がします。
筆者の勉強法で何が悪かったのか、その”原因”は、簡単なこと(基礎)から順序立てて勉強しなかったことです。
- いきなり外人さんのYoutubeを見て勉強してみたり
- 古い情報のサイトだと気づかず参考にしてエラー地獄にハマったり
- Javascriptすら理解していないのにcryptozombiesのフロントエンドでつまづいたり
そんなことを繰り返していました。
これでは挫折しかけてしまうのも当然ですし、勉強方法からしっかり計画を立ててやるべきだったと反省しています。
なので、ここからは2ヶ月ほど前の、前髪が5mm後退する前の自分に向けて、「こうやって勉強したほうが良いよ〜」という勉強ロードマップを示していきます。
- これからSolidityの勉強を始めたい
- 今勉強しているけど挫折気味だ
という方にとって、少しでも参考になれば幸いです。
Solidity勉強のロードマップ
結論からいうと、まずはcryptozombiesの基礎編をやりましょう!
cryptozombiesは「Progate」「ドットインストール」のSolidity版みたいなもので、チュートリアルごとに解説をしてもらいながら、環境構築などせず、いきなりコードを書きながら勉強することができる便利な学習サイトです。
最初はこのサイトを使って、
- Solidityを使ってどんなことができるのか
- 基礎の基礎である文法や構文
などについて、”ざっくり”学んでおきましょう。
cryptozombiesはバージョンがかなり古いため、あくまで「Solidityの雰囲気をつかむ」という目的のために利用します。
なんとなくSolidityの雰囲気がつかめたら、次は本を買って1から勉強しましょう!
理由としては、以下の通りです。
- 環境構築から手解きしてくれる
- 要所要所で細かい解説があって理解しやすい
- 開発の順序を一通り体系的に学べる
本には、段階を踏んで完成したコードが載ってあったり、それをブラウザ上で確認して感動できるなど、Solidityを勉強し続けるモチベーションを保つ仕掛けがたくさん施されていて、初心者でも挫折しづらいです。
ここでひとつ、注意点があります。
それは、古い情報の本を買っても意味がないということです。
ネットの情報であれば都度アップデートなどされますが、本というの基本的に書いた時のままの状態ですよね。
そのため、1年も前の情報では今の環境とまったく違っている、サポートが終了している、なんてこともザラにあります。
これはネットの情報を調べる際も同じですが、“その内容がいつ書かれたものなのか”を確認する癖をつけておく必要があります。
本・動画・ネットの記事が、いつの情報なのか調べる習慣をつけよう!
参考になる本やYoutubeを紹介
ということでまずオススメな本は、OREILLYシリーズです。
こちらは執筆時点でも情報がまったく色褪せていなかったので、とても参考になった本です。
特にReactの方は、第2版が8/6に新しく発売されたばかりなので、新しい構文などもたくさん解説してくれています。
どちらの本も、概念や用語・文法・構文など基礎的なところから丁寧に解説してくれているため、筆者としては非常におすすめです。
- 「SolidityとEthereumによる実践スマートコントラクト開発」を読んではまったところメモ
- 「SolidityとEthereumによる実践スマートコントラクト開発」の沼1
- JavaScriptとReactを学ぶ
もっと早く知りたかった。。
本を読み終わったら(もしくは本でつまづいた箇所を調べるときに)、Youtubeを使って動画ベースで勉強してみるのがおすすめです。
Solidityの場合は日本語だとあまりチャンネルがないのですが、個人的にブロックアカデミーさんが分かりやすかったのでオススメです!
また、Reactの場合はたくさんチャンネルがありますが、
- 比較的情報が新しい
- わかりやすい
という2点から、【とらゼミ】トラハックのエンジニア学習講座さんがオススメです。
これらのフェーズを終えて一通り理解できたと思ったら、英語のYoutubeチャンネルを見たり、cryptozombiesの応用編をやってみると良いと思います。(※先述の通りcryptozombiesは情報がとても古いことには留意が必要)
そして、ある程度理解できた段階で、実際にコントラクトを書いてデプロイまでもっていけると良いですね。
初心者ならbuildspaceがいいと思います。
— ZaK3939.eth (@ZacK_3939) August 30, 2022
中級者に向けてはsolidity by example
とかcode 4renaを読み漁るのをおすすめします。
どうしても解決できなかった時は?
勉強していく上で、どうしても解決できない問題にぶち当たることもあるでしょう。
筆者自身も独学で勉強していく上で、
- 調べても分からないことが多いな〜
- 他の人と進捗報告しながらやりたいな〜
- 効率よく進める方法を共有したいな〜
と思っていました。
そういった方は、ぜひDiscordコミュニティ「イーサリアムnavi」へ参加してみてください!
イーサリアムnaviのDiscordコミュニティには
- solidityを勉強したい・既に勉強している
- 開発に興味がある
- NFTが好き・興味がある
といった方々がたくさん集まっています。
せっかく勉強するならノウハウ共有した方が全員の効率が上がりますし、そういった場所があるだけでも、挫折しないで頑張り続けることができると思います。
ちなみに当然ながら、招待制ではなく誰でもwelcomeです。
この記事を読んで
Solidity面白そう!やってみたい!
と思っていただけた方は、ぜひ遊びにきてください。
まとめ
いまSolidityでつまづいている、挫折しかけている、これから勉強したいけど行動に移せない…
そんな方々にとって、何か一つでもお役に立てる部分があれば幸いです。
余談ですが、筆者は今年に入ってUnityも0から勉強してAppStoreリリースまでもっていきました。
そのときの経験で感じたのは、毎日少しずつでも良いから続けることが大切だということです。
特に「毎日少しずつでも」というのが大切で、勉強し始めの頃なんて覚えても忘れることが当たり前なので、毎日Sollidityのことを考える時間を意図的に作ってやることが大切だと思っています。
何事も覚えたてのときは、すぐに忘れてしまうのが当たり前!
偉そうなことを言っていますが、筆者自身もまだまだ勉強中の身です。
毎日少しずつでも、手と頭を動かし続けるので、皆さんも一緒に頑張りましょう!
最後になりましたが、ここまで読んでくださって本当にありがとうございました。
イーサリアムnaviを運営するSTILL合同会社では、web3/crypto関連のリサーチ代行、アドバイザー業務、その他(ご依頼・ご提案・ご相談など)に関するお問い合わせを受け付けております。
まずはお気軽に、こちらからご連絡ください。
- 法人プランLP:https://ethereumnavi.com/lp/corporate/
- Twitter:@STILL_Corp
- メールアドレス:info@still-llc.com