日本でも少しずつNFTが認知されてきましたね〜!
特に、SNSのプロフィールアイコンにできるようなNFTが最も取引されているようです。
NFTは「スマートコントラクト」というプログラムにより、第三者を介さずスムーズで安全な取引を実現します。
スマートコントラクトとは?
契約、取引、決済などを処理するプログラム
スマートコントラクトを実行するには、おもに「Solidity(ソリディティ)」というプログラミング言語を使用。
耳慣れない言語ですよね。
NFTの認知拡大と共に、これからほぼ間違いなく需要のある言語であると言われています。
現役エンジニアであれば独学は可能であるかもしれません。しかし、、、
ココに注意
初心者さんがいきなり独学で習得するには、少しハードルが高いかもです。。。
この記事では、「Solidity」の概要・学習方法について出来るだけわかりやすく解説していきますよ。
ぜひ、さいごまでお付きあいくださいね!
それででは、はじめていきましょう♬
こんな方におすすめ
- Solidtiyについて知りたい
- Solidtiyの学習方法を知りたい
- Web3エンジニアを目指したい
この記事を書いた人
- 京都市在住
- 新しい技術に興味津々
- プログラミング学習経験有り(JavaScript、PHPをほんの少し)
Solidity(ソリディティ)ってどんな言語?わかりやすく解説!
Solidityとは、スマートコントラクト(プログラムによって自動的に取引、契約を実行)を開発することができるプログラミング言語です。
オブジェクト指向の言語で、同じ分類となるのは、、、
- C++
- JavaScript
- Python
- Ruby
などなど。
これらを学んだことがある方は、スムーズに学習出来るかもしれません。
イーサリアム(ブロックチェーン)で使うことが出来ます。
Solidtyは、、、
ココがポイント
取引の処理を実行させるために特化した言語です
ブロックチェーン上に取引のあらゆるデータが刻まれていくため、改ざんが極めて難しく、透明性の高いものとして残ります。
従来、取引や契約のときには信頼性を必要とするため、仲介業者を通すことが常識でした。
しかし、スマートコントラクトの登場により、仲介業者を通す必要がなくなります。
- 取引スピードの向上
- 契約スピードの向上
- コストの削減
以上の3点が実現可能に。
人間が理解しやすい言語(高級言語)であるため、コンピューターが理解できるようにするには翻訳する必要があります。
その翻訳をコンパイルといい、SolidityではEVM(Ethereum Virtual Machine)をコンパイラとして経由し、プログラムが実行されます。
簡単な流れ
Solidityをプログラミング→EVMでコンパイル→コンピューターが認識
という感じ。
人間と同じです。Google翻訳やDeepLなどで英語を日本語に訳すのと同じですね。
Solidity(ソリディティ)をゲーム感覚で体験してみよう!
まずは、実際に体験してみましょう!
「Crypto Zombies」というサイトがあります。
ゲーム感覚でSolidityの基礎からアプリ作成までの一連の流れを学ぶことが出来ます。
日本語対応していますので、是非とも体験してみて下さいね!
もちろん、無料です。
解説をもとに実際にコードを入力し、正しければ次に進めるというような形式です。
登場キャラクターも愛嬌があり、親しみやすいです。プログラミングを全く経験したことのない方でも楽しく学ぶことが出来るはず!
Crypto Zombiesを体験してみて手応えを感じたら、さらに学びを深めていきましょう。
Solidity(ソリディティ)の学習・開発環境の構築
開発環境を構築するには、イーサリアム のネットワークが必要となります。
そのためには、クライアントアプリケーションというものをインストールします。
- Geth
- Parity
Gethの方がイーサリアム の推奨とされているため、情報もシェアも多いようです。
Solidity(ソリディティ)の開発環境「Geth」について
Gethは「Go-Ethereum」の略称で、プログラミング言語「Go」によって実装されています。
Gethをインストールすることによって、できることは以下の3つ。
- イーサリアムの採掘
- スマートコントラクトの作成
- ブロックチェーンの履歴確認
Windows、Mac OSどちらでもインストールすることができますよ。
>>>Gethのインストールについてはこちら
Solidity(ソリディティ)の開発ツールについて
Solidityで効率よく開発するためのツールは
- Remix
- Truffle
- OpenZepplin
以上の3つが主なものとなります。
一つずつ見ていきますね。
Solidtyの開発ツール①Remix
RemixはSolidityの総合開発環境(IDE)です。エディタも含まれており、コーディング、コンパイル、実行をすることができます。
IDEというのは、作業台のようなもの。つまり、なくてはならない存在です。
インストールしてローカルで立ち上げる方法と、Web上のすでに用意されたIDEを利用する方法があります。
Solidtyの開発ツール②Truffle
Truffleは、イーサリアムのアプリケーション(Dapps)開発フレームワークです。
ソースコードのコンパイルやデプロイなどを効率的に開発することができます。
ココがポイント
スマートコントラクトの開発には欠かせない存在
「Pet Shop」というチュートリアルが用意されていて、Dapps作成の一連の流れを体験することができます。
2018年の記事ですが、インストール方法や、チュートリアルについて日本語で詳しく書かれていますので参考にしてみて下さいね。
Solidtyの開発ツール③Open Zeppelin
オープンソースのSolidityのライブラリです。ERC20、ERC721規格のトークンを発行する際のテンプレートとなるコードが用意されています。
ちなみにそれぞれのトークンは、、、
・ERC-20⇨代替可能・・・ビットコインやイーサリアムなどの仮想通貨の規格
・ERC-721⇨代替不可能・・・NFTの規格
という感じ。
スマートコントラクトは、一度実装してしまうと書き換えることが非常に困難です。
Open Zeppelinによって既に用意されたライブラリを利用することによって、安全に実装、テストをすることができます。
Solidity(ソリディティ)は独学できる?(⇦不可能ではありません)
学習方法、開発に必要なものなどを紹介してみましたが、いかがだったでしょう?
初心者の方で、、、
「よし!独学で頑張ってみよう!」
と思われた方は極めて少ないはず。。。
という方の方が圧倒的に多いでしょう。
Solidityは、JavaScriptと似た記述でコードを書くことが出来ます。
しかし、、、
現役エンジニアの方で、自身のキャリアアップのために独学で習得することは十分可能でしょう。
が、全くの初心者にとってはなかなか厳しいというのは否めません。。。
というより、Solidityを学んだだけでは、Web3エンジニアとしての価値は低いでしょう。
とはいえ、これから全くの初心者の方でも学ぶ価値は十分有ります!
なぜなら、、、
ココがポイント
日本でSolidityが書けるエンジニアが極めて少ないから
です。
希少価値の高い、エンジニアになってみませんか?
Solidity習得までに必要な知識や言語を知る
全くの未経験の方が、Solidityを活用したWeb3エンジニアを目指すのであれば、遠回りをするのがベストです。
ココがポイント
なぜなら、Web3エンジニアはWeb系エンジニアの延長線であるから
コツコツ下地を作ってから、Solidityを学ぶようにしましょう。
そこでオススメしたいのが、Udemyの『NFT-Mintサイトを作ろう!【Solidity/Next.js】』という講座を受講することです。
実際にNFTのミントサイトを作ることが可能。
全体の流れを把握することができ、「他にどのような知識や言語が必要なのか?」ということを実感することができますよ。
あなたが、学ぶべきことを知れるはずです。
さらに、講座の途中であれば、返金請求もできます。
なんて時にも安心ですね。
ぜひ、講座内容だけでも目を通してみてください。
ポイント
定価は24,800円の講座ですが、頻繁にセールがあります!
セールの時は、80%〜90%OFFになるので、必ずセールのときに買うようにしましょう!
プログラミング未経験者がSolidity習得するまでのロードマップ
ご紹介した講座を活用した、Solidity習得までのロードマップを考えてみました。
step
1Udemy「NFT-Mintサイトを作ろう!」を受講
スマートコントラクトの使い方、全体の流れを把握
step
2学ぶべきことを知る
HTML/CSS、JavaScriptなど、基礎的なことを学ぶ
step
3Solidityを本格的に学び直す
もう一度、Udemy「NFT-Mintサイトを作ろう!」を受講するのもあり
→理解力のあぶり出し
以上のような感じで学習を進めれば、スムーズに学ぶことができるかもしれません。
とくに谷口まことさんの「ちゃんと学ぶ、HTML/CSS+JavaScript」は、めちゃめちゃわかりやすいです。
セール中であれば、参考書一冊分の値段と変わらないので、気軽に受講することができます。
プログラミングスクールを利用するのもアリ!
Solidityを「私は独学で習得するんだ〜!」という気持ちは素晴らしいです。
実際に不可能ではないでしょう。
しかし、時間がかかってしまうというのは否めません。
Solidityは、WEB3.0やNFTに関わるプログラミング言語です。
今立ちあがろうとしている市場であるということは間違いありません。
つまり今なら、、、
ココに注目!
ブルーオーシャン!早く入った人が有利!
という状況なんです!
スピードが何より大事!ということですね。
スピードを求めるのであれば、独学よりもプログラミングスクールで学ぶ方が圧倒的に早いです。
一つだけプログラミングスクールをご紹介しますね。
Solidity(ソリディティ)が学べるプログラミングスクールはテックアカデミーだけ!
TechAcademy [テックアカデミー]は、オンラインプログラミングスクールで、Solidityを学ぶことができる「スマートコントラクトコース」というものが用意されています。
ブロックチェーンの仕組みや、仮想通貨のマイニングの理解などを網羅的に学習をすることが出来ます。
現在(2023年5月時点)、Solidityが学べるオンラインプログラミングスクールはテックアカデミーのみです。
料金は以下の通り。
4週間プラン 集中して学びたい方向け |
8週間プラン じっくり学びたい方向け |
12週間プラン 多忙で時間がない方向け |
|
---|---|---|---|
料金 (税込) |
174,900円 | 229,900円 | 284,900円 |
メンタリング | 7回 | 15回 | 23回 |
チャットサポート | 24時間以内に返答 | 24時間以内に返答 | 24時間以内に返答 |
学習時間の目安 (1週間) |
40〜50時間 | 20〜25時間 | 14〜18時間 |
分割払い対応(月々約7,288円〜)
決して安いとはいえません。
が、スキルを習得できれば、ものすごく価値のあるエンジニアになることができますよ!
返金請求はできるが条件は厳しい
テックアカデミーの講座は、一応返金請求が可能です。しかし、条件はかなり厳しいです。。。
- 利用開始の1営業日前までなら全額返金される
- 一度ログインすると解約・返金ができない
上記の通り。一度でもログイン、つまり受講を始めると返金請求は不可能ということです。
返金請求ができるのは、受講までということですね。
テックアカデミーのプランの選び方
ぼくも、過去に独学でプログラミングを学んだ経験あります。その時に感じたことは、、、
ということです。
ダラダラと半年ほど学習しましたが、やはり前に学んだことは忘れてしまうんですよ。。。
そのため、また戻って学び直したりということを繰り返しているうちに”挫折”してしまいました。
つまり、、、
ココがポイント!
短期集中で学ぶのがオススメ
です!
上記の料金表で考えてみると、「4週間プラン」か「8週間プラン」が良いでしょう。
学習時間の目安をこちらに書き出してみると、、、
- 4週間プラン⇨40〜50時間/週
- 8週間プラン⇨20〜25時間/週
とあります。
1日あたりで考えてみると、、、
- 4週間プラン⇨5〜7時間/日
- 8週間プラン⇨3〜4時間/日
という感じです。
時間を確保できるのであれば4週間プランがオススメ!(費用も安いです)
この期間は学習に全集中!するくらいの気持ちが求められます。
週に2回、パーソナルメンター(学習を助けてくださるスペシャリスト)がサポートしてくれます。
オンラインスクールという、1人での学習環境の支えとなりますよ。
原則としてメンターは変更できないが、、、
という心配をされる方もおらるかもしれませんね。
テックアカデミーの利用規約をみてみると、、、
*テックアカデミー利用規約より引用
会員は担当メンターの指名および変更は行えないものとします。ただし、当社が担当メンター変更の必要があると認めた場合はこの限りではありません。
とあります。
原則、変更は難しいようです。。。
が、どうしても「メンターと相性が合わない」などという場合は正直に申し出てみましょう。変更してもらえるかもしれませんよ。
まずは学びやすい言語から始めてみる
テックアカデミーでは、Solidity以外にもJavaScript、Pythonなど、様々な言語を学ぶことが可能。(上記の費用とは異なる場合があります)
いきなりSolidityを学ぶのではなく、学びやすいJavaScriptなどを学べるフロントエンドコースからはじめても良いかも?
とくにJavaScriptは、Web3エンジニアにとって必須スキル。
テックアカデミー無料体験で、雰囲気を味わってみてくださいね!
Solidity(ソリディティ)についてのまとめ
日本では、エンジニアが不足していると言われています。
その中で、Solidityが書けるエンジニアとなれれば、希少価値は相当高いですよ♪
Solidityの普及はほぼ間違いないありません。
なぜなら、、、
現に、ぼくが参加しているDAOでも、ものすごく重宝されていますよ!
ぼくがエンジニアを目指すなら、間違いなく習得したい言語の一つ。
初心者の方は段階的に学習するのも一つの方法です。先述しましたが、記述の似ているJava Scriptから始めてみるのも良いかもしれませんね。