When do I know I'm not a beginner anymore in JS (or any other programming language)?

What r the major difference between beginner and intermediate programmers

Just off the top of my head, I’d say you are intermediate when you’ve touched on all the basic topics of the language. You may not know everything about it, but you are at least familiar with what is there. You can solidly do basic programs and have some familiarity with the next level of coding.

That’s how I see it. Coming up with a list specific to JS would be interesting…

1 Like

I guess, in my humble opinion, I would think of an intermediate JS dev to be one that…

  • Has a basic knowledge of the JS language, up to and including ES6 and into ESNext. They don’t have mastery, but they don’t freak out when they see destructuring. They may not be comfortable with generator functions but, they have heard of them and have a vague idea what they do.
  • A basic understanding of scope and familiarity with the idea of closures.
  • Understands callbacks, Promises, and async/await.
  • They understand the basics of paradigms like OOP and FP and how they apply or don’t apply to JS.
  • They feel comfortable with basic algorithm problems.

I don’t know, those are just my thoughts. This is very subjective. I’m sure others with have different thoughts.


I should also say being comfortable with all the basic prototype methods.

If I think of any skill I have mastered, I can’t really pinpoint a moment where I went from “beginner” to “intermediate” or “expert”. How confident do you feel? When you think of your skills so far do you think something like “I’m still learning the basics” or something like “I know how to do the basics, but I need practice”?

Basically… I wouldn’t worry about labeling your skill level too much. Whatever feels right.


I don’t believe there is a hard line between the two. Experience is experience. Where that experience is a gradient of knowledge built up over time. Not “levels” or “ranks” or even “labels” of skill such as intermediate, experienced, or beginner.

There is however some clearer indicators. One that I think stands out are beginners are learning the language’s syntax and how to program. Where-as an intermediate should at least know how to program and or know their language syntax.

For example, if you have 10 years in Java, and know that language like the back of your hand, but them get dumped into a Python database, odds are your not a beginner even if you have little to no previous experience with how the language syntax works and should be able to pick things up.

On the flip side, if you know your language syntax very well, learning no longer requires “deciphering” the syntax, rather its more deciphering the logic itself allowing you to learn the underlying principles much faster by reading existing code, rather than getting hung up on the syntax.

In either case its possible to have some “mix” of existing experience you can leverage. Where getting 10 years of experience in Java probably means you at least know a little about what Python is and how its used. Or in the other case, knowing your language syntax incredibly well probably means you know to how to solve at least some problems in that language.


Is not a thing of levels or ranks. However,there is a key difference, this is the way of getting the stuff done . How do you resolve a problem is contingent with your experience and the amount of effort you spend practicing.
You will see the same in most of the sports, skills and even when learning a foreign tongue.
In coding, is pretty difficult to measure that, but if you do not experience a lot of pain doing a simple loop, you have some idea of what you are doing most of the time(even if you are wrong), and you could think the solution of a problem in at least two different ways, is a good signal.
Hope this helps


This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.