Are you doing online courses in the hopes of learning to code -> getting a job in ML?

Thank you @radek for the very interesting question raised. I was just like you, searching actively for a job in ML/DL.

You don’t have to follow the default linkedin way of putting the current position as headline. In fact, Udacity once emphasized on writing the headline by yourself would be much better. The instructor was a former employee in LinkedIn and worked as HR. Look at my linkedin, the headline is completely customized.

For the ML job, I was just like you… My dream was getting a job in datascience/ML. However, after reading the experience of several others who worked as datascientist or ML engineers, I realized that at most companies we are asking for troubles for such kind of job. Of course most blog posts will state how ML jobs are awesome, and everywhere it is praised, but keep in mind, there is a strong bias to post only positive experiences (either revealing an honest true experience or perhaps even making it up), since the incentive is always to do so… That’s why we need to keep looking for the very little number of articles that speaks honestly with the other contradictory point of view. Of course, I do not suggest to believe in either side, but you should read both point of views and make an educated guess (a.k.a. simulation of your future life) on what will be your life as a ML engineer in most companies.

I have read few articles which made me thinking that ML engineering role perhaps is not a happy job usually, except in a few good companies. Maybe being an Android dev (which I like too) would be a better choice, or taking a postdoc position in ML which has much less drawbacks of the ML jobs. I will pick for you the most impactful articles that changed my mind, and let me quote some of their paragraphs.

For anybody who is serious about getting ML/DL job, these articles should be read carefully. You will not find many such posts. The following are very popular posts which is suggesting how the problem is pervasive and they are not just a peculiar opinion.

https://towardsdatascience.com/why-so-many-data-scientists-are-leaving-their-jobs-a1f0329d7ea4

Quotes:

1. Expectation does not match reality

…But the truth is that data scientists typically “spend 1–2 hours a week looking for a new job” as stated in* this article by the Financial Times *. Furthermore, the article also states that “Machine learning specialists topped its list of developers who said they were looking for a new job, at 14.3 per cent. Data scientists were a close second, at 13.2 per cent.” These data were collected by Stack Overflow in their survey based on 64,000 developers.

…many companies hire data scientists without a suitable infrastructure in place to start getting value out of AI. This contributes to the cold start problem in AI . Couple this with the fact that these companies fail to hire senior/experienced data practitioners before hiring juniors, you’ve now got a recipe for a disillusioned and unhappy relationship for both parties. The data scientist likely came in to write smart machine learning algorithms to drive insight but can’t do this because their first job is to sort out the data infrastructure and/or create analytic reports. In contrast, the company only wanted a chart that they could present in their board meeting each day. The company then get frustrated because they don’t see value being driven quickly enough and all of this leads to the data scientist being unhappy in their role.*

Another reason that data scientists are disillusioned is a similar reason to why I was disillusioned with academia : I believed that I would be able to make a huge impact on people everywhere, not just within the company. In reality, if the company’s core business is not machine learning (my previous employer is a media publishing company), it’s likely that the data science that you do is only going to provide small incremental gains

2. Politics
If you seriously think that knowing lots of machine learning algorithms will make you the most valuable data scientist then go back to my first point above: **expectation does not match reality.

The truth is the people in the business with the most clout need to have a good perception of you. That may mean that you have to constantly do ad hoc work such as getting numbers from a database to give to the right people at the right time, doing simple projects just so that the right people have the right perception of you. I had to do this a lot in my previous place. As frustrating as it can feel, it was a necessary part of the job.

3) You’re the go to person about anything data

It isn’t just non-technical executives that make too many assumptions about your skills. Other colleagues in technology assume you know everything data related. You know your way around* Spark, Hadoop, Hive, Pig, SQL, Neo4J, MySQL, Python, R, Scala, Tensorflow, A/B Testing, NLP, anything machine learning (and anything else data related that you can think of — BTW if you see a job specification with all of these written on it, stay well clear. It reeks of a job spec from a company that has no idea what their data strategy is and they’ll hire anyone because they think that hiring any data person will fix all of their data problems).

But it doesn’t stop there. Because you know all of this and you* ***obviously have access to ALL of the data,you are expected to have the answers to ALL of the questions by……. well, it should’ve landed in the relevant person’s inbox 5 minutes ago.

Trying to tell everyone what you actually know and have control of can be hard. Not because anyone will actually think any less of you, but because as a junior data scientist with little industry experience you’ll worry that people will think less of you. This can be quite a difficult situation.

Conclusion
So to be an effective data scientist in industry it doesn’t suffice just to do well in Kaggle competitions and complete some online courses. It (un)fortunately (depending on which way you look at it) involves understanding how hierarchies and politics works in business. Finding a company that is aligned with your critical path should be a key goal when searching for a data science job that will satisfy your needs. However, you may still need to readjust your expectations of what to expect from a data science role.

End of Quotes

Also I learned that the most important skill for a ML engineer role is computer science and algorithms. In fact Algorithms and general coding skills are the most tested skills in ML/DL job interviews, even in Google and other big names in the field. And now I think they have the right to do so:
https://towardsdatascience.com/lessons-from-a-year-in-the-data-science-trenches-f06efa6355fd

Quotes
with the lessons below, you’ll avoid many of the errors I made learning to operate on the day-to-day data science frontlines.

  1. Production data science is mostly computer science
  2. Data science is still highly subjective
  3. People and communication skills are crucial

…the hardest parts of data science are developing everything that occurs before and after modeling. Before we have: loading data from a database, feature engineering, data validation, and data processing pipelines (assuming our job starts after data is ingested).

Although I managed to make the mechanical engineering → data scientist transition, in retrospect, it would have been more productive to do engineering → computer science → data science. The second approach would have meant I didn’t have to unlearn the poor coding practices I picked up in data science classes. In other words, I think it’s easier to add data science on top of a solid computer science background than to learn data science first and then take up computer science (but both routes are possible).

Computer science involves an entirely different way of systematic thinking, methodically planning before coding, writing code slowly, and testing code once it’s written. Clean code is in stark contrast to the often free-wheeling nature of data science with dozens of half-written notebooks (we’ve all had notebooks called* Untitled12.ipynb ) and an emphasis on getting immediate results rather than writing rather error-free code that can be re-used.

End of Quotes

Here is a Machine Learning Engineer describing his honest take on his job:
How does a typical day for someone working in Machine Learning look like?

  • Wake up.
  • Stumble into the office.
  • Mess around with some completely useless proof-of-concept in Jupyter Notebook that will never see the light of day in production.
  • Go for a good, long lunch.
  • Hang around the coffee machine and discuss the strengths and weaknesses of deep learning frameworks you’ve never used beyond tutorials.
  • Participate in random strategy meeting.
  • Continue on the notebook.
  • Try to fix your Python environment, which is in dependency hell after you installed some package that you’ll never use.
  • Give up and surf job boards instead.
  • Go home.

My conclusions
I still think working as a Deep Learning engineer is the most terrific job that I can dream of, providing the company is data driven and understands what is such role is. But it seems most companies will not give you the appropriate environment and work expectations, that are needed to make the job looking attractive to me. However, there are certainly big companies that are mainly datascience oriented, they understand all the pitfalls above, like Google, Microsoft, Uber …etc. And I would definitely happy to work their, however jobs at those companies are not easy to get… My takeaway is perhaps it is better to work in an Android dev job which I love too, and keeping myself up to date (as a hobby) in the field of ML/DL… Maybe someday I can get a job in an awesome company that understands what is ML after all… I will keep try but selectively… Of course, I am open for a postdoc in ML/DL too, since I think there are more flexibility as a postdoc and most of the problems above are not there (I am aware that it has other issues which are in academia as a general, which I think they are easier to manage than a job in ML in a company that is not data driven).

Exactly, this is what I think. First, because the job market is way larger for mobile app or web app dev jobs. Second because this will give you the necessary experience in computer science as general that cannot be transferred (unfortunately) through MOOCS which I think it has its own term:

Tacit Knowledge

Peer review of your code and getting constant and daily feedback from other great developers in a company are something, I think, will never be replaced by anything else. That’s why it seems almost every great developer started as an employee in some point in her/his life. Even the great Jeremy worked in McKinsey for 8 years, which definitely gave him experience for skills that maybe cannot be acquired by self learning. Of course, I cannot speak about Jeremy’s experience, but it seems this is always the job history of all great developers that I know.

Apologies for the long post, but I think it is very important to speak honestly on such an important topic, especially when there are very little number of people revealing their different point of view publicly than what you find usually, for some reason or another.

16 Likes