The Advanced Beginner Trap

In this article, I will describe what I call the “advanced beginner trap”.

TL;DR: Advanced beginners are beginners who have studied a little bit and therefore have some knowledge of the field, but fail to incorporate contextual understanding in their communications with others and in their work. They tend to be rigid and less open-minded than both true beginners and true advanced practitioners. This lack of open-mindedness and attention to contextual relevance keeps them at the beginner phase, and they are never able to advance to higher levels of understanding.

This article is also a part of my series on Common Beginner Questions, since it contains questions that beginners commonly ask.


Table of Contents:

  1. Common example: why didn’t you cover X topic in the course?
  2. Common example: you didn’t do X thing I learned, and that’s bad!
  3. Common example: we need LESS math / we need MORE math
  4. Robert Greene’s Mastery

Example: Why didn’t you cover X topic in the course?

This is probably the most common question and it is what inspired me to write this article.

From my Linear Regression course:

  • “Why don’t you teach about forward and backward elimination?”
    • Answer: my Linear Regression course is clearly machine learning / deep learning focused, whereas these topics are typically taught in a statistics course on the topic of “regression analysis”.
  • “Why don’t you teach about gradient descent?”
    • Answer: gradient descent isn’t necessary for Linear Regression because there’s a closed-form solution. It’s best to introduce gradient descent when it is needed, rather than when it is not.

From my Logistic Regression course:

  • “Why don’t you teach about using a threshold for classifying the output instead of rounding at 50%?”
    • Answer: like the above, this is a topic usually taught in statistics. Machine learning / deep learning resources typically don’t bother to teach this. Based on the course title / description / curriculum, it is abundantly clear that this is not a statistics course.

From my Bayesian Machine Learning course:

  • “Why didn’t you cover Simpson’s paradox?”
    • Answer: this one surprised me because it really had nothing at all to do with the course. Simpson’s paradox arises when it may appear that when you compare 2 groups of things, there is a significant effect in one direction, but when the groups are broken down into sub-groups, there is a significant effect in the other direction. A great real-world example of this is the so-called “gender wage gap“. It’s definitely a good thing to know, but it’s also definitely not relevant to this course!

You’ll notice that the answer to all of these questions is always the same:

  1. What you’ve asked for is not relevant.
  2. You’ve failed to understand the purpose / context of the course.
  3. #2 is due to a failure to read the course description and understand what the course is about.

But most importantly, here are important questions for you to answer:

  1. If you already know about this topic (since you’re mentioning it), why do you care to learn it again?
  2. If you really understood this topic, why don’t you understand that it’s not appropriate nor relevant to the course?

Thus, the problem is really that you’re stuck in the middle: you believe you’re advanced enough to know this out-of-scope topic, but yet, you are not advanced enough nor do you understand the topic well enough to understand why it doesn’t actually fit.

In other words, you have a meager understanding of something, but your understanding isn’t good enough so that what you’re saying actually makes sense in the full context.

Another way of saying this is that your confidence in your skill far exceeds your actual skill. You may be loud and demanding, but you don’t have the skills and knowledge to back it up. And hence, your claim that something is missing is not justified by any kind of expertise, just lack of skill in understanding that thing well.

Also, just… what kind of “advanced” person would forget to do something so basic like reading the course description?

Ultimately, asking any question like this is always very silly, because:

  1. If you already know about the topic, why are you asking to learn it again? It is superfluous to learn about something you already know. It seems to be more of an ego thing (“let me show everyone how smart I am!”).
  2. You are attempting to be “advanced” (by knowing some out-of-scope topic), and yet, you haven’t done the simplest and most obvious thing possible: read the course description so you actually know what the course is about.
  3. Related to the above, by understanding what the course is about, you now have the context for why what you’re asking is not relevant. This is why “advanced beginners” are said to fail to incorporate contextual understanding. They apply their “knowledge” uniformly, without any understanding of when it should and should not be applied.


Example: You didn’t do X thing I learned, and that’s bad!

“You use single-letter variable names, and that’s bad!”

See my answer here. In short: sometimes it is bad, but sometimes it is good. This is another example of applying “knowledge” uniformly, without understanding context.

“You’re not using Jupyter notebooks, and that’s bad!”

I’ve yet to write an article about this, but it is such a big topic that it is worth an entire article. Students who demand the use of Jupyter notebooks are missing something huge. Notebooks are really just Python code wrapped in an HTML interface. This is theoretically nice for iterative development, but it actually causes many problems with beginners, like running cells out of order and not paying attention to the order the code should actually be run in. This might sound like I’m being too hard on beginners (how can I expect them to know the right order to run the code in!?), but it’s really simple: top to bottom, like how you would read a book. Surely you would not say I’m being too hard on students for expecting them to be able to read the paragraphs of a book in order!

What these students fail to realize is that Python code is the same everywhere, whether it is in a Jupyter notebook or not. Therefore, if a student really wanted to use notebooks, they should be able to paste the code into a notebook.

“But copying and pasting code would waste my time”

Hmm interesting. Spending a fraction of a second copying and pasting is too much time? Then how do you intend to understand the course? You are so fast that you can finish the course in less than a fraction of a second? Hmm…

The most ironic thing about this is that copying and pasting code (hey, you’re lucky I’m not making you type from scratch) is actually interactive. Most “beginners” overlook this crucial fact because they’d rather just hit the play button and watch the code go start-to-end, losing any sense of interactivity, which is what they claimed to want in the first place. Hmm…

Again, this is a great example of when students can sound very confident about what they believe is “right” (like notebooks are “right”, and any other format is “wrong”), yet they fail to understand the most basic things. In other words, when one is a beginner, they should learn to temper this overconfidence.


Example: We need LESS math / We need MORE math

“But Lazy Programmer, aren’t these totally opposite things?”

The answer is NO, young Jedi. They are really 2 sides of the same coin.

People who think any course needs less math usually think this because the math is too hard for them. They want the course to be brought down to their level.

There is a certain selfishness to this.


These students want the course to be custom-tailored to their precise level of knowledge, regardless of what is actually needed to understand the subject.

They assume that their level of knowledge is enough, and therefore, any explanation should be given such that it only depends on things they know.

I think we can all agree, that’s pretty selfish.

But how is this an “advanced beginner”, as opposed to a “beginner beginner”?

A “beginner beginner” knows that they know nothing, so they are open-minded enough to listen.

An “advanced beginner” thinks they know better (because they’re “advanced”, after all), so they think they know all that is needed to learn the subject, and anything else they don’t know is unnecessary. How convenient… 😉

Some students get a little annoyed with this, and they try to go on the opposite direction.

They try to pretend they’re really advanced at math. Maybe they took an advanced math course in college (say, real analysis or dynamical systems).

Then they will say something like, “your explanation was bad because it didn’t incorporate my knowledge of X” (which is really just the same as the previous examples in this article).

Of course, this knowledge of X is totally irrelevant to the topic under consideration.

So again, the student attempts to be advanced by thinking of some out-of-scope topic, without contextual understanding.

It shows both:

  1. A lack of understanding of the course (because you think a totally irrelevant concept is needed to explain it)
  2. A lack of understanding of your own so-called “advanced” material (you don’t understand it well enough to know it’s irrelevant)

So what is the solution?

The solution is the “Goldilocks” level of math. Not too little, not too much, but just right. Just the right amount to derive whatever algorithm is being discussed, without missing necessary details, and without adding unnecessary fluff.

Notice: this is entirely independent of what you personally know. It has nothing to do with you.

Your skill level is not relevant.

The math used to explain a concept is the math that’s needed. You either follow the prerequisites to meet that level, or you don’t. It’s up to you.

But nobody is going to come up with a custom explanation designed just for your exact level, nor will they introduce superfluous “advanced” concepts that you personally studied in the past just to appease your sense of self-worth.


Robert Greene’s Mastery

Robert Greene, the famous author of bestselling books such as the 48 Laws of Power, echoed similar sentiments in his book Mastery.

I think it’s always important to give advice that comes from a third party, since it demonstrates that I’m not some crazy outlandish data science teacher coming up with outrageous experimental learning strategies. This stuff is tried and true. Robert Greene is obviously a guy who does his research. He’s studied masters in every field in every time period. The advice he gives in his book is near universal.

If you don’t want to listen to me, listen to all of the masters in human history.

We naturally begin to take for granted certain ideas we have learned and developed. Slowly, we stop asking the same kinds of questions that plagued us earlier on. We already know the answers. We feel ever so superior. Unknown to ourselves, the mind slowly narrows and tightens as complacency creeps into the soul, and although we may have achieved public acclaim for our past work, we stifle our own creativity and never get it back. Fight this downhill tendency as much as you can by upholding the value of active wonder. Constantly remind yourself of how little you truly know, and of how mysterious the world remains.

One common objection to this that I always see is students claiming, “Yes, but I learn differently! Everyone is different! Your advice doesn’t apply to me!”

Robert Greene addresses this as well in his book.

This is an example of someone who hasn’t yet mastered the fundamentals, but skips ahead and tries to enter the “creative phase” of the mastery process.

Understand: the greatest impediment to creativity is your impatience, the almost inevitable desire to hurry up the process, express something, and make a splash. What happens in such a case is that you do not master the basics; you have no real vocabulary at your disposal. What you mistake for being creative and distinctive is more likely an imitation of other people’s style, or personal rantings that do not really express anything.

Please enjoy this meme, it encapsulates this article well: