I stated my new initiative is to educate the masses, so why not start with the place in which the masses at one point also began?
All this means is that out of the box C# comes with a lot of functionality built-in for you. The .Net Framework is essentially just as it sounds. It’s a collection of tools to help you do your job more easily.
You don’t need to reinvent the wheel, and the wheel is the .Net Framework.
When you write code against the .Net Framework, it is compiled into another language called an intermediate language. In-fact, C# is not the only language under the umbrella of the .Net Framework; there’s VB.Net, C++.Net, F#, A#, P#, and many more (complete list here). When you write code in any of these .Net languages and compile it, the .Net compiler turns your human readable code, into the less human readable intermediate language. This language is complex, but can be interpreted and transformed once again into native code (or machine code). The glory of this process is what allows 5 developers, all using different languages targeting the .Net Framework to work on the same project at the same time (not that this would happen often).
So with all of these other languages out there, why choose C#? Why even choose the .Net Framework for that matter?
Both good questions, and both have complex answers.
Myself being a C# developer, am a little biased. However, from my experience over the past 6 years, here’s what you should know.
If you’re wanting to work on intensive, high performance video games targeting the popular platforms out there (PS3, Xbox 360, Wii), then C++ is the language you should learn.
If you’re wanting to get into phone development, then depending on the platform you choose, iPhone = objective C, Android = Java, Windows Phone = .Net (C#, Silverlight).
There’s a lot more fields and languages to suit them, but the last one I’m going to talk about is tools development. What is tools development? What is a tool? Well, aside from that guy in highschool that wore his football jersey every day, a tool in the context of software development is an application that aids another person. Consider it analogous to a tool you would pick up out of a work shed to aid yourself in some home improvement task. Tools are an amazing asset to software development. A tool could be developed for internal use within your company or team, or it could be developed and released to the public. Microsoft Word is an example of a tool in the public. In-fact, all of the Microsoft Office suite applications are tools.
In this day and age, quick turn around time is important for tools and application development. Remember the .Net Framework that I mentioned before? Well, it comes with a ton of building blocks out of the box to assist you in getting your job done faster. For this reason among many (read… many) others, and the simplicity (arguably) of the .Net Languages (most notable, C#), the .Net Framework is a perfect choice for tools and application development. It is also a great way for first time programmers to jump in and get their feet wet with software development.
There is always market research being conducted on where the jobs are geared towards in programming these days. I can tell you that familiarity with the .Net Framework is a plus in a lot of companies out there. I haven’t seen every job, but I have casually job hunted over the past few years and the market never ceases to amaze me with its plethora of jobs targeting the .Net Framework.
I hope you were able to take something away from this. I wanted to talk about C# and the .Net Framework first before I lectured on coding. If you had familiarity with this already, then I hope it was a refresher for you. If this was all new to you, then I hope this was helpful in aiding you in deciding what path to take next.
In any case, if you have any questions, feel free to email me or leave a comment here.