New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What was it like to learn C#? #1320
Comments
I started learning C# from the very beginning, with C# 1.0. Having had some experience with Java and C++ at school, C# was mostly familiar grounds (C# was arguably just a copy of Java at the time). In other words, C# had familiar syntax and semantics and few unique features. Those things I hadn't yet encountered (properties and events) were relatively easy to understand and quite practical. All these things combined made it easy to learn C#. Learning C# was also made easy by its excellent compiler. The error messages it output were miles and miles ahead of what I was used to with C++, as most of the messages would simply state what I had to do to fix the issue. Another thing C# had going for it was its IDE: Visual Studio. At the time, I considered Visual Studio to be the best IDE there was, which was incredibly helpful learning C#. It had a very nice code completion feature, which meant I could explore the different API's just by using pressing the dot key every once in a while (note: this is more about getting the know the platform, not the language itself). I feel like it was mainly an advantage to learn C# when it was still on its first iteration, as C# is now a far more complex language which means that it is also harder to learn now. Even more, there are things in C# that are rarely used or have been superseded by later features, which can make it hard to learn what the correct way is.
As said, C# didn't differ much from Java, so I'd say it was mostly similar. The addition of properties (syntactic sugar for a getter-setter combination) was a nice surpise to me.
For the first few versions, I don't think there was anything particularly difficult to learn. With the later versions (7.X), more advanced, fairly low-level features were added which took a bit of time to learn.
Almost all of the concepts of Java: blocks, statements, classes, almost every C# concept had a direct Java counterpart.
Early on, I mostly struggled with general programming things, like how to structure my application code (I was still a student back then). With the later C# versions, several relatively specific, low-level features were introduces (like
Nothing really.
I don't think there was any syntax to remap. This was due mostly due to C# being a copy of Java (and knowing Java), it having not that much syntax at the time and me only having experience in a few languages (C, C++ and Java).
At the time (early 2000s), there was not that much content to be found on the internet. That was why I learned mostly by using books (C# Unleashed). Most of my learning was reading things in my book, and then trying to apply them to little toy projects. The documentation was also helpful.
At the time of C# 1, there were few resources available, so it was mainly trial and error then. Later on, the online documentation improved quite a bit so that helped. The biggest productivity boost was the arrival of StackOverflow. Nowadays, there are tons of resources to use (docs, blogs, videos), it becomes almost hard to choose which resource to use :) |
Learning C# back then was pretty easy for me, it was very similar to other OOP languages I knew at that time, and I was pretty much able to follow the "C# is the better Java" you heard everywhere back then. The big problem that arose for me that time (it was around dotNet/C# 3.0 to 3.5) was that you were pretty much lost with the toolchain, when you wasn't able to stay up to date, while at the same time, libraries did not get updated fast enough. I'm not sure if this was a problem of the time, or a problem that still is there, but also I have to say, that when I refreshed C# through exercism and with the new Also another very big problem for me was LINQ (which I liked by the idea), because I was not able to wrap my heads around the anonymous functions that have been used there massively. Understanding whats going on there happened only years later when learning Haskell at the university, and I learnt to know and love passing around and using passed around functions.
Sadly I do not remember much from that time. I know, I also did some Java by that time, and I prefered in C# that it "felt" better, but still I used Java more often, as it wasn't as locked into MicroSoft as C# was… |
How was your experience learning C#? |
I learned C# when I was in my graduation. I started with all basics like the thing which I programmed in C and C++ while back..
I struggle lot with enum and other arrays related stuff cause that time there was not that much use cases were present.
Automating stuff. I know it is a boring way. But it makes a lot more sense when I am automating stuff with c# like sending emails. That makes language more fun to me.
C# was new. It was everywhere. Gave tough competition to JAVA.
I would say Java syntax. A lot of syntax is common. I accidentally wrote Java code to C# program
A lot of OOP concepts. Comes in handy.. |
[Docs] Cross-reference concept exercise file information
[Docs] Cross-reference concept exercise file information
[Docs] Cross-reference concept exercise file information
[Docs] Cross-reference concept exercise file information
[Docs] Cross-reference concept exercise file information
We're closing this issue as it was part of our research for the v3 version of Exercism which has just been released. Thanks everyone for chipping in! It has been greatly appreciated. |
We’ve recently started a project to find the best way to design our tracks, in order to optimize the learning experience of students.
As a first step, we’ll be examining the ways in which languages are unique and the ways in which they are similar. For this, we’d really like to use the knowledge of everyone involved in the Exercism community (students, mentors, maintainers) to answer the following questions:
Could you spare 5 minutes to help us by answering these questions? It would greatly help us improve the experience students have learning C# :)
Note: this issue is not meant as a discussion, just as a place for people to post their own, personal experiences.
Want to keep your thoughts private but still help? Feel free to email me at erik@exercism.io
Thank you!
The text was updated successfully, but these errors were encountered: