I am a self-taught coder. As I have mentioned before, I do not work in the software or finance industries and therefore my code probably lacks the polish and modernity of others.
I like to write most of my code in C#. The reason for this is not just the ease of the language but also the tools that go with it. I have used Java on and off over the years, but have never really liked the tools available (or perhaps understood them). With C# and the whole Microsoft thing, there is just an ease of use and integration that makes life a bit easier for the amateur.
Language choices aside, I write all the software within Visual Studio 10 with the help of a fantastic utility Resharper by Jetbrains to check what I am laying down. With the advent of Linq, I am no longer forced to write stored procedures or other 'off-line' code that cannot be intellisensed. I think Linq is the best thing Microsoft has come up with in a long time!
Another useful utility that comes to mind is Regionerate. This tool will re-layout the order of your code to make it more readable. The tool is a bit old now - it doesn't seem the author supports it any longer, however, the existing version still seems to work with VS10.
I use an MS SQL Server to store data. With some tables being upwards of a million rows, this is the best and easiest way to handle data. I am currently using the *free* version (express I think they call it). You will need to also download the 'management studio' utility to help you build tables etc. MS SQL is an invaluable tool, especially when developing your strategies. It is worth learning some of the basics of the SQL language to help you query the data on file.