- Remix - This is your IDE or development environment. I've been using VIM and got a solidity VIM plugin as well. Remix is great because you can compile and troubleshoot some issues before deploying. There is a default ballot application to get you started.

- Metamask - This is a browser plugin that runs in Firefox or Chrome. It's nice in that you can send and unlock ether and even buy from Coinbase or other places. It also protects you from going to malicious phishing sites which I may have gone to. Plus who doesn't like the fox following you around while you do it.
- Parity - This can be used in addition or instead of Metamask. It's where you can keep a simple Ethereum test wallet for deploying contracts. This runs on your development machine (my Macbook Pro). It runs on Linux and Windows as well. To start out with you want to deploy it on the testnet. Start it as follows:
parity --chain testnet
It's pretty easy to get going with that. The snapshot looks as follows:
The current testnet is the Kovan testnet. If you're on this network then to deploy contracts you'll want test ether. How does one go about getting test ether? That is number... - Get Test Ether (KETH) - While this may change in the future, currently you do it through gitter.im. Go to https://gitter.im/kovan-testnet/faucet and enter your public address and they'll send you 5 KETH. You'll have to login (with Github ID or something) to get going.
Now you can get your stuff going. Nice. - MyEtherWallet - Let's suppose you write a contract. Then you want to interact with it and call functions, how can you do this? One easy approach is to go to https://www.myetherwallet.com and select the test network or network you have deployed the contract to. From there you can select 'Contracts', put in your contract ID. From there you need to put in the ABI and then you can start calling the functions of the code.
Technology
5 tools to get started developing smart contracts on Ethereum
Ethereum changes pretty quickly in terms of developing environments. When I first started I just created my own private ethereum cluster and worked on that. Things have gotten a lot easier. Here's how you get started: