Would you learn high level or low level programming first?

So what would you learn first? I learned high level (JavaScript, HTML and CSS) first but now I don’t get low level such as Perl and C++. :frowning_face: NOTE: This is NOT a debate, I just want to know so I won’t give false information to a friend who asked me this.

not an expert but High level is easier to learn and the same basic concepts apply across all programming languages. Low level requires more detailed code than High Level. The higher the level the easier it is to read by a human.


Depends largely on what one’s focus is. Some people really only need to know python or javascript (because of their specific goals). As an intro I think python is a neat language to learn but if one is going to study cs it doesn’t hurt to do java/c++ first (which can still be considered high-level, although lower-level than js/python). The one thing I think that works in javascript’s favor as a first language is the visual element of it (which is a deal-breaker for a lot of people) but for my taste there’s too much going on that can overwhelm.

I actually think javascript is potentially as hard as java or c++ to pick up and even more so if you are not carefully observant to detail. It’s behavior is quirkier and can potentially allow for bad beginner habits (in my opinion).


I was told from a friend that Python as a first language teaches bad coding habits and to start with C++.

But generally it is easier to transition from low-level languages to high-level languages and not the other way around.

Which language you learn first will depend largely on the goal you have at the end of it. I am not naturally great at programming (no natural talent so to speak) but I knew I had to adapt for the future so I chose SQL as a starting point and added Python to the mix (this two combo has certainly paid dividends in terms for my career - mainly in data and data science).

However, if your goal is software development, again depending on which specific field, you can look at GO, SWIFT etc.

Start with your goal and work backwards.


I don’t think it matters.

Once you really learn javascript, you know so many core programming concepts that learning a second language is far easier. You understand variables, loops, conditionals, objects (which are seen in multiple other languages under different names). You will know about reading and writing to files, blocking and non-blocking code, how to optimise your code for speed, so you’ll probably also end up learning things like big O notation. You’ll learn about test driven development and coding styles. You’ll learn about making your code modular, reusable, and you’ll learn the importance of commenting and documenting code.

Once you know all that, you’ve got a huge head start if you try and learn C++.

I think there’s some languages that are exceptions. Python, for example makes many things so easy that if you learn it first, you might struggle with other languages.


When I went to college for software engineering. We started with low level and advanced to high level. Low level is easier to find your screw ups.


As someone who started with C++ (and lets just skip stuff that came before it since I won’t remember the names, let alone any specifics) and is currently working with javascript, my advice would be to start with…
Algorithms and data structures.

If you work with JS or python and that is enough for you to do your job and do it well and you don’t want to dive deeper into programming as a concept, that is FINE. Don’t dive deeper than necessary if you don’t have a personal interest.

If the goal of learning lower-level languages is to learn how to work with devices, how to write drivers, how OS works, feel free to dive into C++. I can’t recommend anything else because the last time I touched C++ was many, many years ago. And we’ve gotten many alternative languages that do similar or same things as C++, which I won’t comment on since I have exactly zero experience with them. The only thing I can say about low-level programming languages: they give you full control over the device. Which makes it ridiculously easy to break stuff.

If the goal is to be a better software developer, then you can do two things that will help a lot more than learning a new programming language:

  1. Learning algorithms and data structures (seriously, this stuff helps broaden your vision and understanding tremendously, at least it did for anyone who seriously studied it from people I know (which is not a lot, to be honest) without having a specific higher education or a degree in this area). This also helps on tech interviews with large(r) companies, which is a plus.
  2. Learning your language at a deeper level to better understand what is actually going on. JS, for example, has a TON of stuff going under the hood, knowing some of it can help writing better code, not writing really bad code and generally understanding what you can do to reach your goal.
  3. Bonus point: you can also learn soft skills, people skills, problem solving skills and many other things to help you be better at something. And it all helps.

As it was said before, it depends on what you want to have in the end.


I personally prefer high level due to you not having to premake a whole bunch of code to do one thing like in low level.

1 Like