C# Programming: Prerequisites & Learning Curve

In summary, C# programming requires a good understanding of basic programming concepts and familiarity with object-oriented programming. It also has a steep learning curve, especially for beginners, due to its complex syntax and strict rules. A background in other programming languages such as Java or C++ can be helpful, but it is not a requirement. Practice and dedication are key to mastering C# programming.
  • #1
Math Is Hard
Staff Emeritus
Science Advisor
Gold Member
4,652
37
I am thinking about taking a C# course. The only prerequisite recommended is a C course, which I took this summer, but I know very little about .net so I am not sure how I'll adapt to C#.
I was planning to take C++ this fall but the enrollments are so low I am worried the class might get cancelled. I am looking for some other programming course option that I can fit into my schedule.
Any thoughts on how steep the learning curve might be?
Thanks.
 
Computer science news on Phys.org
  • #2
C# is really sold as a simpler, kinder version of C++. While C# continues to gain market acceptance, C++ is much more widely used and preferred. C#, you see, is a Microsoft-only product. If I were you, I'd go for C++ (or Java, which will teach you all the same concepts) and never look back.

- Warren
 
  • #3
Thanks for the advice, and for explaining to me a little more about what C# is about. In the C# course description there were a lot of new acronyms such as
MSIL (Microsoft Intermediate Language)
PE (Portable Executable) files
CLR (Common Langauge Runtime)
and I felt intimidated not having any exposure to these terms.
Maybe I'll just wait until Winter quarter and take C++ then.
 
  • #4
Well, the important thing about a C++/C#/Java course is that you learn the concepts of good object-oriented programming, rather than getting caught up in all the nasty syntactical oddities of one single language. If you find that your professor focuses more on syntax than on concept, you might want to sit down in his office and have a talk with him. Once you understand how OO works, you'll find it pretty easy to work in any of these languages.

- Warren
 
  • #5
chroot said:
C# is really sold as a simpler, kinder version of C++. While C# continues to gain market acceptance, C++ is much more widely used and preferred. C#, you see, is a Microsoft-only product. If I were you, I'd go for C++ (or Java, which will teach you all the same concepts) and never look back.

- Warren

This isn't entirely true. C# was "created" by MS because they had the keibosh put on the MS Java implementation. C# has been picked up by the OSS community in the form of the mono project though. You can create cross platform (as with Java) apps using the C# language and the mono framework. In fact, C# has branched into gtk# and cocoa# also through the mono project.

Here, enjoy: http://www.mono-project.com/about/index.html
 
  • #6
Math Is Hard said:
Thanks for the advice, and for explaining to me a little more about what C# is about. In the C# course description there were a lot of new acronyms such as
MSIL (Microsoft Intermediate Language)
PE (Portable Executable) files
CLR (Common Langauge Runtime)
and I felt intimidated not having any exposure to these terms.
Maybe I'll just wait until Winter quarter and take C++ then.

Don't let the terms frighten you. Java is a fairly easy language to learn. C# is built around Java ideas and as such is fairly easy to learn as well. If you go here: http://www.go-mono.com/docs/ you'll get a good clue about the structure of mono (C#). Read the mono docs from go-mono, and Got Mono for a real good overview of C# and the mono project.

Good luck, and enjoy.
 
Last edited by a moderator:
  • #7
Thanks, faust and chroot. I appreciate the comments.
I had heard something about MS "discontinuing Java support" but I wasn't sure what that was all about. I'll take a look at those links and see if I can learn a little bit about C# and mono. I think maybe I'll also look around and see if I can find some websites just on OOP in general.
A few years ago I was using ASP (VBScript with javascript and SQL) to create web-based reports from a database. I am not sure if the scripting languages were completely object-oriented but I remember using the "dot syntax" when writing my scripts, and also I remember that it was necessary to create and instantiate an object to use it. I never got into ASP hardcore, I just learned enough to automate some reporting tasks and save myself some time. (Forgotten most of it now). :frown:
Is the structure of these scripting languages (VBscript and javascript) similar to the structure of the object oriented languages?
 
  • #8
Yes, yes... Microsoft tried to modify Java and turn it into a proprietary Windows-only language, but were legally barred from completing it... so they invented C# instead. It's just another maneuver to try to force people out of choices to use other operating systems. Personally, I'd suggest avoiding it, unless you plan on working for Microsoft.

Javascript and VBscript are syntactically similar to OO languages, but are not true OO languages. OO is all about classes, inheritance, encapsulation, polymorphism, and other features, none of which are supported by VBscript and Javascript.

- Warren
 
  • #9
Learn java over c#. For too many reasons to list. It's a solid enterprise language and its clean for learning. My favorite language remains to be c++.
 
  • #10
I am hoping I can do C++ next. That seems to be the order they want to teach these languages: C, C++, then Java, as each one is listed as a pre-req for the next. C# isn't a required class for my major, so I may just skip it altogether.
I signed up for Anthropology (I need another social science) in lieu of the programming classes this Fall. I am already going to be doing chem and psych. stats (plus I have my full time job) so my plate is pretty full. I think cramming in two programming languages during the quarter might push me over the edge. :yuck: I'll pick up the programming again in Winter.

p.s. I ended up with an A in my C programming class so there are a bunch of tutors here I owe a thank you to - namely chroot, plover, Goalie Ca, faust9, AKG, Hurkyl and
e(ho0n3. Hope I didn't forget anyone. Thanks a bunch! :smile:
 
  • #11
Unless there's some very specific skill you're trying to learn for a specific reason, I would say that it doesn't really matter which language you learn. If the courses are anything like any of the other language courses I've seen, then they're all going to be taught the same way. If they're taught badly, then it won't really matter which language they try and teach. If they're taught well, then you should be able to learn the other language(s) that have been mentioned here pretty easily, if need be.

Edited to add: If you have an order you want to or are required to learn it in, then do it in that order.
 
Last edited:
  • #12
I hope I'll get some good instructors. Thanks, master coda.
 
  • #13
Math Is Hard said:
p.s. I ended up with an A in my C programming class ... Thanks a bunch! :smile:
Gald to be of help. (& Congrats!)

If the point of learning one of the languages you mentioned is to get a handle on the basics of object-oriented programming, then, as master_coda was saying, from the point of view programming and design concepts, it doesn't really matter that much which language you pick.

There can be other reasons for making a choice depending the overall reason that you're learning programming. Certain environments/fields use certain languages over others, so if you have any sense of how you might end up using programming, then that might affect a decision.

Deciding how much you want to be tied to the Microsoft paradigm is at least worth thinking about. In my experience, Microsoft's proprietary programming environments tend to impose a certain amount of structure on how to do things. I imagine this can be helpful if a programmer has no need/desire to program for systems other than Windows, but I suspect it could be a hindrance if the distinction between general programming principles and Microsoft's overlays is not clearly delineated. However, I've had no experience with C#, so I don't know to what degree my caveat applies to it.
 
  • #14
Math Is Hard said:
I am thinking about taking a C# course. The only prerequisite recommended is a C course, which I took this summer, but I know very little about .net so I am not sure how I'll adapt to C#.
I was planning to take C++ this fall but the enrollments are so low I am worried the class might get cancelled. I am looking for some other programming course option that I can fit into my schedule.
Any thoughts on how steep the learning curve might be?
Thanks.

Think you should first ask yourself why you want to take a C# course. Is it because you want a carrier as computer programmer or you just like to know something about programming? If you just like to know something about programming I recommend C++ or java instead since it is more commonly used than C#. Based on your name "Math is hard" I assume you are not planning on writing scientific programs for which I would definitely recommend C++.

Good luck with your study!

_________________________________
Evert Rozendaal
Programmable calculators for palm, PocketPC and windows
 
  • #15
plover said:
Deciding how much you want to be tied to the Microsoft paradigm is at least worth thinking about. In my experience, Microsoft's proprietary programming environments tend to impose a certain amount of structure on how to do things.
With the Microsoft tools that I've worked with (admin, rdbms and office apps), I have noticed that everything goes pretty swimmingly until you decide you need to do something that MS hadn't planned on you ever needing to do. Then things get hairy fast. (and there is a very subtle but smug undercurrent of "hey, we're Microsoft and we know your needs better than you do. We spent a lot of money researching everything you might possibly want or need.") I am guessing it is pretty much the same with using their programming environments.
But the truth is I always end up working in Microsoft shops, except for my brief couple of years working on Macs (and Amigas in the early, early days), so the Windows enviroment, interface, and metaphors are what I am comfortable with. Maybe I'll try to shake things up when I do C++ and set up a machine with Linux, and see if I can write and work in a completely non-MS environment. Might be fun.
 

1. What is C# programming?

C# programming is an object-oriented programming language developed by Microsoft. It is widely used for developing desktop applications, web applications, and games.

2. What are the prerequisites for learning C# programming?

To learn C# programming, you should have a basic understanding of programming concepts such as variables, data types, control structures, and functions. Knowledge of any other programming language such as Java or C++ can be helpful but is not necessary.

3. What is the learning curve for C# programming?

The learning curve for C# programming can vary depending on your prior programming experience. If you are new to programming, it may take a few months to become proficient in C#. However, if you have experience with other languages, you may be able to pick up C# relatively quickly.

4. What resources are available for learning C# programming?

There are many resources available for learning C# programming, including online tutorials, books, video courses, and coding bootcamps. You can also find free resources on websites such as Microsoft Docs and Codecademy.

5. Can I use C# for cross-platform development?

Yes, C# can be used for cross-platform development using the .NET framework. With .NET Core, you can develop applications for Windows, macOS, and Linux. Additionally, C# can also be used for mobile app development with Xamarin.

Similar threads

  • STEM Academic Advising
Replies
12
Views
1K
  • Programming and Computer Science
Replies
1
Views
718
  • Programming and Computer Science
Replies
16
Views
1K
  • STEM Academic Advising
Replies
5
Views
2K
  • Programming and Computer Science
Replies
8
Views
863
  • STEM Academic Advising
Replies
11
Views
382
  • STEM Academic Advising
Replies
3
Views
817
  • STEM Academic Advising
Replies
3
Views
905
  • Programming and Computer Science
Replies
15
Views
1K
  • STEM Academic Advising
Replies
10
Views
1K
Back
Top