r/AskProgramming • • 2d ago

Career/Edu Should I learn C#

I'm a CS student, year 4. My first entry into programming like most people was HTML, CSS, JavaScript, and then backend development with Node/Typescript. My main goal has been to get a programming job, or internship (or anything at this point 😭), but I've always hated writing Node, just never liked it and now I'm considering switching stacks.

I enjoy writing C (I built a chess engine from scratch) and C# seems like C with oop so I don't think it should be too unfamiliar. Also it seems there might be hiring opportunities...hopefully.

Please advise

3 Upvotes

22 comments sorted by

3

u/YMK1234 2d ago

Sure, it's a great language and ecosystem. It is not "C with Oop" though, but more similar to java without all the annoying bits

3

u/ProcesOdsutnosti 2d ago

C# is a great choice from my subjective experience, especially when you need to develop some enterprise solution for a big company.

3

u/neolace 2d ago

There’s a good enough reason for you stay employed if you’re going to pick a good .net core c# framework which kicks Java’s ass btw. Haters, give it to me;)

1

u/mark_ik 2d ago

You should. You have an interest and a rationale, what else do you need? I guess a concrete goal; I always found “learn” to be abstract, but learn this, or make that, or pass these tests, that’s more promising.

1

u/PrimaryFamous6139 2d ago

Give C# a shot. You already understand programming fundamentals, so the transition shouldn’t be too difficult. Focus on C#, ASP.NET Core, SQL, and building a couple of solid projects

1

u/Additional_View6164 2d ago

Yes! I personally love C#. I started my programming journey with C, but learning Java first is also a solid path—it was my second language.

1

u/snipsuper415 2d ago edited 2d ago

Realistically speaking, C# is still relevant. But ultimately speaking learning how to architect your code no matter the language will be more helpful. Go check out the book clean code second edition , clean architecture, and those other clean books

Also learning the language of c# is relatively quick you should also look into the libraries surrounding c# like .net or what ever is popular

1

u/FreeLogicGate 1d ago

It tends to be the case that companies have a preference for the technology stack they invest in.

High level, it has tended to be "Java" is often paired with a large investment in Oracle.

For environments most comfortable with Microsoft, Microsoft servers, networking, SQL Server etc, the core language for Microsoft centric development is now C#. It's also been chosen for other products, with a prime example of this adoption being the Unity game engine.

There's another stack where a variety of different open source languages have been employed, often paired with the main open source databases (Postgresql, MySQL/MariaDB, Document DB's like MongoDB) and the most used in this category are Ruby, Python, PHP and Node.js.

Certainly C# should be an easy transition from C, although as someone else pointed out to you, C# is closer to Java, which was an evolutionary step from C++.

So -- yeah C# is a well supported language in wide use, and that is unlikely to change anytime soon, particular where companies are invested in Windows/Microsoft and .NET.

However, there is also a lot of momentum behind Rust and Go, depending on the type of application and problems being solved. Of course there is nothing wrong with learning something about all these languages, and your understanding and expertise with one language tends to inform your experience and ability to pick up on other languages.

1

u/Traditional_Road7234 1d ago

Yes. And learn Stan too.

1

u/BoBoBearDev 14h ago

I wouldn't call Nodejs/TS backend. I mean, yeah, it was sitting on the server, but the actual application is on the browser, unless using the new SSR. I recommend to stay with JS on the frontend because you can debug it easily on the browser. TS made it easy. So, no clear reason not to do it.

Backend is more like RESTful or AMQP APIs. And dotnet is great for those backend services.

1

u/Mediocre-Meeting2616 3h ago

C# is what C++ should have been. Some of the things I like about C# over C++ include functional programming capabilities, real generics, LINQ, and better memory management in C# than C++. I also like the top-down class structure: more like what Smalltalk had. (C++ allows multiple inheritance, which I think is a serious flaw) I know a lot of programmers who switched to Java when they got fed up with the clumsy syntax of C++. I've also found it easier to write multithreaded programs in C#.

Yes, a C++ program is usually faster than the same program wriitten in C#, but for many apps I'll trade off speed for more manageable code. If I have a speed critical application, I'll write in Julia.

1

u/xarop_pa_toss 2d ago

Why the hopefully? You have access to LinkedIn and all the other platforms that are used in you country.

Make an account and go look for what's out there. .NET might not be very popular there, but Java might! Do some research

0

u/prodjsaig 2d ago

I think C# is not the best thing to learn unless you actually use it for its primary strengths. It is good for game engines I believe it lurks below by David brevik is made in C#. Also it can call windows apis so you could make an application as well. But an application to do what exactly?

This is the forefront of computer programming always use the language where it’s good at. That is to say you can’t learn many languages because you should specialize in one and know of a few.

C++ would be in my opinion a stronger choice because it is used so extensively for applications. Having a high learning curve will guide you to being the best possible programmer. Which you could then pick up C#, rust or go if you should come to having to do an application or tool in those. Only if it’s that languages strong suit.

1

u/YMK1234 1d ago

This is so misinformed it's not even funny.

0

u/prodjsaig 1d ago

You should provide an opinion instead of trying to insult people right away. The biggest problem with programming is that there are too many languages and differing sets of standards. I guarantee you’re better off specializing in one primary language. C++ just happens to be a good skill to have because it combines C with oop.

1

u/YMK1234 1d ago
  1. C# is not "good for game engines". The main reason its used there is because unity uses it for scripting. The main use case is backend for web dev, and enterprise software.
  2. C# is not tightly bound to windows or it's APIs these days, and hasn't been since at least a decade
  3. C++ is not comparable but much more low level, and archaic

All of these facts are also given in the rest of this thread if you'd have cared to read it.

0

u/prodjsaig 1d ago

It depends I mean I want nothing to do with web development. Too many changing standards and obscure things to learn that you’ll never use again.

I’m talking core programming to learn how to be a good programmer and make an application or command line tool. C# can do it but C++ will teach you more and is more widely used for applications.

0

u/FeelingKokoro 1d ago

You should try C# for backend or game development or Kotlin for Android development. Kotlin is very similar language.

-2

u/Gi1rim 2d ago

You could, but traditionally C++ og c op. Rust and/or go is where most future work is going.

2

u/YMK1234 2d ago

Rust and/or go is where most future work is going.

Neither of those is anywhere near as strong as C# (even combined), both on Tiobe as well as SO survey, and they also don't show strong upwards trends either.

0

u/Game_Dev730 1d ago

Tiobe is a garbage metric that means absolutely nothing.