My master class in Machine Learning & Deep Learning with Python

0

Image result for Machine learning"

Hi,

One of my biggest goals in 2020 is to dive deep in Python and machine learning; two things I haven’t really explored in the time I’ve been in tech. That’s about to change.

Even though I have experience with other frameworks and programming languages, I do not consider my self as an “experienced Python developer”. I do know how to

  • Solve problems
  • Break down complex topics into simpler components
  • Put in place an architecture that emulates pretty well the outside world
  • Implement a “quick and dirty” approach and keep on improving it

For this, I’m going to start learning as if I’m a true beginner and not take anything from granted. I’ve already established a list of resources to go through in 2020. I’m sure there could be better resources out there, but I feel uncomfortable enough with the quantity of information I’ve selected to digest to know that it’ll probably be enough for the year. As I grow into Python, I will add extra resources to my “master class” that I feel are complementary to the education if anyone wants to follow along.

Why am I fascinated by machine learning?

Machine learning has taken the world like a wildfire. In the past few years, we’ve moved from things that were in the world of sci-fi such as self-driving cars, Alexa or trading stocks. It’s a domain that moves really fast and I feel I’m already super late to the party. Most of all, I see it’s potential to do good in the world when combined with other technologies and an application with the sole intent of making the world a better place.

I’m someone who likes to understand a technical topic deeply and instead of having someone tell me what’s going on in the realms of artificial intelligence, I’d rather take a look for myself and make my own opinion of it. So, that’s why I decided to get a jump on it.

My Goals

  1. Be knowledgeable enough to use AI as a tool to bring value in different communities. I like to build cool stuff and I hope that some of that stuff can evolve into something that is useful to others. That’s why technology fascinates me; it is its power to have a gigantic and meaningful impact in the life of people and I want to find ways to help.
  2. I love learning and I want to inspire others to start their own path in ML. In the world of software development, we can’t evolve if we don’t enjoy acquiring new skills. Technology moves at an incredible pace and we have to be careful in order to react to its changes.

Syllabus

The following syllabus may not be the one out there, but I feel that it’s a really good first step towards enlightenment.  If you have any advice for me, including courses I should look at or skills I should work on, please feel free to let me know in the comments or reach me on Twitter.

Legend

  • Strikethrough = course / book  completed
  • Royal blue = course / book partially in progress
  • Non-edited links = Not started

Fundamental Skills

Professional Skills

Improving Software Engineering Skills

Data Structures & Algorithms

Problem Solving

  • Solving problems on Codewars [Free]
    • Moving from 8 kyu (Beginner – white belt level) to 2 kyu (Proficient – purple belt level)
    • Codewars Kata Ranking System
      • White belt: At this level, the kata is only challenging for users new to programming
        • Basic variable assignments
        • Basic functional or object-oriented concepts
      • Yellow belt: At this level, the kata will start to include more advanced algorithmic challenges and more complex language features
        • Complex OOP/Functional concepts
        • Advanced regular expression usage
      • Blue belt: At this level, the kata begins to take some serious thought to complete.
        • Advanced concepts such as concurrency, parallelism, meta programming and cryptography
        • Basic AI/machine learning algorithms
      • Purple belt: At this level, kata requires a mature understanding of complex programming concepts
        • Complex AI/machine learning algorithms
        • Reverse engineering techniques

Books & Resources

As you can see, most of the syllabus is about consuming free resources. In this day and age, we can learn about anything we want if we just put some time aside and find great resources that can bring us to the next level. I’m not going to lie, for those who want to follow along with a similar “master class”, this is going to heavy. In college, I would have skipped a lot of material that I didn’t feel would help land that A. That’s not a great approach towards learning.

Now that I want to learn only for myself and not for a grade, my point of view has drastically change and for the better. Now that my syllabus has been put in place, all that I need is to start my journey starting tomorrow morning @ 5 am.

Thanks for reading if you kept reading thus far 🙂

Kevin

 

 

How can I be successful in 2020?

0

My definition of success for the start of the decade is a complex answer that deserves my utmost attention. Why is it a complex topic? It’s composed of many layers that my life revolves around.

Stepping out of the comfort zone

First, I see that change is something that I’m comfortable staying away from and that’s exactly what I’m going to work on in 2020. Getting comfortable with change.

New relationship dynamic

This year, I’m moving in with my girlfriend and this is going to change the dynamic of our relationship. I think as she says, it could be hard, but you know, that’s what relationships are all about. It’s about commitment and hard work and I’m all ready for that. We’re ready. We got this.

Consistent Fitness Habit

Another thing concerning change is my physical training. It changes my life as I have a “less” time to do dumb shit. I mean, I stopped going to the gym because I hurt myself somehow and even when I’m back to being healthy, I didn’t go back and I hate the fact that I’m not going. The problem is, I’m not changing my situation. I get comfortable with the lazy lifestyle and that’s wrong. Wrong because it isn’t what I want to do and I know I can be active regularly.

My vision of success for 2020 in fitness is to maintain a regular schedule where I not only go train 4 times a week but I also regularly replace taking the bus with walking. Getting in more steps in my day will contribute to making my health better.

The issue with walking is that it takes more time than simply taking the bus and that’s ok. There’s a simple way to manage this: waking up earlier. Yes, that’s another thing that will contribute to my vision of success in the year. Waking up bright and early, with the thirst for 🩸.

Personal Growth

We’re waking up to contribute to a specific goal. That’s a fact. For me, this year it’s all about gaining the growth mentality.

Waking up earlier in my day gives me more control over my life before I relinquish some of my control to my employer during the day. I know how I want to grow in my tech skills, I’ve established a plan for the year already.

  • Become a Machine Learning Developer
  • Breakdown complex problems and evaluating the trade-offs of the components to get the “best” overall system
  • Getting a more in-depth understanding of algorithms and data structures
  • Develop a better to craft beautiful user interfaces

Diving in the AI hype

Artificial Intelligence. This has taken the past decade like a wildfire. It used to be science fiction and now it has truly impacted so many spheres of our lives.

I’ve been fascinated by it for years but never took the leap of faith. I did a small project in ML as a capstone project during my undergrad but it’s been a while. This year, I’m all in. Out of every tech skills that I want to grow, ML is the one I’m doubling down on.

My vision of success here is to complete the two certifications I’ve found on Coursera. The two are given by Andrew Ng and they have tremendous reviews.

But just learning is enough. I want to apply the concepts I’m getting to specific scenarios so I can understand their meaning. To that end, I’ll go over old competitions on Kaggle so I can also use the notebooks and scripts that other participants have shared in the past.

All those are just educational. I want to do cool stuff with ML. To that end, I’m going to combine a passion of mine with AI; Super Smash Bros Melee. I have seen some people who built a smart agent to play the game inside an emulator. I want to take my crack at it while I’m learning more about ML.

Designing large-scale systems

I’ve got expertise building little projects from the ground up, but large-scaled projects, I do not. And that’s totally fine. This is what brought me to level up my skills to design intricate systems.

Proper design choices and evaluation of trade-offs are critical to helping big companies such as Netflix or Facebook scale-up. And that’s something I want to get more experience in. With that in mind, I’ve found a few resources online that should prove to be beneficial:

Embracing data structures

In any field, in order to be truly an expert, you need to have a solid grasp of the fundamentals. To that end, I’ve decided to take on a certificate on data structures & algorithms. If you’re interested to do it also, here’s a link to the course.

More of a swiss army knife for full-stack development

Something that I appreciate is UI but my skills aren’t where I’d want them to be. I’ve purchased a book on how you can drastically improve a UI by making a LOT of small adjustments. I’m halfway into the book and it’s composed of so many good tips. With the book, I’ll combine FrontEndMasters and porting my blog from WordPress to my own server. I feel that would be enough for me.

Improvement schedule

I’ve concluded that waking up at 5 am and spending 1 block of 120 – 150 minutes in the morning on a weekday and 2 blocks of 135 minutes a day during the weekend would get me closer to my goals. I get time to get better at my craft. I get the best hours of my day for myself. I have time in the morning to drag my ass to the gym for 45 minutes and get a shower and then work.

Failure is the best teacher

In the end, the purpose is to grow as a developer. I know I’m capable and I can see the potential. Like many, I know exactly what to do, but fail to put in the time and the consistency because I’m afraid of failure.

The thing is, failure is the best teacher we could ever hope to have. Without it, we can’t understand the sacrifices that must be made for success. When we finally succeed, we know exactly how we got there and what it means to remain successful.

Once we achieve our goals, it’s not the time to become lazy and stop doing things; it’s actually the time where you got to put in more work to secure your success and make sure you stay that way.

I’ve experimented with failure in the past and it has taught me a lot. I know now, for instance, how to properly market my skills for work and which skills to develop for work. Knowing this is super powerful.

Another thing I’ve learned is how to select my work environment. Finding a place where you should be is hard and complicated and also, there’s a luck factor involved. I have experience with bad work environments.

For instance, I was hired to help with a contract and after 4 business days; they realized that teaching about their architecture would be too complicated and even though I had contributed already to their app, there were a ton of things I didn’t know that were crucial to them. In the end, they realized that they brought me inside their project for too late in the game as they were already late in the delivery and things had to go really fast. For me, those are things to know before you set out looking for new people to hire.

With the failures I’ve experimented in the last decade, I know far more about the tech industry and what kind of people I’m looking for at work. I’ve been at my current workplace for 1.5 years and I’m really happy that I found this place! The people are great. The challenges are awesome!

Building wealth

Let’s talk about finances. Also a part of the vision for the start of the decade. Being able to save over 60% of my net pay per month will a determining factor for when my girlfriend & I purchase our first home together in a few years. The purpose here is to have TONS of savings after the purchase so we don’t need to be in debt or anything of the sort or feel trapped.

One last thing about finances. I want to develop a new stream of cash. The size of it doesn’t matter as long as I put in the energy to develop and care for it. Multiple things could be done but here are my main focuses

  • Creating a software development course on Udemy
  • Writing my first tech book and self publish it

For those who’ve stuck with me until the end, I appreciate you!

Thanks for reading this and have a happy new year!

Kevin