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
- 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.
- 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.