Taking too long? Close loading screen.
Connect with us


How I’d study machine learning — if I’d be starting out today



I’m underground, back where it all started. Sitting at the hidden cafe where I first met Mike. I’d been studying in my bedroom for the past 9-months and decided to step out of the cave. Half of me was concerned about having to pay $19 for breakfast (unless it’s Christmas, driving Uber on the weekends isn’t very lucrative), the other half about whether any of this study I’d been doing online meant anything.

In 2017, I left Apple, tried to build a web startup, failed, discovered machine learning, fell in love, signed up to a deep learning course with zero coding experience, emailed the support team asking what the refund policy was, didn’t get a refund, spent the next 3-months handing in the assignments four to six days late, somehow passed, decided to keep going and created my own AI Masters Degree.

Then, 9-months into my AI Masters Degree, I met Mike, we had coffee, I told him my grand plan; use AI to help the world move more and eat better, he told me I should I meet Cam, I met Cam, I told Cam I’m going to the US, he said why not stay here, come in on Thursday, okay, went in on Thursday for a 1-day a week internship and two weeks later was offered a role as a junior machine learning engineer at Max Kelsen.

14-months into my machine learning engineer role, I decided to leave and try it on my own. I wrote an article about what I’d learned, Andrei found it, emailed me asking if I wanted to build a beginner-friendly machine learning course, I said yes, we built the course and 6-months in we’ve got the privilege of teaching 27,177 students in 150+ countries.

Add it up and you get about 3-years. About the time my original undergraduate degree was supposed to take (due to several failures, I took 5-years to do a 3-year degree).

So as it stands, I feel like I’ve done a machine learning undergraduate degree.

Someone looking from the outside in might think I know a fair bit about machine learning and I do, I know a lot more than I started but I also know how much I don’t know. That’s the thing with knowledge.

  • 1-year in: The honeymoon phase, also known as the noob gains period. You’re much better than a beginner, perhaps even a little too confident (though this isn’t a bad thing).
  • 2-years in: The oh, maybe I’m not as good as I thought phase. Your beginner skills are starting to mature but now you realize getting better is going to take some effort.
  • 3-years in: The wow, there’s still so much to learn phase. Not a beginner anymore but now you know enough to realize how much you don’t know (I’m here).
Learning is non-linear (not a straight line). You may study for an entire month and feel like you’ve made zero progress. Then seemingly out of nowhere, a discovery appears. If you want an example of how we fool ourselves, did you catch the error? It seems I still forget how to spell.

But enough about me. That’s my story. Yours might be similar or you might be starting out today.

If you’re getting started, this article is for you. If you’re a veteran, you can offer your advice or critique my ideas.

Let’s get into it, shall we?

If you came for a list of courses, you’re in the wrong place

I’ve done a bunch of online courses. I’ve even created my own.

And guess what?

They’re all remixes of the same thing.

Instead of worrying about which course is better than another, find a teacher who excites you.

Learning anything is 10% material and 90% being excited to learn.

How many of your school teachers do you remember?

My guess is, regardless of what they taught, you remember the teacher themselves more than the material. And if you remember the material, it’s because they sparked a fire in you enough for it to be burned into your memory.

What then?

Dabble in a few resources, you’re smart enough to find the best ones. See which ones spark your interest enough to keep going and stick with those.

It isn’t an unpleasant task to learn a skill if the teacher gets you interested in it.

The curse of the engineer (and technology nerd)

Show me an engineer who proclaims her use case of the latest and greatest tools and I’ll show you an amateur.

I’ll confess. I’m guilty. Every new shiny framework which comes out, every new state of the art model, I’m onto it.

Often I’ll catch myself trying to invent a problem to use whatever new tool is on the market. A classic cart before the horse scenario.

A chef’s entire work centers around two tools, the controlled use of fire and a knife.

This is embodied in the best programming advice I’ve ever received: learn the language, not the framework.

If you’re just starting out and can’t count the number of tools you’re learning on one hand, you’re trying to use too many.

“I want to build things”

If you want to build things, such as web applications or mobile applications, learn software engineering before (or at least alongside) machine learning.

Too many models live and die within Jupyter Notebooks.


Because machine learning is an infrastructure problem (infrastructure means all the things which go around your model so others can use it, the hot new term you’ll want to lookup is MLOps).

And deployment, as in getting your models into the hands of others, is hard.

But that’s exactly why I should’ve spent more time there.

If I was starting again today, I’d find a way to deploy every semi-decent model I build (with exceptions for the dozens of experiments leading to the one worth sharing).


Don’t be afraid to make something simple. A basic front-end which someone can interact with is far more interesting than a notebook in a GitHub repo.

No really, how?

Train a model, build a front-end application around it with Streamlit, get the application working locally (on your computer), once it’s working wrap the application with Docker, then deploy the Docker container to Heroku or another cloud provider.

Sure, we’re going against the rule here of using a few too many tools, but pulling this off a few times will get you thinking about what it’s like to get your machine learning model into people’s hands.

Deploying your models will raise the questions you don’t get to ask when your machine learning model lives its life in a Jupyter Notebook, like:

  • How long does inference take (the time for your model to make a prediction)?
  • How do people interact with it (maybe the data they send to your image classifier is different to your test set, data in the real world changes often)?
  • Would someone actually use this?

“I want to do research”

Building things becomes research. You’ll want your models to work faster, better. To achieve this, you’ll need to research alternative ways of doing things. You’ll find yourself reading research papers, replicating them and improving upon them.

I’m often asked, “how much math should I know before I start machine learning?”

To which I usually reply, “how much walking should I know before I go for a run?”

I don’t really say this, I’m usually nicer and say something like, “can you solve the problem you’re currently working on?”, if so, you know enough, if not, learn more.

As a side note, I’ve just ordered the Mathematics for Machine Learning book. I’m going to be spending the next month or two reading it cover to cover. Having read the free text online it’s more than enough to cover the fundamentals.

Skill before certificates

I’ve got online course certificates coming out of my ass.

I got caught thinking more certificates equals more skills.

I’d burn through lectures on 1.75x speed just to get to the end, pass the automated exam and share my progress online.

I optimized for completing courses instead of creating skills. Because watching someone else explain it was easier than learning how to do it myself.


Here’s the thing. Everything I learned for an exam, I’ve forgotten. Everything I learned through experimenting, I remember.

Now, this isn’t to say online certifications and courses aren’t worth your time. Courses help to build foundational skills. But working on your own projects helps to build specific knowledge (knowledge which can’t be taught).

  • Instead of stacking certificates, stack skills (and prove your skill through sharing your work, more on this later).
  • Instead of doing more courses, repeat the ones you’ve already done.
  • Instead of looking for the newest tools, improve your use of the ones which have been around the longest.
  • Instead of looking for more resources, reread the best books on your shelf.

Learning (anything) isn’t linear, better to read the same book twice (as long as it’s got some substance) than to add more to the pile.

I often tell my students, despite the immense proudness I feel when I see someone share a graduation certificate, I’d prefer them not to finish my course and instead take the parts they need and use them for their own work.

Before you add something, ask yourself, “have I sucked the juice out of what I’ve already covered?”

How I’d start again

First of all, more important than any resource is to get rid of the “I can’t learn it” mentality. That’s bullsh*t. You’ve got the internet. You can learn anything.

The internet has given rise to a new kind of hunter-gatherer. And if you decide to take on the challenge you can gather resources to create your own path.

The following path isn’t set either. It’s designed to be a compass rather than a map. And guess what? It’s all accessible online.

Let’s lay some foundations.

An excerpt of the 2020 Machine Learning Roadmap. Note: This curriculum is heavily focused on code-first, Python code in particular. It also neglects mobile or embedded device development. However, it contains more than enough resources to get an outstanding grounding in the field.

The beginner path (6–12+ months)

If I was starting again I’d learn far more software engineering practices intertwined with machine learning.

My main goal would be to build more things people could interact with.

The machine learning specific parts would be:

  • Machine learning concepts — understand what kind of problems machine learning can and should be used for. Elements of AI is great for this.
  • Python — the language itself, along with the machine learning specific frameworks, NumPy, pandas, matplotlib, Scikit-Learn. Check out pythonlikeyoumeanit or the official documentation for each of these.
  • Machine learning tools — the main one being Jupyter Notebooks.

[Note: The Zero to Mastery Machine Learning course (the course I teach) teaches the above 3 topics.]

Alongside these, I’d go through:

There’s a lot here. So to consolidate my knowledge I’d build 1–2 milestone projects using Streamlit or the web development skills I’d learned from freeCodeCamp. And of course, these would be shared on GitHub.

The advanced path (6–12+ months/ongoing)

Once I’d gotten some foundational machine learning skills, I’d build upon them with the following.

  • All of fast.ai’s curriculum(s) — practical use cases of many deep learning and machine learning techniques. Watching one fast.ai lecture turned into a solution we built for a client.
  • Any of deeplearning.ai’s curriculum(s) — choose the one which sparks your interest the most. Compliments fast.ai’s practical approach with theory.
  • Full-stack deep learning curriculum — this is where you’re going to tie together the machine learning knowledge you’ve got with the web development knowledge you’ve been learning.
  • Replicate a research paper (or multiple).
  • Hands-on Machine Learning Book with Scikit-Learn and TensorFlow Part 2 — TensorFlow focused but the concepts bridge to many different applications.

Again, after going through these, I’d consolidate my knowledge by building a project people can interact with.

An example would be a web application powered by a machine learning model.

Example curriculums

Two of the biggest things you pay for with a college degree is accountability and structure.

Good news is, you can get both of these yourself.

I created my own AI Masters Degree as a form of accountability and structure. You can do something similar.

In fact, if I was starting again, I’d follow something more similar to Jason Benn’s How I learned web development, software engineering & ML. It’s similar to mine but includes more software engineering practices.

If you can find a (small) community to learn with others, that’s a big bonus. I’m still not quite sure how to do this.

A billion dollar idea is to develop a platform where people can create their own self-driven curriculums and interact with others who are on similar paths. I say self-driven here because all knowledge is largely self-taught. Rather than hand-feed knowledge, the role of an instructor is instead more to excite, guide and challenge.

Share your work

Learning and reading is inhaling. Building and creating is exhaling. Don’t hold your breath.

Balance your consumption of materials with creations of your own.

For example, you might spend 6 weeks learning, then 6 weeks putting your knowledge together in a form of shared work.

Your shared work is your new resume.


GitHub and your own blog. Use the other platforms when needed.
For machine learning projects, a runnable Colab notebook is your minimum requirement.

What’s missing?

Everything here is biased by my own experience of graduating from a nutrition degree, spending 9-months studying machine learning in my bedroom whilst driving Uber on the weekends to pay for courses, getting a machine learning job, leaving the job and building a machine learning course.

I have no experience of going to a coding bootcamp or university to learn technological skills so therefore can’t compare the differences.

Though, since we’re talking about code and math, it either works or it doesn’t. Knowing this, the contents of the materials you choose doesn’t matter as much as how you learn it.

This article was written by Daniel Bourke and was originally published on his website. You can read it here.

Published October 16, 2020 — 15:00 UTC


Continue Reading
Click to comment

Leave a Reply

Your email address will not be published. Required fields are marked *


Hide your Kindle SHAME with this case that looks like a REAL book



I love ereaders, but regular books are better.

I’m not saying Kindles and the like aren’t worth your time, far from it. They’re amazing. Take, for example, my Kindle Paperwhite. It hold thousands of books, so I’m never at a loss for something to read. The backlight means I can devour novels in low-light. It’s easy to hold, so I can get comfortable everywhere. What’s not to like?

Well, I’ll tell you: it doesn’t make me look smart.

Books, and let’s be honest here, are a PR tool. Like… have you ever actually read a book? Me neither. Instead, I spend around 12 hours every day on public transport holding a copy of Gravity’s Rainbow so people really know just how smarter and more interesting and cleverer I am than them.

You can’t do that with a Kindle.

Whenever anyone looks at you using an ereader their first though will be “NERD.” That’s not what I want. Not at all. I need to be seen as a swashbuckling Lord Byron, not a basement-dwelling incel like Elon Musk.

Here we reach the crux of the issue: there are times I need to use a Kindle. Like if I’m going on holiday. Or want to read some ridiculous fantasy novel. Plus, Infinite Jest is playing havoc with my Vitamin D deficient wrist bones.

Thankfully there’s a solution, and it’s called the BookBook Kindle Paperwhite case from Twelvesouth. Confuddled? Take a look:

bookbook kindle case front on

You see that? I’ll ask one more time: DO YOU SEE THAT? Not only does it look like an actual book, it looks like an old book. And if there’s one universal truth about people who read old books it’s that they’re supremely sophisticated and are brain geniuses because old books are basically written in a different language and are very, very boring.

The BookBook Kindle case: a good case

That sub-head says it all really.

The BookBook Kindle case is made for the latest version of the Paperwhite and fits it perfectly. Be a bit shit if it didn’t, right?

It offers decent protection, I’ve been able to throw it into my bag and leave it there with little to no damage. Obviously, it makes the Kindle a little heavier and harder to use with one hand, but not by much at all. It’s still easier to hold than a regular book.

Another cool thing: the case automatically wakes and puts your device to sleep when you open and close it.

Also, it only takes a few moments to slip the Kindle Paperwhite out if you do want to read it like that. Quick note though: if you’ll want to be taking the Kindle in and out constantly, maybe look at getting a sleeve rather than a case.

There’s a magnet on the back of the Kindle insert section to keep the device there when you’re reading laying down, but there’s something even cooler hidden in the back: a stand.

Have a look:

bookbook kindle case stand

This is amazing for reading while you’re eating, or in any other situations where you don’t want to use your hands like a goddamn animal. I’m a big fan.

There really aren’t very many negatives. If I’m being picky, the zip curves into the spine a bit meaning it doesn’t always open in a totally smooth way, but I got used to this pretty quickly. Also, I’m not sure I’d trust it holding up if you got it wet (say, in the bath), but you can just take your waterproof Kindle out the case if you plan on doing that.

And the biggest negative? Well, you’re not gonna think much of this Kindle case if you believe hiding an ereader in a fake book is pathetic. But hey, you can’t please everyone!

bookbook kindle case - side angle and zips

The conclusion: yes, the BookBook Kindle case is a Kindle case that looks like a book

If you think that’s cool (me), that’s great. If you don’t (losers), that’s also fine.

Basically, the BookBook Kindle case is a simple idea well executed. Plus, it’ll help everyone know how astute, educated, and downright brainy you are. And that’s what you want, right? For the world to know? At last, for the world to know precisely how fucking great you are? So it can quiver in fear? At your smarts? Make the world grovel at your smart little feet? Grovel, world, mewl and roll in your own dirt for my amusement, for I am Big Brain, look upon my works, ye mighty, and tremble.

Or you may just think it’s neat. The BookBook Kindle case costs $50 and you buy it here.

For more gear, gadget, and hardware news and reviews, follow Plugged on Twitter and Flipboard.

Published October 22, 2020 — 09:23 UTC


Continue Reading


Uber competitor Ola banned in London over safety concerns



This article was originally published by Christopher Carey on Cities Today, the leading news platform on urban mobility and innovation, reaching an international audience of city leaders. For the latest updates follow Cities Today on Twitter, Facebook, LinkedIn, Instagram, and YouTube, or sign up for Cities Today News.

Transport For London (TfL) has refused to grant Indian ride-hailer Ola a new private hire vehicle (PHV) operator’s license for the UK capital due to public safety concerns.

The transit operator said the firm identified a number of failings – including that more than 1,000 trips were made by unlicensed drivers – and then delayed notifying TfL once it became aware.

Helen Chapman, TfL’s Director of Licensing, Regulation and Charging, said: “Through our investigations we discovered that flaws in Ola’s operating model have led to the use of unlicensed drivers and vehicles in more than 1,000 passenger trips, which may have put passenger safety at risk.

“If they do appeal, Ola can continue to operate and drivers can continue to undertake bookings on behalf of Ola. We will closely scrutinize the company to ensure passengers safety is not compromised.”

The ride-hailing firm, which launched in the capital in February, has already indicated it will appeal within the 21-day limit and therefore can operate in the meantime, according to the appeal rules.

Ola claims to have 25,000 drivers registered on its platform in London and serves dozens of other UK cities, including Liverpool, Birmingham, Cardiff, and Coventry.


In a statement, Marc Rozendal, Ola’s UK Managing Director, said: “At Ola, our core principle is to work closely, collaboratively and transparently with regulators such as TfL. We have been working with TfL during the review period and have sought to provide assurances and address the issues raised in an open and transparent manner.

“Ola will take the opportunity to appeal this decision and in doing so, our riders and drivers can rest assured that we will continue to operate as normal, providing safe and reliable mobility for London.”

The firm formed a partnership with ride-hailer Gett in August, as an extra capacity provider for its services.

Ola’s license refusal comes just one week after rival Uber won an appeal against having its license to operate withdrawn in London. A judge found that despite “historical failings”, the ride-hailer is now “fit and proper” to hold a PHVoperator’s license.

London’s taxi/PHV market has seen increased competition from several ride-hailing start-ups in recent years, with Bolt, Free-Now, Gett, ViaVan and Kapten competing alongside the city’s iconic black cabs and established private hire taxi and courier firm Addison Lee.

SHIFT is brought to you by Polestar. It’s time to accelerate the shift to sustainable mobility. That is why Polestar combines electric driving with cutting-edge design and thrilling performance. Find out how.

Published October 22, 2020 — 09:00 UTC


Continue Reading


Here’s why Inbox Zero will never work for you



For years, I’ve marveled at co-workers’ inboxes. Some, like me, make a conscious effort to limit the number of unread emails (even if we don’t always reply to everyone) while others are perfectly happy to let thousands of messages pile up — and simply ignore them.

