Beginner’s Guide to the Q&A

I am making this post because there are a not insignificant number of students who have begun to misuse my course Q&As in ways that were not intended. This post lists a set of rules and guidelines for beginners to the Q&A.

As an aside: I still advocate asking any and all questions as this is the best way to learn. I still go by my rule that one should ask a question even if they think it is stupid or unnecessary. However, that doesn’t mean it will always be answered, as per the guidelines below.

Still, there is nothing to lose by asking a bad question (other than a few minutes of lost time). If it’s a bad question, it’s a bad question. Nobody gets hurt. Either way, you will learn from it.

This post is for those who do not yet understand that there are ways in which one should not behave, that will lead to unanswered questions or answers that you did not expect. This post will help you understand why that was the case, if it happened.


The major themes of this post are:

  • I am not your consultant nor your tutor.
  • If you are not respectful of my time, I will simply not engage.
  • Don’t give a man a fish, teach a man to fish.

The great irony of this post is that students who were proactive enough to find this and read it in the first place are not the ones who need it. If you happened upon this post accidentally and read this, realize that it’s probably not being addressed to you.

This post is mostly for those students who frequently ask questions which do not get answered – and maybe cannot figure out why. Sometimes it’s due to socially unacceptable behavior, like swearing at me. Although such students are unlikely to have enough patience to read this guide, I still sincerely hope that they do.

I believe everything in this post is fair and unsurprising – perhaps even obvious.

If you disagree with any of the rules of this post, or you think I should revise them, I’m all ears! Just use the “contact” button above and let me know.

I try to add a little humor here and there, but don’t mistake that for a lack of seriousness – these guidelines are just as important as meeting the prerequisites and brushing your teeth in the morning.


Table of contents:

  1. I am not your consultant
  2. I am not your tutor
  3. This is not a tutoring service
  4. Rudeness and immaturity are not rewarded
  5. Help setting up your environment
  6. You didn’t respond to my question. Why?
  7. How dare you just refer me back to the lectures!
  8. Please give me slides
  9. Why do I have to do things your way? Why can’t you answer my question the way I want?
  10. I expect prompt and detailed answers
  11. Help, I got an error!
  12. The #1 source of student error
  13. Help, I don’t understand <X>!
  14. Machine learning is experimentation, not philosophy
  15. Code dumps
  16. Homework takes longer than 5 minutes
  17. Review the whole section?
  18. Short questions can have long answers
  19. Why do you answer a question with a question?
  20. What if I try reverse psychology?
  21. Effort yields effort
  22. People who hesitate to ask questions are exactly who should ask questions
  23. How to behave

I am not your consultant

See this post for a more detailed discussion about the difference between my courses and my consulting services.

Basically, anything that is not precisely one of the topics (data, code, or algorithm) taught in the course is off-limits.

That includes any extensions or modifications of the existing course content.


I can’t know if it’s something from your job or something that someone else hired you to do.

If you’re getting paid to do a job, why would I contribute if I am not also getting paid to do that job?

Sure, if your employer wants to hire me as a consultant to help, I might consider that if I am seeking new clients.

It’s important to remember that you purchased an online course. It’s like purchasing a textbook.

Do you purchase a textbook and ask the author for help on your current project?

Can I buy “Pattern Recognition and Machine Learning” by Christopher Bishop (which by the way is 10x the cost compared to the typical cost of my courses) and email Christopher Bishop demanding (not asking) help with my job that I am getting paid for?

You’re not buying consulting hours.

I will not contribute anything (code, guidance, ideas) to your work that you are getting paid for.

What it comes down to is fairness. I can’t do something for you for free that I charge someone else for.

At times, I have offered consulting services, but the course Q&A is not the time to ask about your personal projects or topics outside the course. Consulting hours would be the more appropriate avenue if that’s what you are interested in.


I am not your tutor

If you have some math question or some programming question that is about something being taught in the course, I will guide you on how you can discover the answer yourself or uncover what you did wrong, and where the mistake was in your thinking.


I will not derive anything for you on the spot.

I will not write any code for you and show you how it’s done.

I will not go through each line step by step with you, or get to know you well enough to understand why your thinking went wrong.

I will not engage in a back and forth about some math / programming topic until you get it.

I am not your tutor.

I previously offered 1-on-1 services where you could ask me questions like that, and I would work with you personally on precisely these things.

That would be an appropriate avenue to expect that level of assistance.

So if you want help with calculus, seek a calculus tutor. If you want help with linear algebra, seek a linear algebra tutor. Programming? Seek a programming tutor.

I will point you in the right direction (i.e. look up this rule, read about how to derive X), but I will not take you through a step-by-step process on the Q&A.

A lot of the time, it’s just basic algebra, so there is no exact “rule” I can point you to. The only thing I can say is “fix your algebra”. I can’t pick apart your brain and figure out exactly which algebra rule you’re getting wrong.

Again – you are buying a course – not a tutor.

Personally, I love helping students and feel a great sense of achievement when I’ve sat down with someone and explained something step by step so they can understand it.

But realize that the course is not the time nor place for that.

As above, it comes down to fairness. I can’t do for you for free what I would charge someone else for.

And unfortunately it needs to be said that grade-school attempts at manipulation tactics such as:

“The reason you can’t answer my question is because you don’t know the answer!”

..will not be rewarded. Also, if you tried using something like this yourself, I think it’s time for some self-reflection about why your mind hasn’t matured to an adult level.


This is not a tutoring service

Indeed, my courses offer a course Q&A. These are meant to be brief. If, after a few tries, there is something severely lacking in your knowledge that you still don’t get it, I will not engage anymore. I may give you some links so you can study up yourself.

But realize that it is not my responsibility (because I’m not your tutor) to keep inquiring until I figure out exactly what you’re missing and can tell you exactly what to do to fix it.

Ultimately, you’ll just have to make use of the resources I provided to you on your own. If you don’t understand those resources, it’s likely you are too behind on the prerequisites, which you’ll have to work towards independently.


Rudeness and immaturity are not rewarded

Hopefully this goes without saying, but if you are rude or immature, I will simply not engage with you.

The Q&A is a privilege. You are purchasing an online course which normally (considering the Internet as a whole) does not entail such privileges.

You lose that privilege immediately when it becomes clear that you are unable to behave maturely.

I have a very good memory. If you come back to my courses 3 years later and try to behave normally, I will still remember your past behavior and simply avoid engaging.

Usually, people are so bad, it’s very obvious even if they try to change their username, that it is still the same person with the same lack of maturity.


Help setting up your environment

I have over an hour of material demonstrating (not just describing, but demonstrating, so you can see it work for yourself), how to setup your environment, install libraries, etc. on popular operating systems.

Unfortunately, I can’t assist individuals with their own computers.

I am not your IT guy.

I can’t sit there with you and work out all the kinks so you can get your system up and running.

Every individual’s computer is different.

Sometimes, what works for some doesn’t work for others.

I don’t have access to your computer, so I have no idea what unique characteristics of your system are preventing something from working.

In that sense, you have an advantage over me because you have physical access to the machine and can try things out rapidly.

No, I will not Skype with you or work with you until you can get it working (see above: I am not your consultant / tutor).

If something that works for most other people is not working for you, then you should Google the problem.

That is likely to lead you to a better solution than depending on my psychic ability to guess what’s wrong with your machine.


You didn’t respond to my question. Why?

Most likely because you violated one of the guidelines listed in this article. Read on to learn what they are.

Based on the way a question is phrased, and/or past behavior, I make a prediction about whether or not a question is worth responding to.

Sometimes, I see that the student has no hope of understanding the concepts I present in this article, and simply trying to explain them to the student will lead to an argument.

Example: Some students can’t grasp why “printing things out” is a good idea, and any suggestion of that is greatly offensive to them (for whatever reason).

Thus, I avoid such students preemptively.


How dare you just refer me back to the lectures!

Some students find it extremely offensive when I answer a question by referring them back to the lectures.

In fact, some students are so offended by this, they get offended even when they were not the one who asked the question!

To these people, I must ask: are you just having a bad day?

What kind of normally functioning human being would get offended on behalf of someone else?

In any case, these students will typically accuse me of being “lazy” (haha so funny…) because I didn’t write a paragraph to explain the answer in detail.

However, like everything else in this post, if you think this, you would be wrong.

Firstly, again you must remember: I am not your tutor and this is not a tutoring service. If the answer can be found in the lecture, there is no need to type out the answer.

The job of instructors on the Q&A is to simply point you to the answer, not give you a personalized tutorial via text.

You are just offended because you “paid” for the course, and you expect that I “work for your money”. Very silly.

Remember, this is a product, not a service.

What would be the point of retyping the answer when the answer already exists in video form, with words and pictures?

Clearly, the video answer is superior.

Another mistake you are making is assuming “the customer is always right”.


Remember, I made the lectures. I know what’s in them.

You’re assuming that, because the student asked the question, the answer must be missing from the lectures.

The customer must be right, otherwise, why would they ask the question?

In fact, it is simply because some students are bad at paying attention (yes, I know that’s offensive, cry about it).

It might bother you to know that this actually happens quite often.

Here’s an example from just now:


Please give me slides

Better explanation here:

I do not respond to these request for several reasons.

Slides for my courses don’t exist, especially later courses which have animations (how do you export that?).

Furthermore, since my courses are constantly being updated, those slides would quickly become out of date, adding additional work.

If I were to custom export slides for you (watermarked to prevent plagiarism and other illegitimate use-cases), I would charge you at my hourly consulting rate.

However, I am sure neither you nor I would be satisfied with that resolution.

Why? It’s expensive for you, when you could do similar or better by yourself (see below).

For me, it’s boring grunt work that I probably wouldn’t accept anyway (unless I had some free time and it felt like an acceptable use of time).

Do you really want to pay a few hundred bucks for some slides that you technically already have access to?

But the most important reason you shouldn’t use slides is because they are ineffective learning tools.

How do I know?

I have spent more years in classrooms than most people. I know from first-hand experience as well as observing others.

Those students who are always asking for slides? Let’s just say they are not usually the top-performing students. Usually trying to catch up last minute or cram because they didn’t take notes and study during the semester. The problem isn’t that they needed slides. The problem was they didn’t have enough discipline to actually sit down, write things down, and study.

So it may just be a personal bias based on experience. But I doubt my experiences were only unique to me.

In the time they spent bickering about why they should be entitled to free slides, they could have made their own notes 10x more helpful than the slides. The fact that they choose to spend that time bickering rather than being productive and making notes is strong proof to me that their goal is not to learn, but merely to obtain something they feel they are entitled to.

In other words, it’s driven by an ideological belief that they deserve slides, not an actual desire to learn the material (which is what having notes should be for in the first place).

Were slides promised upon purchasing the course? No.

Does it say anywhere that slides are provided? No.

Purchasing a course and demanding something not part of the guaranteed materials is the same as walking into a restaurant and asking for free food or special treatment from the waitstaff. Restaurants hate those customers (who unsurprisingly never tip even when their demands are met).

There’s something special about the muscle memory gained by writing something down.

Absorbing information second-hand is simply inferior. There is no muscle memory.

It’s the same as reading a book.

I can read a book to learn some subject. What will determine whether or not I absorbed that information is if I went through the equations by hand, thought about each step, etc.

I love this example where an MMA YouTuber essentially says the same thing about how to remember what you learn in a martial arts class:

Although it probably doesn’t need to be said, martial arts has nothing to do with machine learning!

And yet, observe that this technique of writing things down is universal.

It applies to learning any subject, even physical ones like martial arts.

Yet, there are still people who try to contest this.

“Everyone is unique” or “Everyone learns differently”.

Let me tell you: these excuses are not unique at all, which is why I’m writing this in the first place. 😉

I have even heard crazy excuses like: “I can’t read my own writing” and “My notes are not good”.

If your notes are not good or your writing is not good – improve that! These are basic life skills.

Writing things down is so universally helpful that even research papers have been published on the subject.

Writing things down / note-taking involves spending more time thinking about the topic, thinking about each step in detail, how to get from one step to the next.

It is an exercise for the brain.

That’s why I find it extremely improbable that writing things down does not work for certain individuals.

