DEV Community

Haseeb Mohammed
Haseeb Mohammed

Posted on

Be ok with failure. Software Engineer, aka 'Junior Machine Learning Engineer'

I firmly believe the non-purist side of Machine Learning will be an additional skill of the Software Engineer in the future, if not already. We may not be able to interpret all the same math as a statistician can do (yet), but at minimum we'll be able to build and use tools that apply that math. The same way job descriptions list out all languages and frameworks preferred for a position, it will also include a list of ML algorithms.

The same way you've learned other programming languages is the same way you should apply yourself to Machine Learning. Learn by doing. The first thing each language tutorial has you start is 'Hello World'. After that there is an entire website dedicated to learning how to build a TODO application in any number of languages and frameworks. (http://todomvc.com/). This is the basic building blocks of any web application, CRUD (create, read, update, delete).

Start with the 'Hello World' of ML. Predict housing prices, predict stock prices, classify animals by feature.

Once you have the bread and butter of ML algorithms in your skillset you can start finding ways to apply it to your applications. You'll start thinking about the data you need to record to 'fund' your experiments.

And overall you need to be OK with failure. Un-similar to software engineering where almost all of our code is not thrown away, I find myself throwing away failed experiments all the time. I have spent a lot of my time exploring what algorithms work and do not work, what kinds of data I should be using, how I should extract more data from what I currently have.

All this in hopes of getting more skilled at how to solve ML problems.

Top comments (0)