Personally, I can’t handle the thought of having more than 20 unread messages in my inbox. If my email count surpasses this magic number, I need to take immediate action or else deal with mounting anxiety that prevents me from doing my actual job or enjoying a vacation.

Having a relatively clear inbox is my online equivalent to tidying my desk. Ah, peace.

[Read: What audience intelligence data tells us about the 2020 US presidential election]

Inbox Zero is not always the answer

I’ve subscribed to the Inbox Zero email managing technique for years — or so I thought.

Developed by productivity expert Merlin Mann, Inbox Zero is a rigorous approach to email management that seeks to allow people to clear their inbox.

It’s important to note that Zero doesn’t refer to the number of messages that should be left in an inbox, it’s in fact the “amount of time an employee’s brain is in his or her box.”

[Read: 5 easy steps to achieve Inbox Zero]

Mann argues that time and attention are limited and when an inbox is conflated with a “to-do” list, productivity can suffer so he’s identified five possible actions to take for each message: delete, delegate, respond, defer, and do.

I’m going to level with you: I do a lot of deleting, delegating, and deferring — mostly because I get MANY irrelevant emails. But I mainly do it for the small endorphin rush that comes with seeing the number of unread emails go down to ‘0’, rather than actually detaching my brain from my inbox.

Now it’s clear I wasn’t following the true teaching of Inbox Zero, but why is it that we gravitate towards the simple interpretation of ‘zero unreads’?

Understanding the psychology of email

I’ll never fully understand how people can let their emails pile up but — honestly, I break out in sweat when I see my husband’s 50,000 unread emails — but why is it such an issue for people like me?

“When email engines give us unread notifications, they are using a behavioral technique called the Zeigarnik principle,” Beatrice Andrew, a behavioral science consultant, tells me.

This principle is based on the notion that humans like to complete incomplete things. Hello, this is me in one sentence!

“We like to get to the end of something or complete a whole task. We get a bit of a kick out of getting to the end of something,” Andrew adds.

So, when I feel that slither of anxiety, it’s possible that my brain is unconsciously telling me that I want to untick the notifications or read the unread messages — and me being me, well I can’t let that go.

Andrew says it’s crucial to remember that inboxes are a digital tool we use to assist them. “Rather than being managed by the inbox, we need to find ways of making it work for us in the most effective way,” she notes.

The first thing we need to remember is that we all have different priorities and we need to give people the space to use email that works for them.

Some people might need a nudge if they don’t reply to an email in a timely manner — and that should be OK. Some roles require you to be completely responsive and clear emails immediately, but that might not be the case across everyone in a business.

Overall, it’s important to remember that people with different personalities deal with emails (and other things) very differently. “Humans all think in different ways at different points in time and place,” says Andrew.

For example:

  • A detailed thinker will need a neat and tidy, administered inbox.
  • A process-driven thinker will administer their inbox manually, on an email by email, and case by case basis.
  • An abstract visionary thinker will be happy to ignore their inbox and will be unaltered by the mess. (Yikes!).

Managing your inbox — and not the other way round

We create habits when a specific behavior becomes automatic or habitual thanks to regular repetition.

“Email is a habit for many people,” Andrew says, adding “Whether email habits are constructive or destructive in the workplace depends on your responsibilities and priorities.”

[Read: How to achieve Inbox Zero with these Gmail search queries]

What’s really missing is the need to teach appropriate skills that work for different styles and that help you to manage your inbox without getting obsessed.

Andrew recommends you:

  • Set times where you check your emails
  • Turn off notifications
  • Set an ‘Out Of Office’ if you are not able to answer to prevent any ’email anxiety’ forming.
  • Make people aware you might be slow to reply with an automatic responder can also help put your mind at ease and manage expectations. My editor, Már, swears by this.

We also need to help each other by following basic email etiquette, writing clearly, and stating when a task or comment is directed at a specific person in an email always helps to direct attention.

“See email as your tool, not something that controls you. Use it to your advantage and set clear boundaries around how you use it that works for you. If you do not see value in your email, consider what you could change that could make it a better experience for you,” Andrew concludes.

As much as they’re annoying, emails are unlikely to go away altogether. So, it’s really about how you approach your inbox that matters.

If you’re using Inbox Zero and it’s not worked so far — or if you’ve been practicing the ‘wrong’ Inbox Zero — it might be time to give up and reconsider. Regardless of what method you use, or don’t use, don’t let it dictate your life. Just remember, an inbox is supposed to work for you not the other way round.

Anyway, I currently have 22 unread emails sitting in my inbox. I’ve got to go. Good luck!

Published October 22, 2020 — 09:08 UTC


Continue Reading