That’s equivalent to saying “I gain more muscle when I exercise less”.

That’s not really how human physiology works.

How can you claim to learn better by thinking less?

But let’s give you the benefit of the doubt for a moment… suppose your learning style truly is unique.

This goes back to the rule: I am not your tutor. You didn’t sign up for personalized help, so any idiosyncrasies unique to you cannot be addressed by definition.

Remember: you are buying a course. It is like buying a book. Just as you wouldn’t ask the author of a book to complete on-demand tasks for you upon buying their book, you are not buying on-demand task requests from me.


Why do I have to do things your way? Why can’t you answer my question the way I want?

Short answer: because what you “want” is not even correct (because the premise of your question is not correct).

Sometimes students lack such fundamental understanding that they cannot understand why the answer they want is not a good answer.

Consider this common scenario: coworker asks for help with some function or piece of code.

You have to tell them, as politely as possible, to throw everything out because they have no idea what they are doing.

If you “answer their question”, you will simply dig them deeper into their rabbit hole.

They are going down a path in which there is no end.

Instead, as a responsible employee, interested in getting things done and not messing around, have to tell your coworker to simply stop and do things the right way, because their way won’t lead anywhere good.

Many beginner students don’t realize that they are this bad coworker.

They don’t realize their question is based upon false presumptions, and on incorrect thinking.

When you “correct” them, they tend to get very angry, because you are challenging some of their most fundamental beliefs.

They say, “why can’t you just answer my question?”

The answer is: because your question is based on one or more false beliefs, and therefore, you must be redirected to a correct line of thinking.

If you are this beginner student, stop right now.

Realize that the instructor is just saving you from yourself.


I expect prompt and detailed answers

As much as I’d love to be there for you whenever you need me, realize that this is physically not possible.

Let us not forget that you have purchased a course. It is similar to buying a book.

You have not hired a tutor nor a consultant.

This means that you have zero reason to expect that you can make demands for my time.

Although for many questions I respond within minutes or hours (when I am at my computer for example), one should not consider this the norm and one should certainly not feel entitled to such attentiveness.

There is simply no way you can justify it.

You didn’t hire a tutor, so you’re not getting one.

What if I’m on vacation for a month? What if I am traveling for a consulting gig? You purchasing a $10 course gives you no say in the matter.

Even if you did hire a tutor or consultant, you would schedule time with them a priori – not make on-demand service requests. Again, if you’d like to schedule some time to have your questions answered, I have services for that.


Help, I got an error!

This will not help you get a good and detailed answer if you are asking a question. In order to get the best answer, you need to provide details which will help me help you.

Firstly, remember that you have video proof that everything works.

Something may truly be wrong (e.g. a new version made breaking changes).

But if you don’t tell me what went wrong, I can’t help you.

Saying “I got an error” is not specific enough for me to help you.

Sometimes students get errors because they made a typo (more on that later). How can I predict whether you made a typo or not?

If you get an error, you have to tell me what that error is and provide a stacktrace.


The #1 source of student error

This is related to the above.

I will say again that you have video proof that everything works (at least for the versions of the libraries that were current at the time the lecture was made, on the platform I ran the code on).

What is typically the cause of “errors”?

99% of the time, it is due to the student copying something incorrectly.

Many of these times, I will even state this outright and ask the student to double check whether or not they made any typos.

Their response is usually to promise that they are certain they did not make any typos.

Usually, I have to ask once or twice more for them to realize that yes, in fact, they did make a typo.

Don’t do this!

If I suggest something, why not just trust my years of experience of dealing with this kind of thing, instead of putting yourself through the same mistakes many before you have already made?

Sometimes, I will ask you to cross-reference with the working code because I know for a fact that you made a typo.

I will provide no further guidance.

If you don’t listen to me, that’s your responsibility, not mine.

Unbelievably, sometimes I will do a quick run of the code using the latest version of every library on all major platforms (Windows, Mac, and Linux), to demonstrate to the student that the code works, and they still don’t believe they made a typo.

Do you seriously believe that my versions of Windows / Mac / Linux are somehow special and that it could not possibly be something wrong on your machine?

Sidenote: another common source of error is that students are not using the latest version of the code on Github. Things in this field change fast. At one point, new Tensorflow versions were being released monthly with breaking changes.

It doesn’t make any sense to make all new lectures for every little change. I will update the code on Github, but the major points of the lecture usually haven’t changed so dramatically that it would warrant creating an entirely new lecture.

If you check the latest code on Github, that is very likely to resolve your issue. (Not applicable to courses with Colab Notebooks)


Help, I don’t understand <X>!

Suppose the class includes a section about some topic, convolutions.

You ask: “I don’t understand convolution. Can you please explain it?”

I will not answer this.

It shows a lack of thinking and caring.

You don’t understand a topic after we’ve spent an hour or so specifically talking about that topic?

Sure, that may be forgivable. Maybe you’re missing some prerequisite or something.

But you didn’t tell me anything about what you don’t understand.

You were not being specific.

So how can I help you? What exactly do you not understand?

What can I do aside from repeat what I’ve already said?

If you can’t be bothered to at least explain the parts you did and did not understand, I won’t be bothered to ask you to clarify.


Machine learning is experimentation, not philosophy

“What will happen if I replace X in the code with Y?”

For questions like these, I will respond with my usual stock response: “machine learning is experimentation, not philosophy”.

The best way to learn what the output of a computer program will be is not to guess with your mind, but to run the program with a computer.

While obvious, students sometimes believe there is some “mystic secret” to programming or that I am somehow an oracle that just automatically knows how a program will behave without looking at it.

No, if I want to know “what happens”, well, I’m just going to execute the program and look at the output.

This is why I will not respond to such questions directly.

I will not spend my time to run the computer program when you should be doing it yourself.

Most students who ask questions like these are likely not doing so in a malicious way, but it is bordering on lazy and disrespectful of my time.


Code dumps

If you paste a bunch of your code and then ask: “What’s wrong with this?” you are unlikely to get help.

It’s the same theme as always: I’m not your tutor.

I don’t look at individuals’ code and help them fix it.

In fact, even a 1-on-1 client would provide me more information to better help them.

A 1-on-1 client would not just get on a Skype call with me, send me some code, and remain completely silent until I had something to say.

(That would be hilarious and weird).

In reality, the client would go on to tell me why they designed the code the way they did, what problems they were having, and where they think things are going wrong.

No client has ever given me a code dump without walking me through it. That’s just unnatural behavior. It doesn’t happen.

If all you do is dump your code on me, you are not helping yourself at all.

But remember! The solution is not to then explain your code, etc. etc. as I described above, because again, I am not your tutor, I am not your consultant, and you are not my client.

As a student of the course, you should be using the resources at your disposal, i.e. the working code I have already provided.

If your code isn’t the same, then there are only a few possibilities:

1) You made a typo copying my code (see above: the #1 source of student error)

2) You are typing out your own version of the code (that’s great, but I’m not your tutor, so I’m not going to coach you on your coding abilities)

3) You are coding something not related to the course (I’m not your consultant)

Reading others’ code takes time, especially since everyone has a different coding style. How long does it take you to decipher my code? Now apply that the other way around.

Another major reason I don’t respond to these is because it shows you have not put in sufficient effort.

You got an error, so your first idea was to dump the entire script into a question and ask me “please look at this”?

You didn’t bother to check the error message and pinpoint the specific line of code that was giving you the problem?

(See below: effort yields effort)


Homework takes longer than 5 minutes

As mentioned above, I will (sometimes, if applicable) point you in the right direction.

If you want to learn about “X” topic, I’ll say: “You should take a course on Y” or should “Read paper Z”.

If you’re having trouble with a math equation, I’ll tell you to go back to it, especially when the answer is already provided.

With math, it’s impossible for me to read your mind and know what you’re doing wrong.

I can’t do that unless I speak with you extensively (which I won’t do because again, I’m not your tutor).

All I can do is show you where point A is, where point B is, and to explain which rules of mathematics must be followed to get from A to B.

I can’t work with you to help you understand which of those rules (there could be many) that you don’t quite get.

The major problem with students who dislike this approach is that they believe every obstacle should be resolved instantly.

That’s not how learning works.

When I’m working through equations or derivations in a book, it’ll take me a few minutes to an hour to maybe even a day if I need to ponder it.

Your expectation of instant gratification is because you don’t even know how to learn, not that I have somehow failed you.

I go by the saying, “give a man a fish, feed him for a day; teach a man to fish, feed him for life”.

Part of this is because it’s the right way to learn.

If you never have to struggle, you will end up lacking competence in this topic.

Why would you want that?

Why do you want to remain low-skilled and incapable?

I don’t understand.

You presumably joined the class because you wanted to learn the topic it was about.

But when a challenge appears, your instinct is to get someone else to solve it for you?

Why do you believe you shouldn’t have to put in the work, when everyone else does?

What makes you believe you can “graduate” from this class if someone else is doing your homework?

This is not for grades and you are not getting a degree – the only thing you can get out of it is learning.

It’s literally the only thing you can get from this course and you want to voluntarily take away that experience?

If you want to take that away from yourself, I don’t care – but don’t act like I have wronged you by not giving you an answer.

Let’s take Christopher Bishop’s PRML again (remember, you paid 10x more for that). Do you email Bishop and ask him to walk you through a derivation in his book that you didn’t understand?

Part of it is also (I repeat) I am not your tutor.

If you hired me for a 1-on-1, I would work through it slowly step-by-step and uncover the reasons why you’re not getting it, whether that’s missing some math trick or whatever.

On the Q&A, I do not provide that level of guidance and getting to know you, because I am not your tutor.

I’ll mention again that teaching students and seeing the lightbulb go off in their brain when they finally get something is incredibly rewarding. I love teaching and helping people understand things, but that level of attention is outside the scope of the course.


Review the whole section?

Sometimes, when a student asks a question, it is clear they are in way over their heads and missed like 10 or more things that I’ve covered in the lectures.

Even when they ask a simple question, I might respond that the student should review an entire lecture / section.

Sometimes, easily-offended people will interpret this as a rude response.

I claim that it actually helps the student.

It is like how a teenager does not understand that their parents act in a way that is best for them, and they do not understand due to lack of life experience.

“Eat your broccoli” doesn’t mean your parents hate you.

“Eat your broccoli” means your parents don’t want you to turn into an unhealthy slob.

Why do I take such a heavy-handed approach?

Because it is disrespectful if you as a student didn’t pay attention, didn’t meet the prerequisites, and due to your lack of discipline you are demanding that I put in effort to make up for it?

Absolutely not.

And despite your show of disrespect, I still do what is best for you by telling you the right way to approach the problem.

You think a “simple answer” will fix everything?

If you missed 10 things and I throw you a bone, do you all of a sudden magically understand all that stuff you clearly don’t get?

It just doesn’t happen.

You need to study hard and make up for all that stuff you missed.

If there are 10 things you clearly don’t know, that’s 10 things you need to catch up on.

This section is a more specific instance of the general scenario below.


Short questions can have long answers

One common misconception among beginners is that their very short question also has a very short answer.

Then they wonder why: “Why didn’t Lazy Programmer just give me the one-line response I was looking for?”

Obviously, the biggest gap in this logic is that the student fails to see is: They don’t know this topic in the first place. How can they have any concept of what the answer will be?

Assuming you are not an expert in the subject matter, how would you know better than me what answer to expect?

And if you are an expert in the subject matter and you know the answer already, why are you asking?

In either case, this attitude does not make sense.

And if your question ends up having a truly long answer (unbeknownst to you), what will I do?

Either (a) I won’t respond, or (b) I may link you a paper or other resource on the topic so that you can look at the long answer for yourself.

And why do I do this? Let’s remember the theme: I am not your tutor.

I can’t sit down and write an essay for you.

You might say, “Surely, you can summarize the main ideas into a couple sentences?”

That would involve me reviewing whatever long-answered resource I sent you and writing down the key points. That’s more work than just reading it. (More on that below in the next section: effort yields effort).

A great example of this would be the question: “How do you choose a prior in Bayesian analysis?”

Very short, succinct question.

Surely it must have an equally short, succinct answer, a beginner might suggest.

