Day 3: Building a Recommendation System Using Machine Learning (ML) and Artificial Intelligence (AI)

Ohans Emmanuel
The Happiness of Pursuit
5 min readMar 4, 2018

This article is a part of my year-long quest to master 12 incredibly hard skills, one a month.

Learning Python — really fast.

The first time you get your hands on Machine learning, it becomes really clear that you perhaps have to learn Python.

It seems to be the leading choice of programming language in the Machine Learning field.

That’s good, right?

Well, except for a little gotcha.

I have never written python professionally.

My Experience with Python

I have been writing code for some years now and python has definitely been on my to-learn radar for a long time now.

There were a few times I skimmed through Python books, but I never got to building any projects with the language.

In short, I’m a python rookie.

The irony of life.

Being a master in one field doesn’t suddenly make you a master in another. We’re all rookies at some ‘other’ technology.

How I plan to Learn Python — fast

When you have a quest like mine, you are deeply concerned about learning fast.

I have barely 2 hours everyday to work on this month’s quest. Mostly, I only get an hour of practice. The lucky days I get 2 hours of practice time is gold!

So, how do I plan to learn python relatively well in this short period?

Deconstructing the goal

When you’re trying to achieve any goal, an important but often overlooked part of the process is deconstructing the goal.

It is not enough to say, I want to learn python — you’ve got to be specific!

Python is such a broad topic and you’ll get lost in the rabbit hole trying to learn all of it.

For me, I want to learn just enough Python to understand the basic construct of the language and apply that to intelligently being able to figure out writing Machine learning Python code.

I work as an frontend engineer which means I have a decent command of the Javascript programming language. I believe it is relatively easier for me to learn python than if I were a complete noob at programming in general.

Since I don’t have much time to spend on this learning phase, my plan revolves more around active learning.

You said active learning ?

If you want, you can see learning as a 2-sided coin.

The passive learning side of things is the time you spend on activities such as reading, watching videos etc.

This is an important phase of learning, but it isn’t nearly as effective as the latter.

Active learning is focused a little more on problem solving and the application of the gained knowledge from passive learning.

It’s as simple as not reading anymore books and getting into solving exercies and problems.

Oh, don’t read anymore books?

No, that’s not what I meant.

The effectiveness of active learning comes from its focus on results. The synapses of the brain get fired up trying to achieve a common goal — solving a problem at hand. Aren’t we at our best when faced with challenges? Don’t we think up intelligent solutions then?

When you get stuck on a problem, you return to perhaps finding solutions in a book or video, but this time it is a lot more effective!

How am I going about this

Today, I watched python videos for about an hour, just to get a braod sense of how the language works.

I must say I’m impressed. It’s a pretty decent language. It looks elegant and easy to read too.

I watched the course, Learing Python by Joe Marini

In all honesty, I only watched about 46% of the course — and that was at 2X the playback speed.

46% watched

I spent some of the other time setting up VScode for python, and trying to comprehend a few python scripts associated with the exercise files for the course.

So far, so good.

I may end up completing the course, but right now I’m looking forward to switching quickly to the active learning phase.

How am I practicing?

Do a simple google search for python practice questions and you get tonnes of results.

Google result

I picked the first search result — well, becaue it came first.

Solve the easier or harder quesions first?

Take a quick guess.

When faced with 30 practice questions, which would you tackle first?

Instinct may say, the first. However, I’ve learned to begin with the difficult questions.

Most times, the more difficult questions are a culmination of a lot of other easier problems. So, you solve a difficult problem, and that may amount to solving 5 or more easier questions.

The exercies on practicepython.org may not be top notch or badass algorithms. I don’t care. I am happy with what they’ve got. They suit my current goal.

They have a list of 36 questions, so my plan is to complete the 10 most difficult exercises. The exercises are ranked in terms of diffficulty.

practice python

Getting Feedback

When you’re just learning something new, you may get the answer to a practice exercise but still go about it wrongly. You may also spend hours doing the wrong thing, fighting bugs and feel like you’re not making progress — something like that.

To cub issues like this, feedback is important.

If you pick practice exercises, you want to make sure there’s solutions to the questions too. Then, you can bounce your problem solving approach off of a more standard way to solve the exercises.

This turned out to be longer than I had expected. Hopefully, you now get a good sense how I plan to go about learning python pretty fast.

I’ll be practicing python tomorrow 👞

Great!

Follow me to keep up with my year-long quest to master 12 incredibly hard skills.

Much love 😎

--

--

Ohans Emmanuel
The Happiness of Pursuit

Authored 5 books and counting. This one will teach you intermediate to advanced Typescript in React: https://shrtm.nu/kqjM