Does understanding C# make learning other languages easier? (especially JS)

Hi! My name is Javier Pedrosa, I am a 26 years old college dropout from Chile :chile:

After realizing that online poker wasn’t a smart career choice I decided to turn my life around (stop partying) and work extremely hard to become a successful coder. I am willing to spend 70+ hours a week learning.

I don’t have any CS background, just found out about this world 3 weeks ago.

I started the Responsive Web Design curriculum and just finished the courses (currently halfway through the projects).

From what I’ve read in this forum learning JS FrontEnd & BackEnd (as well as the libraries) are some of the best ways to get a job coding without a degree (please correct me if I’m wrong).

My brother indicated that before I start to learn JS I should first go with C#, because learning C# is going to make it easier for me to learn/understand lots of languages (especially JS) in the future, but he is also pretty new (he started studying about 6 months ago).

I’ve got nothing but time and the willing to learn, but I also want to be efficient in the way I learn because I take LOTS of notes and really try hard to understand how things work, so I’m wondering if I should take his advice or should I go straight to learn JS after finishing my HTML/CSS projects?

I am really excited to be a part of this community, if you have any comments/advice/suggestions I would really appreciate it.

1 Like

Hi @JavierPedrosa !

One of the common mistakes I see a lot of beginners make is overanalyzing which programming languages they should choose.

In the beginning, you want to focus on learning the programming basics. That would be variables, data types, data structures, conditionals, loops, object oriented programming, functional programming, etc.

Everyone will have their opinion on what the “best” language to learn is or what is “easiest” to start with. But at the end of the day, whether you choose JavaScript, Python, C#, etc, you still have to learn the basics of programming first.

Keep going through the freeCodeCamp courses, and building projects along the way. You will also find additional beginner friendly resources to help you learn the basics.

Then once you have a good starting foundation, then you can decide if you want to stick with JavaScript or want to try something else like C#.

Hope that helps!

6 Likes

Thanks for taking the time to share your opinion

This is exactly what he told me and what I started doing a couple hours ago, It really helps to have someone like you reaffirming that statement.

I guess my question now is (If my intention is to learn JavaScript) should I learn C# first anyways so that I have a better foundation for JS or should I learn the programming basics and start with JS right away?

In my opinion, if your end goal is to learn javascript, then just start with javascript.

It’s not like learning C# first is going to hurt and it can help you learn the basics, but I don’t believe it is a necessity or always a gateway to making JavaScript easier.

As long as you have some some good beginner resources in addition to freeCodeCamp to help you break down the hard parts then you will be able to learn javascript.

1 Like

I’m going to be a bit more direct in answering the question:

You don’t need to learn C# before learning JavaScript. Just learn JavaScript first. If you don’t already know a programming language, JavaScript will likely be easier to learn first anyway. And learning it first will help you learn C# later, if you want to do that in the future.

Also an answer to a question that you didn’t ask, but I’m also going to say: you absolutely don’t need to learn C# period. There’s no need for you to learn it for any practical reason, either now or in the future, if you don’t want to. You can definitely find jobs knowing only JavaScript, but ideally you’d learn another language (Python and Ruby are other popular choices that are probably easier to learn than C#).

All general-purpose programming languages are used for the same thing, and you can start with JavaScript. It’s easy and has a low barrier for learning.

1 Like

Thank you so much for your comment, you don’t know how much time you saved me. I’m going straight to JavaScript after studying the programming basics.

Your brother has given your wrong info, knowing C# is not needed.

Do read this blog which is especially for you How to Learn Programming – The Guide I Wish I Had When I Started Learning to Code

You should learn how to break down big problem into smallest once possible and trying solving them with any programming language.

checkout https://remoteok.com/ to check various types of tech jobs available and which one you is suitable / you would like to learn.

Cheers,
Vikram

1 Like

That’s ill-advised. You can try, but it will be unfocussed/poor quality learning. Doing 2-3 hours a day (max) will be more productive than attempting 70 hours a week.

There’s no point learning C# in order to learn JS. If you want to learn JavaScript, learn JavaScript.

1 Like

Mostly right. It’s tough, but it can be done. If you have good skills and a good portfolio, it can be done.

My brother indicated that before I start to learn JS I should first go with C#, because learning C# is going to make it easier for me to learn/understand lots of languages (especially JS) in the future, but he is also pretty new (he started studying about 6 months ago).

Let me guess, he’s learning C#? How much do you want to bet if he was learning Python, he’d be telling you that is the first language you should learn? There are a lot of theories about what language is best and which is best to learn first. JS has strengths and weaknesses, like any other language.

I am willing to spend 70+ hours a week learning.

That will lead to burnout. Pace yourself. This is going to take at least a year, maybe two or three. Just code every day and keep moving foward.

1 Like

Hello @JavierPedrosa,

There are some valid points here from others and I would like to add a little of what I think…

I personally prefer to know a little about what is going on under the hood so if I was just about to start learning CS, I would pick C/C++/Java/Rust or any other strongly typed language and start crunching some simple problems.
Please, do not set yourself up to master the language right away. What you want is to improve your algorithmic thinking, what and how you can store things in the computer’s memory and how to work with it, learn about basic data structures and algorithms and why should you care, how to use command prompt/terminal, networking basics…

Why to start with this? Well, it is a universal knowledge transferable across all programming languages! If you want to create a text file and write “Hello” into in, you’ll see that the implementation is very similar in all languages, because they work with the same underlying processes and logic. I should say the algorithm is probably the same, only the implementation differs. That would be the same for processing an image, let’s say you want to apply a grayscale filter on it. The steps would be as follows.

  • load the image into the memory
  • iterate through all pixels
  • modify pixels RGB values with some logic

This high-level algorithm is universal. Then you need to decide what data structure you will use to store the image and how you will iterate through it in efficient way. And you will not learn this by learning a language itself.

You want to connect to a weather service and download the most recent forecast? The same thing. However, it may be more tedious to implement this in C then in Python, because there are several things, why are abstracted away and processed by the Python interpreter for you.
You want to implement a shopping basket on a website? The same thing again. Once you know how, the language is just a tool to implement it. Some may be better for the problem, some may be worse. In this case, you will need to do in JavaScript since that’s the language web browsers understand.

I recommend to everyone start with the Harvard’s CS50x course. It’s free and teaches you the basics.
Take your time to set it all up, link it with your GitHub account, get comfortable with using terminal and using basic commands. There is a HUGE Discord community and people there are very helpful if you need any help.

TL;DR I partly agree with your brother to start with a lower level language as I believe will force you to think more about what you actually write and before you even write anything. It’s more strict therefore required structure and discipline.
Moreover, when you look at the job market, more and more projects use TypeScript, the superset of JavaScript, which enforces static typing like you would need in C/C++/Java…

1 Like

I would also add to not worry about finding the “golden path” - there is none. As long as you are leaning to code in a modern language, doing something useful, then you’re probably doing pretty well. I think it’s a good idea to find a structured path (like FCC offers) and stick to that (with little side quests to investigate something that isn’t clear). After you are done with one path, you can hop to another.

But there is no magic shortcut - just learning and building things - that’s all there is.

4 Likes