C# as a starting point?

Started by
37 comments, last by Promit 15 years, 1 month ago
C# is not a bad first language, certainly better than C++, but I would recommend Python over it any day. Firstly C# requires you to put everything in classes which, apart from being a pet peeve of mine, doesn't make sense with beginners programs like hello world, guess the number, hangman and such. Secondly the dynamic typing of Python makes it great for beginners. They don't have to worry about declaring their variables ahead of time and such. I prefer static typing for large projects, but the dynamic nature of Python is great for learning. Thirdly the REPL is great for experimentation.

C# is a good language, and if you have chosen it to start with, don't let this change your mind. Just when people ask me where to start, I always answer Python.
Advertisement
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?


I don't care.

I am more interested in the ratio of beginners that become good programmers.


Quote:
Once they learn to think in high level, they will try to apply that in whatever they do.


Good.

Quote:
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?


Sigh.

The entire point of the article is 'Computer Science is good'. The authors lament the movement of programs away from mathematical based computer science to a less formal one. That such a change coincides with the introduction of Java to university courses is not really significant.

Saying that what language you start with depends on what you want to do 4+ years down the road is (in my opinion) not really using the right priorities.

Quote:
Do you think that it is 1:1?


I think that if they follow your link's advice and learn computer science, it'll be significantly closer to 1:1 than if they don't; regardless of language.
sto8qc, your points are unrelated, wrong, and/or irrelevant, and you appear to have misunderstood the point of the very article you tried to link in support of your own half-baked argument. Please refrain from posting that kind of misdirection and misinformation in this forum. You may consider this your warning.

There is to be no further discussion of this little tangent in this thread. Please return to the OP's original question.
Quote:
Hi everybody,

I’m kinda new to this community.

Welcome.

Quote:
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 on C/ C++..

The first two points are valid, although there is in actuality little about C# that is innovative in contrast with other (although perhaps less-well-known) programming languages. A lot of new, innovative language features are developing in research / academic / "toy" languages and then later get folded into languages that have a more mainstream target market. But that doesn't invalidate C#'s value as a first language. It would be an excellent place to start learning programming.

Quote:
I’ve also notice that you have great tutorials for both, so I’m quite excited about that and eager to start..

There was a C# workshop that was hosted here by moderator JWalsh a while back. You can dig up the threads in the forum list, I think they're near the bottom. While the workshop itself is over, there's an introductory thread that lists a bunch of good C# learning resources.
Yes I was referring to the workshop. I know is over, i wanted to partecipate when it was launched but had some external life issue that prevent me for doing so.

In relation to my "innovative" in my first sentence, you're right. I just wanted to say that the language is "new" instead of "innovative" :P

some limits in my english, sorry :)

thanks a lot everybody for your opinions and suppot
Quote:Original post by jpetrie
sto8qc, your points are unrelated, wrong, and/or irrelevant, and you appear to have misunderstood the point of the very article you tried to link in support of your own half-baked argument. Please refrain from posting that kind of misdirection and misinformation in this forum. You may consider this your warning.


Wow. I don't care for language arguments, so I never enter these threads, but I feel compelled to comment on this. Someone asked a question, sto8qc gave an opinion that was related to the question, and provided a relevant article. His post was on topic and non-offensive. If you think his opinion is wrong, then give some arguments as to why - that's the whole point of a forum. If you think the thread has devolved into deconstructive debate (language war, etc), then sure, remind people of that or close the thread.

What you've done is essentially exercised your police powers as a moderator to tell someone to STFU. That's precisely what a moderator is supposed to prevent from happening. GD.net works because there are people of many different skill levels and with many different opinions all offering advice and discussing things with each other. If people are afraid of posting because they think some expert (or jerk) is going to reply and tell them to shut up and they're wrong, then we all lose.
Quote:Original post by jdindia
Quote:Original post by jpetrie
sto8qc, your points are unrelated, wrong, and/or irrelevant, and you appear to have misunderstood the point of the very article you tried to link in support of your own half-baked argument. Please refrain from posting that kind of misdirection and misinformation in this forum. You may consider this your warning.


Wow. I don't care for language arguments, so I never enter these threads, but I feel compelled to comment on this. Someone asked a question, sto8qc gave an opinion that was related to the question, and provided a relevant article. His post was on topic and non-offensive. If you think his opinion is wrong, then give some arguments as to why - that's the whole point of a forum. If you think the thread has devolved into deconstructive debate (language war, etc), then sure, remind people of that or close the thread.

What you've done is essentially exercised your police powers as a moderator to tell someone to STFU. That's precisely what a moderator is supposed to prevent from happening. GD.net works because there are people of many different skill levels and with many different opinions all offering advice and discussing things with each other. If people are afraid of posting because they think some expert (or jerk) is going to reply and tell them to shut up and they're wrong, then we all lose.


While that is generally true on GDNet, this is the For Beginners forum, and as such special rules apply to help keep impressionable beginners from getting the wrong information and running with it. If he wants to discuss the merits of his opinions, he will have to abide by the moderator's mandate and move it to a different forum.
Mike Popoloski | Journal | SlimDX
I've always been told (by my parents/close relatives) that it's always best to learn the difficult first: and then move down to the more applicated things..

First learn physics and then applied engineering!

For that "line" (which I'm studying at the university) it works exceptionally well: it gave me a good headstart, and I've become never afraid from difficult problems! - Also it allows me to see the larger picture, and I'm easier in seeing connections/similarities between problems!

This is also what I'm doing for programming: first I learn how memory is laid down in the computer, and then move my way "down" (or "up" would be a better wording in this case) the ladder to more application-minded languages.

So I started with learning C/C++ (and especially looked for tutorials that explained also the internal workings directly at the start).

I'm not able to give a "review" from this yet: I haven't learned much (lack of spare time is probably the main reason :( ). But I still believe in the end it will make me a more complete programmer!
YES I use gamemaker, YES I'm proud of it, NO I don't want to move on yet..WHY? because I don't want to program the interface etc, I just want to focus on simulations with physical formulas and AI pathfinding codes..
Quote:Original post by paul23
first I learn how memory is laid down in the computer, and then move my way "down" (or "up" would be a better wording in this case) the ladder to more application-minded languages.

So I started with learning C/C++ (and especially looked for tutorials that explained also the internal workings directly at the start).


No offense meant, but if you think that C and C++ provide an accurate representation of how memory is "laid down" in a computer, then your education method is seriously flawed. After all, C beginners often get the impression that memory is linear and truly random-access, as this seems to be how pointers are. At least C# beginners won't be misled, even if they won't get this "understanding."
From experience, I recommend C++, even for beginners. Thats the I started.
It might be hard at first, but sooner or later it will click, and you will realize that there was nothing hard to understand this language.
Our whole life is a opengl application.

This topic is closed to new replies.

Advertisement