C# as a starting point?

Started by
37 comments, last by Promit 15 years, 1 month ago
Hi everybody, I’m kinda new to this community. I really wanna learn a game programming language and was attracted by C#. The reason is that seems at the same time powerful, easy to learn and quite “innovative”. I would like to understand from you guys if this would be a nice choice to start or if is necessary to first focus onC/ C++.. I’ve also notice that you have great tutorials for both, so I’m quite excited about that and eager to start.. Thanks for your help, Encio
Advertisement
Given the choice between C++ and C# I would always recommend C# to a beginner. It will be easier to learn and more productive to use. If you later want you can still learn C++, which will be far easier to do if you already know C#, since their syntax is pretty similar.

Quote:I would like to understand from you guys if this would be a nice choice to start or if is necessary to first focus onC/ C++..


There is no almighty, god given rule commanding you to programm in C++ (At least none that I know of^^) You will be fine with any language you choose and feel comfortable with.
wow thanks, that's just the answer i hoped to recive :=)
Quote:Original post by Encio
wow thanks, that's just the answer i hoped to recive :=)


In contrast with the first reply, I would never recommend C# as a first programming language unless you have plans to become a business application or web developer. Please take a look at this article:
http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html
Read section "The Pitfalls of Java as a First Programming Language". This is about Java, but also applies to C# very well.
Again, I've always heard that it's best to start from the top and work your way down. Therefor, starting with the more difficult language, and then once you are comfortable with that, work on simplifying your process by dabbing in the easier ones.
Quote:Original post by sto8qc
In contrast with the first reply, I would never recommend C# as a first programming language unless you have plans to become a business application or web developer. Please take a look at this article:
http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html
Read section "The Pitfalls of Java as a First Programming Language". This is about Java, but also applies to C# very well.


Well, I disagree.

Quote:Students found it hard to write programs that did not have a graphic interface, had no feeling for the relationship between the source program and what the hardware would actually do...

This is true for most people who just started programming, no matter whether they started with java, c# or c++

Quote:...and (most damaging) did not understand the semantics of pointers at all, which made the use of C in systems programming very challenging.

In C# you can use pointers as much as you please (in unsave code), also if you are learning C# you sooner or later will have to learn the difference between value und reference types and about boxing/unboxing, which will give you a (at least basic) understanding of pointers.

Quote:The irresistible beauty of programming consists in the reduction of complex formal processes to a very small set of primitive operations. Java, instead of exposing this beauty, encourages the programmer to approach problem-solving like a plumber in a hardware store: by rummaging through a multitude of drawers (i.e. packages) we will end up finding some gadget (i.e. class) that does roughly what we want. How it does it is not interesting!

I can't see this apply to C#. The FCL does provide a hole bunch of usefull classes, that make your life easier, but this is a clear advantaqe for a beginner. Most C++ beginners will take a similar approach and download libraries to make their life easier, or even worse copy and paste code from the internet or a book.


Starting with C# will be easier and learning won't stop after that. You can later always go to C++ or even assembler if you want.

[Edited by - DraganO on March 16, 2009 9:51:32 AM]
Pick a language - any common/popular language - and get to work learning. The important thing is to get started with something and then sticking with it until you get results. The underlying concepts will transfer from one language to another, and you'll find that once you've learned your first language it'll be significantly less difficult to pick up other languages (excepting perhaps particularly different or esoteric languages) if you need or wish to do so.


Personally I'd recommend C# to a beginner over C or C++, although any of the three will work if you stick with it. Like DraganO, I commonly recommend C# to beginning programmers.

- Jason Astle-Adams

Quote:Original post by sto8qc
In contrast with the first reply, I would never recommend C# as a first programming language unless you have plans to become a business application or web developer.


In support of the first reply, I always recommend C# as a first programming language these days.

Quote:
Please take a look at this article:
http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html
Read section "The Pitfalls of Java as a First Programming Language". This is about Java, but also applies to C# very well.


Sure, an insightful article that cautions against learning to 'make stuff in $X' and instead to learn computer science. As DraganO alludes to, this also applies to any language. That you recommend C# to business/web devs makes me inclined to think that the point of your link has eluded you.
I would like to ask those guys who advocates C# as a first language a question - What do you think is the ratio of developers who started with C# and can program in C++ between developers who started with C++ and can write in C#? Do you think that it is 1:1?

I see people there and here who tell that "do the easy thing first, the you can do some hard stuff". It is simply not true. People cannot easily change their way of thinking after they learn something. Once they learn to think in high level, they will try to apply that in whatever they do.

Quote:
Sure, an insightful article that cautions against learning to 'make stuff in $X' and instead to learn computer science. As DraganO alludes to, this also applies to any language. That you recommend C# to business/web devs makes me inclined to think that the point of your link has eluded you.

I'm impressed how you associate unrelated sentences.
I think that C# is good for business software. Guy who wrote tha article thinks that Java is popular in web industry. How does my opinion of one language is related to possible reason of popularity of other language?
Quote:Original post by sto8qc
I would like to ask those guys who advocates C# as a first language a question - What do you think is the ratio of developers who started with C# and can program in C++ between developers who started with C++ and can write in C#? Do you think that it is 1:1?

Of course not, c++ has been around for much longer than c#. But the principles of programming are language independent. It doesn't really matter what exactly your first language was.

Quote:Original post by sto8qc
People cannot easily change their way of thinking after they learn something. Once they learn to think in high level, they will try to apply that in whatever they do.

I don't think so. As soon as you begin to become better at programming in your first language (whatever languages this may be), you will want to learn other languages and want to understand what you are doing on a lower level. Which will effectively make you a better high-level programmer.
Are you suggesting all beginners should grab an hexeditor and start hacking machine code, just for the sake of being low-level? After all C++ is still pretty high-level.

This topic is closed to new replies.

Advertisement