C#

Let me start be explaining just how much of an inexperienced programmer I am. I started TRYING to learn C++ some years back with a dream of being able to write games. But the further est I ever got was simple DOS based screen programs,using the simplest of functions and a few loops and if/els statements. I would read a book till I finally couldn't understand any more, get mad and through it down, and buy another one.

I just bought a two book set for game programming using C#. The books are called "Learn Programming Now! - Microsoft XNA Game Studio 2.0" & "Microsoft Visual C# 2005 Step by Step".

So here are my questions.

First, is there any real hope of me learning to program?

Is C# really a good alternative programming language for C++?

I would eventually like to start writing programs for Linux, is this a good language for that as well? If not, then what is?

Even though I would like to eventually learn to write programs for Linux, I chose these books because I though it would be a good place to start due to the tools available and the suppose ed ease. And because it look similar to C++. So if I learn on a Microsoft based system like XNA, will I still be able to transist to Linux with that programming knowledge?

When I use tools like XNA, I am equiped and taught to program using so many tools and pre-programmed libraries, I fell like I might not really be learning to program at all, any input on that?

Comments

Yes, there is hope to learn to program. The bright news is most programming concepts remain the same from language to language. Each language has its own quirks and syntax issues, but once you get the core concepts you will just need a quick primer on a new language and be able to get going.

The reason C# looks like C++ is because it is an evolution of C++. Some people refer to it as Microsoft's response to Java.

C# is a good way to grow your skill set from C++. But it has limits in Linux. Right now to use C# in Linux you need Mono. Which I believe is still in development. If you are comfortable debug if a programming issues is your issue or the tool issue, go for it. Right now I suggest you stick to Windows. Linux is great. But at your current level, I think moving to Linux would be discouraging.

If you learn XNA on Windows, it will make it easier to learn the Linus equivalents, because You have the core concepts. But it will not be a situation where your XNA application will just compile and run on Linux. It will need to be converted.

When learning XNA you are learning programing. Due to market needs and Management desires, most programs will use a development and library tool set. You can still learn to program the low level graphic engine. It is not as fun as it sounds. I haven't used low level graphics API calls for atleast 11 years. Unless you application has to squeeze every once of performance out of the target machine, the tools and libraries are going to work for what you want.