I have a goal of completing my practical preparation in three months and specializing in web and desktop software graphical user interface programming using ASP.NET Visual C# 2010, and WPF using VC# 2010.
I already have the following Microsoft courses available to me:
Collection 6460: Visual Studio 2008: Windows Presentation Foundation
Collection 6463: Visual Studio 2008 ASP.NET 3.5
Collection 6464: Visual Studio 2008 ADO.NET 3.5
ASP.NET Using Visual C# 2010
Microsoft AJAX 4 Using Visual C# 2010: Server
Silverlight 4 using Visual C# 2010
Windows Presentation Foundation using VC# 2010
Besides freelance projects, is there something missing from my preparation, if so, what and why?
Here Is The Answer To Your Question
You are right in thinking that the gap with your skills lies in your practical experience.
As far as software development is concerned, while an Associate Degree / Diploma / College Degree is nice, what employers are really looking for is your hands-on software development experience and your expertise in specific software skills.
If you don’t have a college degree and you are good at coding, you will get a software development job.
Employers are concerned about your skills in specific software platforms. For example, if you know ASP.NET and C# very well and you’re perhaps weak in Windows Presentation Foundation (WPF) or ADO.NET, you will still get a job because web development skills are in high-demand compared to other areas of computer programming.
I think that the mistake you are making is that you focus is still too wide. You are approaching the Software development job market like you are in college.
In your mind, you would like to learn every facet of .NET Software Development because you think that lack of competence in any area will disqualify you for a programming job.
But is that really true?
Do you have to master ADO.NET, WPF, SILVERLIGHT, SQL SERVER, JQUERY, AJAX, CSS, VS 2008, VS 2010, .NET FRAMEWORK, WCF, ETC. before you can get a software development job?
My Answer is: ABSOLUTELY NOT!
These skills are gained along the way as you work on client projects. The only thing that matters right now is that you become highly competent at the CORE .NET DEVELOPMENT SKILLS and then pick other skills along the way, depending on the projects facing your employer or client.
Does this make sense?