Getting Started with Machine Learning

Machine Learning is a hot topic today, and you’ll find lots of videos and tutorials online. Having worked in this industry for a very long time (back before the term “Data Science” was popular) I have some recommendations on how to get started on this path to really excel and become the top of the field.

General Roadmap

  1. Learn to program. (Python is recommended, obviously.)

  2. Learn how relational databases really work.

  3. Learn everything you can about hardware and networking.

  4. Learn how to work on the internet, AKA, the Cloud.

  5. Learn statistics.

  6. Learn Machine Learning.

Learning to Program

Thankfully, today Python is the gold standard when it comes to computer programming in Machine Learning. That hasn’t always been the case, but it’s a good choice because it is flexible, it is easy to master, and powerful.

Obviously I am making videos teaching you the ins and outs of Python to a level of detail you probably aren’t comfortable with. Trust me, this is going to be important. When all is said and done, it’s going to be maybe 50+ hours of videos to sort through – approximately the amount of lecture time you’d take for a 5 credit semester course in college, without all the bookkeeping and exams and homework.

I can’t tell you how frustrating it was to work with ML experts who weren’t expert at the language they were using. A programming language is like a loaded gun. You can easily hurt yourself and others if you’re not careful. Learning how it works, learning the safety procedures, learning the art and craft of using it properly, all takes a lot of effort and a lot of practice. You can’t skip this step, and you shouldn’t want to.

Learning Relational Databases

When I first found my first database at my first “real” job, I fell in love with the entire concept of databases and particularly relational databases. Here was a system of organizing data efficiently and effortlessly describing the patterns to access it.

The modern relational database (I know PostgreSQL in detail) is quite a different beast than the relational databases of the 1980s. Today’s databases feature all of the latest cutting edge features in terms of transaction isolation and data storage. Every idea for optimizing the structure and retrieval of data is found in these systems.

I lived through the “NoSQL” era, and I am happy to report that it was a fad and now it is disappearing. There have been many fads when it comes to data storage and management. Relational databases always win.

I told people back then that the “NoSQL” movement was really a “No MySQL” movement, a rejection of the way MySQL worked and its idiosyncracies. Those who knew PostgreSQL had no such complaints, and in fact we were more than happy to demonstrate how their “NoSQL” databases were clearly inferior to PostgreSQL.

I will make a series of videos that hopefully do justice to not only what a relational database is theoretically, but how they work in practice. This is an entirely different subject than learning SQL or learning how to get stuff done in a relational database. It is the knowledge you learn there that will help you structure your own programs and code and systems effectively. Because when you can no longer use a database to solve your problem, you’re going to be writing your own.

Learning about Hardware and Networking

If you’re an ML expert and you can’t tell me about the latest NVidia chipsets and drivers, you’re not really an ML expert. If you’re doing ML at the cutting edge, then you are going to have to know all about how data moves through a computer and a network, how the video card really works, and why each feature is important (or not).

I’ve already made a video describing a model of a modern computer, which can be useful for beginners to understand what it is they are doing when they program. However, such a basic understanding is not going to cut it. If you truly understand what is happening at the hardware level, you’re going to see significant improvements to throughput when you are able to employ it.

Now, if you’re happy with living on the fringe of ML, it’s fine to eat the scraps left behind by others who have blazed the trail before you. But I hope you’re not happy living like that, and at some point, you want to play in the big leagues.

Learn the Internet, AKA the Cloud

Inevitably, your data and your compute resources are going to be separated by wires and routers and switches and caches. If you don’t understand the basic networking protocol, how we have built the modern internet on the fundamental concepts of TCP/IP and such, you’re going to have a hard time setting up and configuring your services.

You’re going to need to know what DNS is, what HTTP is, what TLS or SSL is, and all of the above. You should be able to recite different port numbers, name the private network prefixes from memory, and know the different between an A and an AAAA record.

I intend to do a series on internet programming and all the details of what’s really going on behind the scenes, which should greatly help you build up your systems and scale them out across the data center.

Learn Statistics

I have never met a Machine Learning expert who said that they wish they didn’t waste so much time learning statistics and math. I have met many who have cruised past their peers because that’s where they focused their studies.

Statistics seems to show up everywhere. A joke I heard from a friend who earned his PhD in mathematics is that every mathematician who ever went into the professional field has only ever been asked about statistics. In fact, in his graduate studies, his professors recommended he spend his last few months polishing up his stats before heading out the door because they knew that’s all anyone would ask for.

The same was true for me with Physics. We spent a lot of time working with statistics as we did our experiments, and it turns out that’s about all anyone cares about Physics when you head out into the real world.

Statistics really is the king of applied math. It is truly used everywhere. Learn it, master it, and think about the implications of it. You’re going to learn to love it, because you’ll be using it all the time.

Finally, Learn ML

With the above, it should be no problem for you to learn Machine Learning. In fact, if you were learning the above and you had a professional job, you’re going to find when you learn ML that you have been doing it all along, you just didn’t know the name of it.

There are a lot of topics in ML that seems really mysterious, but once you gain a solid foundation, you’ll be able to fill in the blanks.

Conclusion

I wish I had “10 tips to mastering ML in an afternoon” or “Just do this, you can’t fail!” type advice, but such a thing doesn’t exist, not in ML. If you meet someone who claims to be an ML expert but knows nothing of the above, then you have found someone who has snake oil to sell.

I’m told of a famous basketball coach, I don’t recall his name, if you do, comment below. He would take basketball players from around the country, the best of the best of the best, bring them to his team, and on the first day of practice, he would emphasize the importance of mastering the fundamentals of the game. He would start by holding up a basketball and say, “This, gentlemen, is a basketball.” From there, they would learn how to hold it, how to pass it, how to dribble, and they would drill in the most basic maneuvers of the game. And his team would be the best team, or near the top, every year, because they had mastered the fundamentals.

If you are one of those snake oil salesmen, then maybe it’s time for you to learn what a basketball is. It’s never to late to master your craft.