Best practices and tools are a bit scattered, and of course very much a work in progress since the community is still developing. You may be disappointed to find that there is not a cohesive, centralized set of best practices and workflow. My personal opinion is that truffle offers one of the most cohesive development experiences today, although over time you will likely find yourself doing most of your work one level of abstraction down: at the web3 layer. Here are some resources and tools that I have found useful.
- solidity.readthedocs.io - Primary resource for learning the Solidity language and development
- ethereum.stackexchange.com - Q&A
- A 101 Noob Intro to Programming Smart Contracts on Ethereum - One of the more comprehensive intro tutorials.
- [truffle](http://truffle.readthedocs.