Udemy St. Patrick’s Day Sale 🍀

March 13, 2019

Do beer and AI go together?

For the next week, all my Deep Learning and AI courses are available for just $11.99! ($1.00 less than the current sale, woohoo!)

For my courses, please use the coupons below (included in the links), or if you want, enter the coupon code: MAR2019.

For prerequisite courses (math, stats, Python programming) and all other courses, follow the links at the bottom for sales of up to 90% off!

Since ALL courses on Udemy on sale, if you want any course not listed here, just click the general (site-wide) link, and search for courses from that page.


https://www.udemy.com/support-vector-machines-in-python/?couponCode=MAR2019

https://www.udemy.com/recommender-systems/?couponCode=MAR2019
https://www.udemy.com/deep-learning-advanced-nlp/?couponCode=MAR2019


https://www.udemy.com/advanced-computer-vision/?couponCode=MAR2019


https://www.udemy.com/deep-learning-gans-and-variational-autoencoders/?couponCode=MAR2019


https://www.udemy.com/deep-reinforcement-learning-in-python/?couponCode=MAR2019


https://www.udemy.com/artificial-intelligence-reinforcement-learning-in-python/?couponCode=MAR2019


https://www.udemy.com/data-science-linear-regression-in-python/?couponCode=MAR2019


https://www.udemy.com/data-science-logistic-regression-in-python/?couponCode=MAR2019


https://www.udemy.com/data-science-deep-learning-in-python/?couponCode=MAR2019


https://www.udemy.com/data-science-natural-language-processing-in-python/?couponCode=MAR2019


https://www.udemy.com/data-science-deep-learning-in-theano-tensorflow/?couponCode=MAR2019


https://www.udemy.com/sql-for-marketers-data-analytics-data-science-big-data/?couponCode=MAR2019


https://www.udemy.com/deep-learning-convolutional-neural-networks-theano-tensorflow/?couponCode=MAR2019


https://www.udemy.com/cluster-analysis-unsupervised-machine-learning-python/?couponCode=MAR2019


https://www.udemy.com/unsupervised-deep-learning-in-python/?couponCode=MAR2019


https://www.udemy.com/unsupervised-machine-learning-hidden-markov-models-in-python/?couponCode=MAR2019


https://www.udemy.com/deep-learning-recurrent-neural-networks-in-python/?couponCode=MAR2019


https://www.udemy.com/natural-language-processing-with-deep-learning-in-python/?couponCode=MAR2019


https://www.udemy.com/data-science-supervised-machine-learning-in-python/?couponCode=MAR2019


https://www.udemy.com/bayesian-machine-learning-in-python-ab-testing/?couponCode=MAR2019


https://www.udemy.com/machine-learning-in-python-random-forest-adaboost/?couponCode=MAR2019

 

PREREQUISITE COURSE COUPONS

And just as important, $11.99 coupons for some helpful prerequisite courses. You NEED to know this stuff to understand machine learning in-depth:

General (site-wide): http://bit.ly/2oCY14Z
Python http://bit.ly/2pbXxXz
Calc 1 http://bit.ly/2okPUib
Calc 2 http://bit.ly/2oXnhpX
Calc 3 http://bit.ly/2pVU0gQ
Linalg 1 http://bit.ly/2oBBir1
Linalg 2 http://bit.ly/2q5SGEE
Probability (option 1) http://bit.ly/2p8kcC0
Probability (option 2) http://bit.ly/2oXa2pb
Probability (option 3) http://bit.ly/2oXbZSK

 

OTHER UDEMY COURSE COUPONS

As you know, I’m the “Lazy Programmer”, not just the “Lazy Data Scientist” – I love all kinds of programming!

 

iOS courses:
https://lazyprogrammer.me/ios

Android courses:
https://lazyprogrammer.me/android

Ruby on Rails courses:
https://lazyprogrammer.me/ruby-on-rails

Python courses:
https://lazyprogrammer.me/python

Big Data (Spark + Hadoop) courses:
https://lazyprogrammer.me/big-data-hadoop-spark-sql

Javascript, ReactJS, AngularJS courses:
https://lazyprogrammer.me/js

 

EVEN MORE COOL STUFF

Into Yoga in your spare time? Photography? Painting? There are courses, and I’ve got coupons! If you find a course on Udemy that you’d like a coupon for, just let me know and I’ll hook you up!

Go to comments


Beginner’s Guide to the Q&A

March 5, 2019

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 beginner’s 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 stupid 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 do not follow instructions, and do not have the life experience to know why their behavior is socially unacceptable. Although such students are unlikely to have enough patience to read this guide, I still sincerely hope that they do.

 

Table of contents:

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

 

I am not your consultant

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.

Why?

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?

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 $250/h for.

 

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.

Unfortunately, I no longer offer such services.

There are many out there that do.

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.

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

 

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.

 

Help setting up your environment

I have over an hour of material demonstrating (not just describing, 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.

 

Please give me slides

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.

Piracy is yet another strong reason I don’t provide slides. It simply gives pirates yet another method in which to steal content.

If I were to custom export slides for you (watermarked to prevent piracy), 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? From my experience, they are always the lazy, do-nothing, non-studious type. 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: https://youtu.be/rJTM9QXbVt0?t=309

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”.

Uh, what?

Maybe that’s something you should work on then?

Even still, you are asking me to exert more effort due to your lack of discipline. That is disrespectful. No, I will not put extra effort because you don’t “feel like” doing something.

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?

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

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.

 

Help, I got an error!

This is a nearly useless thing to say when you are asking a question.

Remember that you have video proof that everything works (I didn’t just show you one script and run some other script demonstrating a fake result – that would be idiotic and clearly providing code that doesn’t work for anyone would be immediately problematic).

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.

Why do you 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 I would probably laugh).

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 inexcusable and unnatural behavior.

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 reeks of laziness.

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 be complete shit at 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 kind of delusions do you have that 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.

 

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 whiny 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.

Why do I take such a heavy-handed approach?

Because it is disrespectful and insulting to me if you as a student were too lazy to pay attention, too lazy to make sure you 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 laziness.

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

My telling you to review the whole section is disciplinary action. It is the discipline that you lack.

It is detention for misbehaving during class time.

But how can I know the best way to learn this stuff?

I’ve done it myself. I’ve learned this stuff. I know what it takes, and you don’t.

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: http://www.stat.columbia.edu/~gelman/research/unpublished/prior_context_2.pdf

 

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)

 

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.

The worst is those people who are totally incompetent and apply for jobs they are incapable of doing, then freak out when their own client expects output that they cannot provide. So they end up asking me to help them.

Nope.

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.

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.

Go to comments


Deep Learning and Artificial Intelligence Newsletter

Get discount coupons, free machine learning material, and new course announcements