Why and how I started learning Python and Machine Learning pt.1

why

Python and ML together? PHP web development is my current day job, but I have been looking into expanding my horizons for some time now. I would not dare to say that I have done everything there is to do in Web/PHP, quite the opposite, but having some extra toys to play with is always nice.

I also like the idea of different context - different technologies attract different people, create different ecosystems and solve different problems. These problems are what I am looking for - I am not interested in changing technology I work with just for the sake of the technology - I want the new challenges that come with it.

But again, why Python AND ML? I have always been inclined towards working with data, processing information and giving it some meaning and since Machine Learning, Deep learning, AI etc. are hot topics nowadays, it seemed natural for me to get involved more. Additionally, high demand for these technologies translates into high demand for skilled people, so it’s a practical, future-proof move to make.

I considered other alternatives for learning, like modern JS frameworks, server-side JS, mobile applications and other, but all these seemed too close to what I was doing already.

As for Python - it’s versatile, has a great community and wide selection of tools in its ecosystem - I am not a hardcore Python fan (yet?), but this was an obvious decision for me.

how

Python - I have been using Python for various small tasks for quite long, but I only started looking into it properly last year (2016). Once I decided to get some more substantial experience with it, I tried to find as much opportunities to use it as possible. These include:

  • Using it for deployment automation at work (Fabric)
  • Having some fun solving programming puzzles at Codewars
  • Using it at local code club that I run
  • Attending hackathon(s)
  • Investing some time and money into a bit more formalised and structured education, i.e. taking online courses

Machine Learning is a wide topic to learn, there are many different routes and approaches one can take. I tried to create my own path that would suit my life practically, take my background and previous education into account but also suit my learning style. I am a type of learner who learns by doing, I don’t necessarily have to understand all the underlying concepts first, too much focus on theory often reduces my interest in a topic - some people call it bottom-up vs. top-down approach.

I started with the famous Machine Learning Coursera course taught by the ever famous Andrew Ng, but that was not the best first contact with ML for me - I wanted to see what is ML capable of first, not solve matrixes! I paused this course mid-way, and switched to Udemy for a very practical course (Machine Learning A-Z™: Hands-On Python & R In Data Science by Kirill Eremenko), that in return lacked a bit of theory in some parts, but provided good practical overview. The combination of these two courses seemed like a good theory + practice introduction to ML combo to me, a good foundation for further learning.

Next time I will go into detail of what online resources I use to learn both Python and ML continually, to gradually gain required education and experience in order to become professionally productive.

What is your story? Do you have some good resources to recommend to fellow learners?