- install nodeJS and npm
- use VSCode, atom including a solidity linter
- use truffle framework for compilation and migration
- use Remix as quick alternative
- use metamask add-on to create wallet, add tokens, send transactions, etc
- use myetherwallet to create wallet, contract deployment, and testing, etc
- local testnet such as ganache-cli, testrpc
- public testnet such as ropsten, rinkeby
- use geth to build mainnet or testnet node
- bool
- uint/int
- string
- struct
- bytes
- address
- array
- mapping
- enum
- msg
- block