Actually, the real answer is very complicated.

In fact, having to choose a prior in the first place remains one of the main criticisms of Bayesian analysis.

Here’s a long-answer paper that demonstrates the fact:


Why do you answer a question with a question?

Often, students mistakenly believe that when I answer a question with a question, that the answer doesn’t contain the answer.

This is false!

My answer already contains the answer, but is phrased as a question because in order to answer it, you must confront whatever mistake you made.

Many people find it “uncomfortable” to confront their mistakes (having to admit they were wrong), but that’s necessary in order to learn.

If your mind never changes, then it never improves! If you were right all the time, you would never need to learn anything new.

Here’s an excellent example:

Image 1 (student makes a calculus error)

Image 2 (I point out where the error is)

Image 3 (student misunderstands my question)

Image 4 (I repeat my original answer more clearly, pointing out where the error is made, but still phrasing it as a question)

Image 5 (student now REFUSES to answer the question – despite that’s exactly what they need to do)

Image 6 (I repeat the same answer again, but not in question form)

Image 7 (student finally realizes I answered the question in my first response)

Lesson: don’t be so short-sighted. Just because a sentence ends with a question mark (?) does not imply that it’s only a question. The question may also contain the answer.


What if I try reverse psychology?

Sometimes, students will get fed up with the kinds of answers I give (like answering a question with a question – see above), and they will start to get sarcastic / manipulative in response.

One great example of this, which I’ve seen many times in my career, is something along the lines of:

  • “It’s ok if you can’t answer the question, just tell me. ;)”
  • “If you don’t know the answer just say so. ;)”

As a way of enticing me to give them the answer they are looking for.

And of course you always have the low-effort / low-IQ winky face, as if to say, “wow everyone look how witty I am being”.

This is a quite simplistic form of psychological manipulation known as “reverse psychology”.

I include this example in this list because it’s a great example of how you shouldn’t behave as a student.

Furthermore, if you’ve tried this yourself, you should feel great shame, because according to the Wikipedia page on the subject, even children can sense this type of manipulation a mile away.

In fact, I think we should all be able to remember such instances from our childhood (I certainly can).

The fact that you are attempting to use below-adolescent level psychological manipulation tactics because you’re not getting what you want is definitely not going to win you any points.

Don’t do it.


Effort yields effort

The worst students are the ones who truly believe that no effort should be made on their part, and all the effort should come from me.

Aside from being obviously ridiculous, this again isn’t helping you learn the subject at all.

If I instruct you to do something (i.e. guide you in the right direction to solve your problem), and you don’t listen, it’s not my responsibility to keep pushing nor provide you with the solution.

A recent example was a student who wanted to know how to make predictions with a model.

Hint: all the code already existed, they just had to put in the effort to understand it and copy the same steps.

To paraphrase, I provided instructions on what to try, and it was clear that the student, over the next few responses, tried exactly zero of those things.

The student claimed to be a “beginner” (that much is obvious), and the finale was to beg for me to write the code for them:

There are a few things wrong here:

  • No effort put into understanding the existing code
  • No effort put into understanding the instructions I was providing
  • No effort put into actually carrying out those instructions
  • No effort put into meeting the prerequisites such that they would understand the above

The reason this really annoys me is because you are saying to me: “I don’t want to put in effort, and YOU should put in extra to help me get further”.

I should put in more effort to make up for your lack of effort?

I don’t think so.

I don’t know where that sense of entitlement comes from, but I think most reasonable people understand why such behavior does not deserve a response.

If it’s clear you put in no effort, I will respond in kind – by putting in a similar amount of effort.

If I see that you put in effort and it’s a topic within the scope of the course and doesn’t break any of the aforementioned rules, again I will respond in kind.

You might conclude that it would be easier to just paste a few lines of code for this poor soul and be done with it.

Clearly you have never heard of the phrase “Give a man an inch and he’ll take a mile“.

First of all, as mentioned above, I don’t write custom code for anyone if I’m not your consultant.

I don’t know what you’re using that code for and whether or not you’re getting paid for it.

Here is one common scenario:

  • A student applied for a job they are incapable of doing.
  • They freak out when their own client expects output that they cannot provide.
  • So they end up asking me to help them.


