As part of my job, I need to get up to speed with C# (sooner rather than later).
I am just wondering if anyone has learned C# after already being proficient in another language, and how hard/time consuming it was?
I’m only aiming to be competent enough to feel comfortable writing and reading basic applications. As of right now, I’m proficient in Python.
Not too bad. C# is an amazing language. It’s fairly simple to read/write, syntax isn’t overly verbose like C++, and it has a lot of neat tricks to make things shorter/easier to read. The cherry on top is how powerful it is compared to the likes of python. The biggest difference is that C# is strongly typed, where as python makes everything just an object.
You can learn the syntax in a day. Breaking the habits instilled in you by using python is going to take a while, but I imagine you can start pumping out personal projects quickly. You should be able to read the code today without too much trouble, depending on your experience.
Going from c# to python was easy, since most of the conventions used in c# are transferable. But python to c# will require you to think a bit differently than you did before.
Once you understand how programming works it doesn’t take near as much effort to change language. You’ll have to get used to things like static typing, but overall it isn’t difficult. It helps that C# is an amazing language, but even going to something like C is easier when you already understand any other language.
Once you are proficient in one procedural language, you will pick up other ones easily.
The only hard part will be to learn what’s in the libraries – if you find yourself writing code and thinking “there has to be a library function for this” you’re probably right. But I’m sure that’s the same in Python.
Going through this very process now (Python proficient, teaching myself C#). I was surprised how easy it has been. That said I do have some background in Java, which C# is more similar to than perhaps C/C++. So YMMV.
The language is easy. But to be a good C# developer, I would suggest you get a subscription to PluralSight and learn Entity Framework and ASP.Net Core well. Also study up on dependency injection and basic SOLID coding principals.