Online editor with a dash of IDE: https://ethereum.github.io/browser-solidity1
Documentation: http://solidity.readthedocs.io/
First Screen: http://imgur.com/a/qK9KM
Testing and Deployment Menu: http://imgur.com/a/5aO5f
This is where most of the action happens that isn't writing code.
Hit the "New File" button in the top-left corner of the page.
Paste in this contract to have something quicker to work with than the original liquid voting example:
// anyone can write an entry in this visitor log
contract VisitorLog {
mapping (uint => string) public entries;
uint public totalEntries;
function addEntry(string entry){
// add your entry to the next spot in the log and increment the total
entries[totalEntries++] = entry;
}
}
Click the red "Create" button in the testing/deployment menu.2
Enter "Hello Ethereum" (with quotes!) into the input field to the right of the red "addEntry" button. Then click the "addEntry" button to execute a transaction3 that uses the function.
Enter "0" (quotes optional) next to "entries", then click it to make a call4 to the function and read back what you entered.
You now have everything you need for getting familiar with Solidity.
Check out the Solidity documentation for more complex examples, support for other editors, and ideas for what to try and learn next.
1 Apologies for the Mix IDE fiasco before.
Browser-Solidity now has some support for trying out contracts, making it my current recommendation for the best place to start. It's still a little rough around the edges but a far cry from before.
2 Red indicates a button will have an effect on the blockchain, blue indicates only reading from it. By default browser-solidity creates a private blockchain for testing purposes. If you set it up to connect to the public blockchain, then make certain you're doing exactly what you want to do and nothing else. It's very easy to lose money if anything goes wrong.
3 More database transaction than financial transaction in this case. Though it will still cost a very small amount to cover using the Ethereum network's resources. Or rather it would if this was happening on the public Ethereum blockchain.
4 There's a distinction between calls and transactions. Calls are also an ambiguous term depending on context. Short version: calls don't affect the blockchain, transactions do. Longer version: http://ethereum.stackexchange.com/questions/765/what-is-the-difference-between-a-transaction-and-a-call