Giving people code actually opens two rabbit holes:

1) They didn’t understand how to derive that code to begin with, so they’ll have many questions about what this line does, what that line does, etc. because they put in zero effort to understand the existing course code (if we use the above example).

This is highly suspicious to me. If you didn’t understand existing code, then it would have made more sense to ask about that in the first place.

But asking how to do something new with the code after you didn’t understand the existing code?

Why wasn’t more effort put into understanding the course materials and asking about them to start with?

I am always happy to answer questions about existing material.

Asking about how to do new things is highly suspect and sets off the “this guy wants me to be his free consultant” alarm.

Probable scenario:

The student was hired for a job, tried to paste my code into their work. Realized it needed a few more things. Has no idea how to do it due to incompetence. Wants me to complete it for them.

I am not your consultant.

2) The student is missing prerequisites that caused them to not understand the existing code, which turns into a “why why why” train.

Ok, I give you some code. But why is it like that? Because of this. But why is that like that? Because of that. But why…? etc etc etc.

I will not spend my time repeating the lectures to you. That’s why the lectures exist in the first place.

I am not your tutor, so I will not break everything down for you to fill in any individual gaps you have personally.

Oh and let’s not forget that it’s likely not just one piece of code that the student wants. Student questions follow a Pareto distribution.

You give that student one piece of code and the next thing you know there are going to be 20 more similar requests.

Give a man an inch and he’ll take a mile


People who hesitate to ask questions are exactly who should ask questions

Sometimes, students make excuses as to why they can’t ask questions:

  • It would take too long to get an answer (wrong, I usually answer within a few hours, even minutes!)
  • It would take too long to come up with a question (good, it’s your job)
  • You can’t think of the right question (good, you came here to learn, “thinking” is part of that, obviously!)

People don’t realize that asking a good, well-thought out question helps you, not me.

It helps me a bit in the sense that if your question is stated in a helpful manner, I can more easily respond.

It helps you even more.

The reason you are confused is oftentimes due to mental contradictions.

Psychologically, mental contradictions lead to stress, because your mind is trying very hard to juggle too many concepts at once.

By writing down your thoughts, point-by-point, you naturally begin to resolve those contradictions.

In fact, writing down your question can often lead you to find the answer on your own!

I have experienced this for myself – so its power is not debatable.

Seeing your question written down on paper helps you to see the contradiction right in front of you.

The excuses students come up with as to why they cannot ask questions are utterly ridiculous.

“It would take too long to think of the right question” / “You can’t think of the right question”

Well, it takes as long as your mind needs to process it.

Obviously, you joined the course to train your mind.

Some people take longer than others. We all went to school, right? Some kids are A+ students, some kids are C- students.

It’s just a fact of life.

If the C- student has to work harder, then so be it. We can’t lower school standards so everyone will feel special.

You should be willing and prepared to train your mind to the level necessary.

As before, it’s a matter of entitlement.

Why do you believe you shouldn’t have to think as hard as others? What’s special about you?

Do the work, or fail.

It’s totally your choice, but accept responsibility for it.


How to Behave

I think a good rule of thumb is to treat it like you would buying a book.

If it’s not something you would say to the author of a book you purchased, then you probably shouldn’t say it to me.

Errata (I made a mistake in the code or lectures)? Yes.

Share your thoughts, comments, and suggestions? Yes.

Question about the content (be specific)? Yes.

Something in the code not working for you (be specific)? Yes.

Anything I mentioned above? No.

If you disagree with any what I’ve said: prove to me that for any question you think I’ve answered incorrectly, that you personally have ever asked the same or similar questions to an author of a book you’ve purchased, and that they responded in a manner that was agreeable to you.

You might say: This is more like a professor – student relationship. Don’t professors usually hold office hours and have TAs? Actually, it is not like that. Consider how much you paid per semester of college, and compare that to a book / course. It’s very different. A college program (tens of thousands of dollars per year) does not confer the same benefits as a $10 online course with thousands of students.

If you want a tutor, you must hire a tutor. But you can’t buy a course and then expect the instructor of the course to automatically become your tutor.