In the following blog post I'm going to tell you how I set up my development environment. I hope people will find it useful.
Currently my work is mostly focused on drupal, but I've worked with C++, C# and Asp.net. First I'm going to tell you about general setup which is common for all technologies, after that I'll tell you about items specific to technologies.
I keep all my projects inside "Projects" folder in home, some distros have it by default, if it not don't exists create one. In side projects folder I've one folder for each technology and inside this folder fror each client/project, for example for a project xyz using drupal folder will be "/home/sharique/Projects/drupal/xyz". Inside this I've some common folders like files (for various resources, like documents, site files, etc), tmp (everything uncategorized), docs ( for project docs like documentation, requirement docs, wire-frame, etc) and project repos. If there are many repos in project it is better to have a repos folder, because for a large projects over the period you end up creating many folders for different purposes. Even for web projects I follow same structure and create either virtual host or symlink inside www folder.
I mostly used Netbeans and sublime text for most of my drupal work. I also started using PhpStorm in office as my company have licenses. Netbeans has good support for drupal 7, there is a nice plug-in (https://github.com/HollyIT/NBDrupalDevel) but support for drupal in PhpStorm is far better. Here is a blog post if you want to use it for drupal development (http://alexrayu.com/blog/benefits-netbeans-drupal-ide). IDE make doing things easier, either is formatting a file or building a projects or debugging. My top reason for using an IDE is code completion and syntax errors and other warnings. IDE also uses a lot of resource, so for small things it does not make sense to use it. For small tasks I use Sublime Text.