I've been asked about this quite a few times, so I thought I would write it up here to direct people to.
Common variations are:
What is the best programming language to learn in?
I want to know how to write programs.
What is the best language to do XXXX in?
So, since I'm a Microsoft programmer, these tips and suggestions will be for Microsoft Products.
FREE ones that is.
You can find similar stuff for most languages if you search the net.
- Development language - Get Visual Studio Express. you can use it for C#, J#, Visual Basic, and C++. You can also use it in any of those languages to write both Windows and ASP.NET (Web) applications with the Web Developer version.
- Database - Get SQL Server Express. Free. Get the Advanced version, it has some very useful tools. Also, you can use the Data Sources (ODBC) tool (Control Panel -> Administrative Tools) to create databases for Microsoft Access without having Access installed.
- Extras - SQL Server Feature Pack - More SQL goodies. CodeSmith - lets you generate common code quickly using templates. Reflector - This lets you look inside a compiled .NET program to see how things were done. I use it a lot to look at how Microsoft have programmed something.
For all of these, you will need to register, but it's well worth it. For instance, at the moment, with Visual Studio Express, you get 250 royalty free pictures, plus a full set of icons you can use when you register.
What language to use?
I use C#. I originally learned in Visual Basic (VB) but when .NET (which is what Visual Studio is designed for) came out, I switched. Not because VB was worse, but because the new version was so different that it was better to make a clean break and lose the habits I had that were not appropriate any more.
I recommend C++ or J# only if you are already familiar with C or Java. Otherwise you can pick VB or C#. There are huge amounts of sample code available for them both in the MSDN. Also places like www.planetsourcecode.com and www.codeproject.com are excellent resources if you have specific questions.
For databases, you need to learn SQL. Each database has a slightly different "flavour" of SQL, but the basics remain the same.
What else do I need?
If you can, sign up for the MSDN Flash you get tips and ideas, plus often you get chances to get free software, or shots at the Microsoft Certified Professional Exams.
Other than that, you need ideas, practise, and code to look at.
Software Engineer MSCD.NET
"Putting your experience to work"