---
title: "Solidity開発者になる方法"
description: "凄腕のSolidity開発者になるために必要なすべて"
---

## ‍なぜSolidity開発者になるべきか

より分散化・民主化されたインターネットを指す用語であるweb3と、その基盤技術であるブロックチェーンが勢いを増し続ける中、このエコシステムに深く関わることは、1990年代にインターネットアプリケーションの開発方法を学ぶことに匹敵する具体的なメリットにつながる可能性があります。

ブロックチェーン技術は、NFT、DeFi、[DAO](https://www.alchemy.com/dapps/top/daos)といったよく知られた分散型アプリケーションやユースケースを支えています。インターネットの未来を形作ることに参加する方法として、[ブロックチェーン開発者](https://www.alchemy.com/overviews/solidity-developer)になることはweb3の世界に貢献する複数の道の一つであり、この技術が消費者・産業双方の場面でより実用的になるにつれ、影響力があり、かつ高収入につながる可能性があります。

これを踏まえると、どの[web3プログラミング言語](http://www.alchemy.com/overviews/web3-programming-languages)を学ぶべきか気になるところでしょう。最良の選択肢の一つがSolidityです。これはEthereumなどのブロックチェーン上でスマートコントラクトを実行するためのオブジェクト指向プログラミング言語です。

Solidityの構文はJavaScriptやCに似ているため、web2開発者であれば学習曲線をより早いペースで登ることができます。

cryptocurrencyjobs.coによると、米国における[Solidity開発者の平均基本給](https://www.alchemy.com/overviews/solidity-developer-salary)は127,500ドルで、下限は80,000ドル、上限は180,000ドルです。この数字は勤務地、企業、経験によって異なります。

分散型で非同期、変化の速い、そして高収入な環境で強力な技術に取り組むことは、ますますデジタル化が進む今日の世界において得難い経験です。まだ納得がいかない方のために、web3ムーブメントが開発者にとって魅力的な選択肢である理由を簡単にまとめます。

1. 毎週学び続けている5,000人以上の開発者に加わる
1. Discordでクイズに答え、Telegramで新しい友達を作り、スワッグを獲得する
1. プロジェクトベースのカリキュラムで新しいプログラミングスキルとツールを学ぶ
1. Proof of Knowledge NFTでweb3開発者としての評判を築く

## **Solidity開発者になるための7ステップ**

Solidity開発者とは何か、そして急成長するこのムーブメントに参加するメリットについて基本的な理解ができたところで、Solidityについてさらに学ぶ方法を見ていきましょう。

### **1. ブートキャンプに参加する**

Solidityの学習とEthereum開発者になることを加速させる効果的な方法の一つが、[Solidityブートキャンプへの参加](https://www.alchemy.com/overviews/solidity-bootcamp)です。講師主導のブートキャンプを通じて、開発者はコアとなるブロックチェーン暗号技術のスキルを習得し、Ethereumへの理解を深め、分散型アプリケーションを構築・デプロイし、スマートコントラクト開発を習得できます。

Alchemy Universityの7週間のEthereum Developer Bootcampは、web3に新しい開発者が最も人気のあるプログラミング言語を学ぶための理想的な方法です。カスタム学習ツール、インタラクティブなコーディング課題、成長する業界に対応して進化するカリキュラムは、[Alchemy Universityのプログラム](https://university.alchemy.com/?a=96a59db6cb)のメリットのほんの一部です。

開発全般に不慣れな方であれば、Alchemyの**3週間のJavaScriptクラッシュコース**は、Ethereumブートキャンプを始める前の前提条件として最適です。

### **2. Solidityの基礎を習得する**

Solidityの習得により個人的なアプローチを好む方には、多数の公開ガイド、記事、動画が役立ちます。これらのリソースは、開発者が基本的なブロックチェーン用語、ツール、アプリケーションを自主的に学ぶ助けになります。さらに、C++、JavaScript、Pythonの基礎知識があれば、学習プロセスを加速させることもできます。

とはいえ、[スマートコントラクトを開発する](https://www.alchemy.com/overviews/solidity-smart-contract)には、安全な手法と安全でない手法の違いを理解する必要があります。[スマートコントラクトのセキュリティ](https://www.alchemy.com/overviews/smart-contract-security-best-practices)のベストプラクティスを無視したり見落としたりすることは推奨されません。

習得すべきSolidityの基本概念には、Solidityの関数と修飾子があります。**Solidityの関数**は、特定のタスクを実行するために一つにまとめられたコードブロックまたはステートメントの集合です。一般的に、Solidityの関数は_function_キーワードを使用して定義され、その後に予約キーワードと一致しない一意の関数名が続きます。また、関数はパラメータの名前とデータ型を含むパラメータリストを持つこともできます。

**Solidityの修飾子**は、オブジェクト指向プログラミングで使われるデコレーターパターンに類似したものです。要するに、修飾子はそれが付与された関数の動作を変更できます。修飾子の主な用途は、関数の実行前に自動的にチェックを行うことです。関数が修飾子の要件を満たさない場合、例外が発生し、直ちに関数の実行が停止します。

### 3. Solidityの補助ツールを学ぶ

Solidity開発者になるには、web3ツールについての幅広い理解が必要です。Hardhat、Alchemy、[Remix（オンラインIDE）](https://www.alchemy.com/overviews/solidity-ide)のような補助ツールは、多くの企業が同様の技術スタックを使用しているため、あなたのアプリケーションのプロフィールを高めます。

#### **Hardhat**

**‍**Hardhatには、開発用に設計されたローカルEthereumネットワークであるHardhat networkが標準搭載されています。コントラクトのデプロイ、テストの実行、コードのデバッグはすべてローカルマシン上で完結します。

Hardhat network上でコントラクトやテストを実行する際、Solidityコードから[console.log()関数](https://www.alchemy.com/overviews/solidity-console-log)を呼び出すことで、ログメッセージやコントラクトの変数を出力できます。この関数を使用するには、hardhat/console.solをコントラクトのコードベースにインポートする必要があることを忘れないでください。

#### **Foundry**

FoundryはRustで書かれた、非常に高速でポータブル、モジュール式のEthereumアプリケーション開発ツールキットです。Foundryは、Forge、Cast、Anvilという3つの独自の要素で構成されています。

- **Forge** - HardhatやTruffleに類似したEthereumテストネットワーク
- **Cast** - EVMベースのスマートコントラクトとのやり取り、トランザクションの送信、チェーンデータの取得を行うための機能豊富なツール
- **Anvil** - Hardhat network上のローカルEthereumノードで、Ganacheに類似
- **Chisel**: 高速で実用的、詳細な出力を得られるSolidity REPL

さらに、開発者が利用できるブロックチェーン開発者向けツールは他にもあります。網羅的なリストではありませんが、チェックしておくべきツールをいくつか紹介します。

1. **Truffle** - Ethereum向けの開発環境、テストフレームワーク、アセット管理パイプライン
1. Brownie - Ethereum Virtual Machine（EVM）を対象としたスマートコントラクト向けのPythonベースの開発・テストフレームワーク
1. **Echidna** - スマートコントラクトのプロパティを定義し、ファジングを使ってセキュリティバグを検出する
1. **Remix** - ブラウザからSolidityコントラクトを記述、コンパイル、デバッグできる強力なオープンソースIDE

### 4. Solidity開発の実践経験を積む

チュートリアルと[コース](https://www.alchemy.com/overviews/solidity-course)は、NFTスマートコントラクト、オンチェーンDAO、分散型金融アプリケーションのいずれを作成したい場合でも、Solidity開発を学ぶ主な方法です。これらのweb3チュートリアルは、参加者が書かれたドキュメントと動画によるウォークスルーに従って特定のタスクの完了方法を非同期的に学べるガイド付き体験として機能します。

始めるにあたって、[Alchemy's Road to Web3](https://www.alchemy.com/docs)シリーズにあるSolidityチュートリアルを検討してみてください。以下のような内容が含まれています。

- NFTスマートコントラクト（ERC721）の開発方法
- 「Buy Me a Coffee」DeFi dAppの構築方法
- オンチェーンメタデータを使ったNFTの作成方法
- NFTギャラリーの作成方法
- ダイナミックNFTの作成方法
- ステーキングdAppの構築方法
- [NFTマーケットプレイス](https://www.alchemy.com/dapps/best/nft-marketplaces)の構築方法
- Optimism上でのベッティングゲームの構築方法
- 0x APIを使ったトークンスワップDappの構築方法
- 分散型ソーシャルメディアアプリの作成方法

### 5. Ethereumハッカソンに参加する

ハッカソンは、さまざまな背景を持つ人々が集まり、実世界の問題を解決する実用最小限の製品（MVP）を開発するイベントです。[Ethereumハッカソン](https://www.alchemy.com/overviews/best-web3-hackathons)は、世界中の人々と新たなつながりを作り、web3のポートフォリオを構築し、実践的な開発経験を積み、場合によってはイベントを協賛する企業への就職につながる、素晴らしい機会です。

オンラインでも対面でも、ハッカソンはweb3の世界にさらに深く入り込むためのプラットフォームを提供してくれます。現在、web3ハッカソンにおけるゴールドスタンダードといえるのがEthGlobalのイベントとGitcoinです。どちらも充実したトレーニングと実践経験を提供しています。

### **6. バウンティのためにスマートコントラクトを監査する**

バウンティのためにスマートコントラクトを監査することも、実践経験を積み、報酬を得て、スマートコントラクトの仕組みを理解するもう一つの方法です。個々の企業や分散型プロトコルが主催するバウンティプログラムのほかに、バウンティプログラムを見つけるためのプラットフォームもあります。例えば以下の通りです。

1. web3ネイティブなプラットフォーム - ImmunefiとHackenProof
1. 従来型のプラットフォーム - BugcrowdとHackerOne
1. **プロジェクト運営のバウンティ** - Ethereum Foundationと0xProject

### 7. Solidity開発者の求人に応募する

基礎知識と実践経験を身につけたら、次のステップとして[フルタイムのSolidity開発者の職](https://www.alchemy.com/overviews/solidity-developer)への応募を検討しましょう。世界中のチームメイトと共に、web3エコシステムと分散型技術のための製品、サービス、インフラを構築することになります。

エネルギー、共感力、そして主体的な学習姿勢も非常に重要であることをお忘れなく。

#### 履歴書とLinkedInを更新する

Solidity開発者の職に応募する際は、[履歴書とLinkedInをweb3に焦点を当てた内容に更新する](https://www.alchemy.com/overviews/web3-hackathon-resume)ことが重要です。プロフィール、職務経験、プロジェクト、学歴、スキル、資格、そしてポートフォリオへのリンクを必ず目立たせましょう。

最後に、定量的な情報を含めることも良いアイデアです。これにより、採用担当者や潜在的な雇用主に対して、あなたの実績を説得力のある形で示すことができます。

#### **Web3の求人サイトで求人を調べる**

[web3の求人サイト](https://www.alchemy.com/overviews/solidity-jobs)で求人を調べることは、自分に合った役職を探す効果的な方法です。web3.career、cryptocurrencyjobs.co、web3jobs.soのようなサイトが良い出発点です。

Alchemy、OpenSea、Coinbaseのような大手web3企業は、採用のソーシング、リクルーティング、雇用に特化した社内リソースを持っているため、公開求人はおそらく[採用ページ](/careers)に掲載されているでしょう。

最後に、Solidityエンジニアを目指す方は、web2企業が投稿している暗号関連の求人や、より広い認知を得るために求人をクロスポストしている大手web3企業の求人を、IndeedやMonster.comのような求人サイトでも探してみることができます。
