DEV Community

Discussion on: Should you pick C# over JS? Maybe.

Collapse
theoboldalex profile image
Alex Theobold

I don't think your first language really matters that much. I started with JavaScript but landed my first paid gig writing C# with Blazor and can now pick up new languages pretty quickly because I learned the core of programming.

Until I got this gig, I had never even considered C# as a viable option (MS historical baggage) and while the transition was difficult, I actually found myself pining for the readability and static typing of C# (and LINQ of course) when going back to writing JS.

I think the only time that your first language matters much is when you know exactly which path you want to take in your career. For instance, if you are set on being a front-end dev, it is a no brainer to learn JS first. If, on the other hand you want to work on the backend, JS may be a viable option, but there are also plenty of other options available.

If I wanted to learn web-dev specifically in 2021, I would actually suggest a different approach from most other people (and one that is likely very controversial).

I would first suggest picking up the basics of HTML and CSS including becoming very comfortable creating forms. Then, learn some basic PHP to handle form submissions and DB persistence (I suggest this because it is very simple to set up and teaches the core principles of HTTP requests and the relationship between server and client).

Once you are confident submitting form data and persisting and retrieving data from the server, next start to pick up some basic JS to learn how to override form submission default behaviour.

At this point, you can now create full web apps and will have a good understanding of the HTTP protocol as well as knowing enough SQL to be dangerous. This is not a trendy stack by any means, but there are a huge number of jobs out there so you could quite easily get a full time paid gig knowing just this which would allow you to spend your free time diving into other, more trendy frameworks and languages to build atop your core web stack knowledge. Knowing these basics, would also mean you could pick up pretty much any modern MVC framework and get up and going without too much of a learning curve (Laravel, Rails, .NET MVC etc).

I personally think there is too much emphasis put on programming language minutiae rather than learning enough to be productive and employable (I should know, I was programming for 6 years before going professional).

I realise, this has veered away from the topic a little but hopefully someone out there can glean something useful from my comment.

Collapse
denvercoder profile image
Tim Myers Author

yeah, my whole point was that in my eyes C# is a viable option for new developers. 5 years ago I would have never recommended it as a first language simply because of the cost. JavaScript is free. Back then you had to have an MSDN subscription to get a version of Visual Studio that you could install plugins into.

¯_(ツ)_/¯

Collapse
theoboldalex profile image
Alex Theobold

Yeah, I agree with you, I just went off on a bit of a tangent about mildly related things :)

I think C# and .Net are awesome options for a beginner for many reasons. There are also a myriad other languages that are perfect for teaching core concepts like OOP etc.

I think the main point I was trying to make, was that so much emphasis is put on language minutiae such as NaN === NaN in the beginner community rather than a focus on teaching programming concepts that are language agnostic. As such, the choice of language itself shouldn’t be the main focus, but what you are using the language for and the broader concepts it teaches you.