👉 Build Your First Smart Contract On Ethereum With Solidity…

This guide takes 3 minutes 33 seconds to read.

🤖 Programming Languages

Solidity is the main programming language for smart contracts, however there are other languages which will be useful depending on your usecase.

Solidity — Object Oriented High Level Language For Smart Contracts

Vyper — Pythonic Programming Language For Smart Contracts

JavaScript — High Level Interpreted Scripting Language

Python — Interpreted High Level General Purpose Programming Language

Go — The Language In Which Geth (Go-Ethereum) Client Is Written In

Rust — Language In Which The Parity Client Is Written In

Java — The Pantheon Client Is Written In Java

.NET — Intergrateable To The Ethereum Blockchain With Nethereum

C++ — Protocol Development With The Help Of Github /Aleth

Ruby — See How Ruby Is Used In Ethereum With Github /Ethereum.RB

🏫 Smart Contract Libraries

These libraries are no different to traditional programming libraries. They contain reusable pieces of code, which can be shared time and time again.

OpenZeppelin — Implementation Standards For ERC20 & ERC721

Dappsys — Building Blocks For Building Smart Contracts In Solidity

🔐 Smart Contract Security Tools

Security is of the utmost importance, hence tools such as these ensure your code is safe. As well as following the Ethereum best development practices.

MythX — Service That Finds Vulnerabilities In Your Smart Contract Code

Oyente — Utilizes A Execution Tool That Works With EVM Byte Code

Manticore — Command Line Interface, Uses A Symbolic Execution Tool

💉 Smart Contract Testing & Deployment Tools

Tools such as these help you build, test and deploy your code. They are useful when you begin to create your decentralised applications.

Truffle Suite — Smart Contract Dev, Testing, & Deployment Framework

Waffle — Simple Library For Writing & Testing Smart Contracts In Ether.JS

Embark — All In One Platform For Building & Deploying Applications

Infura — Provides Instant & Scalable API Access To The Ethereum & IPFS’s

Rhombus — Oracle Solution For Your Smart Contract

🤝 Ethereum Blockchain Clients

Clients are crucial. They provide interfaces to create transactions, and mine blocks upon Ethereum. Here we have some of the most popular.

PegaSys Pantheon — Open Source Ethereum Client Written In Java

Parity — Ethereum Client Using The Rust Programming Language

Geth — Command Line Interface For Running A Full Ethereum Node

MetaMask — Chrome Extension Brining Ethereum To Your Browser

✏️ IDE & Editing Tools

IDE’s (Integrated Development Environments), and Editors are needed to write and test your software. Below we have the most popular.

Atom — Open Source & Usable Text Editor

Remix — Tools Allowing You To Debug Trasactions On Ethereum

Visual Studio Code — Ethereum Solidity Language For Visual Studio Code

🚶‍♀️ Local Testnets

Local Testnets allow you to test your software in a safe environment, without deploying it to the public. Note these only run on your computer.

Ganache — Quickly Fire Up A Personal Ethereum Blockchain To Test

Ganache CLI — A Quick Ethereum RPC Client For Testing & Development

📡 Public Testnets

Public Testnets allow Ethereum developers to test the decentralised application they have built, without publiishing on the main network.

Ropsten — POW Blockchain That Resembles Ethereum To Mine Faux Ether

Kovan — POA Blockchain Created By Parity

Rinkeby — POA Blockchain Created By Geth

Görli — Community Based & Open

🖥️ Front–End Interfaces

The front-end interfaces listed below will help turn your decentralised application, into a full scale project that is like on the main-net.

Web3.js — Ethereum JavaScript API Which Connects To Generic JSON RPC

Ethers.js — Ethereum Wallet Implementation

Drizzle — Front End Libraries That Make Writing Dapp UI Easier

🔗 Back-End Interfaces

To work with back-end interfaces for your dapp you should be well versed in the following languages; Go, Rust, Java, .NET, Ruby, or Python.

8 Web3.py — Python Implementation Of Web3.JS

Nethereum — An Open Source .NET Integration Library For Blockchain

Web3j — Lightweight Java & Android Library

💾 Blockchain Storage Platforms

Data. Data. Data. Platforms listed below are where the data for your smart contracts are stored, IPFS is the most popular out of those listed.

IPFS — P2P Hypermedia Protocol To Make The Web Faster, Safer & Open

Swarm — Distributed Storage Platform & Content Distribution Service

OrbitDB — Decentralised P2P Database Upon IPFS

💽 Data Querying Tools

Tools such as those listed below will help developers gain access to key data that is needed for your Ethereum blockchain project, or application.

Alethio — Ethereum Data Analytics Platform

Etherscan — Block Explorer & Analytics Platform For Ethereum

🏢 Enterprise Blockchain Tools

When corporations test with blockchains, it is often enterprise blockchains. Hence, these are important for corporate blockchain devs.

Kaleido — Build & Run Cross Cloud, Hybrid Enterprise Ecosystems

Microsoft — Kit Simplifies How You Build & Deploy Smart Contracts

📚 Educational Resources

The blockchain ecosystem as a whole moves at a lightning pace, hence it’s helpful to know there are more than outdated Youtube tutorials around.

Buidl School — Hodl Cryptocurrencies & Buidl Decentralised Applications

ConsenSys Academy — Bridging The Blockchain Knowledge Gap

EthHub — Resource For Ethereum Information

Kauri — Learn To Build On Ethereum With Kauri

Blockchain Training Alliance — Blockchain Training & Certification

👔 Work Resources

Indie developers also have much to gain this ecosystem, with marketplaces opening up harnessing the power of talented and distributed teams.