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

#metoo
Long story short.

I am from Belarus, neighbour to you, @radek. Have been working in analytics and media buying for 9 years already. Moved to Australia 3 years ago (btw, love this country).

First 2 years staying in AU, had been doing masters degree (not CS) + 2 jobs + moocs.

Now I have a job in media buying (because I am really good at it and I am married and don’t have any other financial support, basically can relate to 3 point by @suresk) but my heart belongs to ML. Managed to persuade CEO to buy me a DL rig so that I could spend 10% of my time on ML. There are no other data science people in the company so I am treading my own path.
Have been doing moocs and tinkering during work hours, before after work. I suck at that. My goal to suck less with every day. Will I be able to switch career to ML? Idk, but at least I am spending my life chasing a dream and I enjoy that. I also don’t want to do media buying in 5-10-15 years, that’s for sure.

7 Likes

Ive been self learning code and now deep learning for the past 2.5 yrs. My background originally was in the trades as a Master Electrician and eventually a business owner with multiple business management certificates. I few years back I had some health issues which lead to an idea for an health app which I started to pursue with the help of Startup Edmonton ( a community based incubator )… The app idea ultimately was shelved and I pivoted towards using Computer Vision in the Electrical/Mechanical industry. I received a grant to have the prototype built with OpenCv. I found the programmer I hired wasn’t familiar with ML and he/they ended up under delivering on the prototype but did prove doable. So I after some reaching out with no real luck on finding a partner with ML expertise I decided to continue the deep learning on my own (I did find one guy but he has yet to deliver our beta) … Fastai’s approach for me has been a god sent… I have no shortage of ideas and can see so much potential with Deep Learning… Having said that Im very much an Entrepreneur and my experience is that not everyone can see potential outside of their current discipline. Ive come across a lot of coders who are very skilled but lack ideas and need others to collaborate with. For me Im a very curious person and that feeds the creative side of me… If the Startup fails to launch or survive I can see continuing to grow in this field for myself, I’m really enjoying the process and the play aspect…

5 Likes

You are 100% correct. I’ve seen that countless times too. Recruiters don’t understand the difference between these two roles and if I was in their place, I would be confused too as you really have to understand the technicalities to be able to tell the difference. If a recruiter doesn’t know tech at all, he will just throw his ball at a PHD researcher as it’s the safer option, but far from being the adequate one since it’s the type of profile which doesn’t know how to ship products or to deal “with the mess of reality”.

You don’t built a company on research since you cannot know in advance what the outcome will be (that’s the nature of science). You build it by reusing proven techniques which have strong track record. And in order to do that, you need engineers, not researchers.

5 Likes

I don’t think it’s the degree itself which has weight. It’s your last public experience or past employment like you said @radek (which the degree help in a way). For instance if you get a degree in CS then work in a company for 2 years, what will matter to your new recruiter at this point is your work experience instead of your degree. If you transition to say, a carpenter, your past work experience in CS won’t matter at all. The degree is just a matter of publicly showing “I’ve step foot in that area already, I know my shit”. But there are other ways to achieve that (read more below).

I know a person well enough to testify that (hey @jamesrequa :wave: ) since he has no prior background in CS and ML, he’s in his thirties and was able to land on successful freelancing missions in DL.

After 2 years of freelancing with James I find it’s a good way to show your experience, on platforms like Upwork where you can make yourself a reputation and once you have it, degree or not it won’t matter, only your Upwork profile will matter. The good thing is: No one one Upwork will ask for your degree when you start, at least I didn’t see anyone asking for it so far. So to me freelancing platforms are a great way to “show off” your skills and make your first steps.

I’m sure if James and I took the route of going straight to a full time job we would have struggled much more since we had very little to show (Moocs and co doesn’t resonate well to recruiters, only Masters and PhD or public work experience). If today I’m face to face with a recruiter I’ll tell him about my journey with the clients I had when I was freelancing, the challenge I faced and the solution I brought to the table, I don’t think I’ll tell them about my degree even once, that wouldn’t even matter to them.

7 Likes

Amazing replies, thank you so much for sharing your stories, learning so much from you :pray:

The frustration with the status quo, love for learning, appreciation of ML, persistence over very long periods of time, super awesome observations on what actions to take to turn the odds more in one’s favor, all is there.

People on these forums rock :heart:

3 Likes

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.

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:

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

I don’t have hope. I am driven. I opened my first DL video one year ago and I have been doing DL since then.

I started with just one hour of video per week.
Then I took my first paid Kaggle competition.
Then I increased my hours to 8.
Then I proposed my manager that I can add value by doing 10% part time for Data Science team project.
Then I proposed it to be 50%.
Then I proposed to be a full time member.
Then I was fired.
Then I was doing Kaggle competitions full time.
Then I started searching for a Deep Learning project on Upwork.

It could be a long story, but one thing I know for sure - I will be doing Deep Learning no matter what, until I find another most obvious thing.

I wasn’t born with anything and I didn’t have passion to anything. I created my passion, my drive and that’s how I am creating my life and myself.

Problems are just adventures to find solutions.

10 Likes

Haider, your post is truly amazing. Thank you so much for sharing your thoughts! :pray: So many super valuable observations there. Wow

Sounds like you are on a wonderful journey Valeriy :slight_smile: Do keep us posted how it goes

4 Likes

I am not here to tell my story.

I am here to tell that you and everyone are free to choose in what you say to yourself and action on it:
It’s so hard for me to achieve X because life is so unfair or my conditions are so unlucky.

Or

I am relentless in what I am doing. Unfavorable conditions are my advantages.

The energy you spend doing either is the same.

7 Likes

Radek, thank you for raising a topic that I think about daily. I’ll start by saying that I have a PhD and domain expertise that intersects well with ML. However, my PhD is not in computer science or math or physics.

I consume a heavy daily diet of data science & machine learning, but my own goals with this aren’t clear even to myself. I already have a career and these skills are very useful in my current work, so that’s great. But, realistically speaking, I can’t imagine that I would ever be hired by a tech company in this field. I’m too “female”, too “old”, too “non-CS/physics”, too “parent of young child”, etc. All research and most personal anecdotes “from the field” indicate that those highly important “personal connections” you mention are especially out of reach for me. So, I truly need not apply. I’ll pretty much never be the desired demographic, no matter how impressively skilled or credentialed I become.

I still spend time learning and working on projects in data science/ML because I enjoy the intellectual challenge and what I can produce. There is an amazing learning and open source community around this, which I appreciate and enjoy.

I also believe that data science/ML is going to become sufficiently automated that domain experts will utilize it in their work with much greater ease and a much gentler learning curve. (Tableau with NLP, anyone?) Can you imagine software engineers not knowing about the internet? There was a time when that was also new, shiny, and esoteric. I think these are such early days that it seems like a viable stand-alone career, but might turn out to be like “webmaster” or “freelance builder of animated gifs” in the early days of the internet. I’m sure there will always be a place for well-pedigreed AI researchers from top CS programs at top tech companies. I just don’t think the majority of the world will have widespread need for the skillset of building everything “from scratch” since very little in the tech world has played out that way. That said, learning to build from scratch is a great way to make sure that you understand all the underlying steps.

As others have suggested, I think an integrated pathway that blends ML with other expertise may be more accessible for those of who are self-learning or “non-traditional” and might also be more sustainable in the long run. We can all grow with this field as it develops.

I think fast.ai is the #1 resource and community to prepare for wherever your AI aspirations lead.

6 Likes

I’m really sorry to hear that-even though I do recognise the stereotype in the industry.

Luckily, I currently work at one where this is not the case at all-please feel free to reach out anytime-we are expanding our team :slight_smile:

2 Likes

Hi much_learner,

I’m trying to get started on my first kaggle. Would you be willing to mentor me some? I am a strong software developer, and happy to add value where ever you need it.

I can see how doing things that might seem impossible to us or that we fear might be valuable.

At the same time I also believe that going against the market or doing things in an unnecessarily painful or roundabout way is quite silly. Especially if one is responsible for more than only their own survival (for instance, has a family to support).

The tens of thousands, maybe hundredths of thousands of people on youtube who want to pursue a career as a singer, the young kids in Argentina who want to be the next Messi. What are the odds of that? Why subject yourself to situations where odds are not in your favor especially when market pull is so amazing to experience?

I feel there must be more nuance to how we guide our efforts.

Initially I tried to become good at doing ML by recreating the academic curriculum and pursing it on my own. I don’t think what would happen if I were more relentless in my pursuits, if I stayed the course for more than the 1 or 2 years I invested into it. Probably not a whole lot apart from burning out and becoming bitter.

I sometimes hear people claim they achieved this or that because of hustling, long hours, not sleeping enough. Based on everything I know, this is survivor bias speaking, or in other words attributing ones success to characteristics that make them feel good about themselves rather than being honest.

There is no glory in seizing an opportunity when it arises, taking advantage of favorable conditions to do something, playing to one’s strengths or being lucky. It is much better to claim that “I achieved success because I threw myself in the fire and came out victorious, I own it all to me, you can be just like me if you hustle enough”. But I feel the first set of conditions is what most of the success out there can be attributed to and the hustle part is completely unnecessary, is probably harmful.

I just would be very cautious in emphasizing talking oneself into adamantly pushing in any one direction. I have never needed to do so while I can easily trace how a lot of privilege, lots of luck and doing things in a very effective way (something I learned nearly exclusively through fast.ai courses) played immensely into me becoming employable in ML. And pursuing something I genuinely cared about.

To me, all this still remains an open question to a large extent, really appreciate having a chance to listen to your thoughts and learn from your life stories :pray: :slight_smile:

7 Likes

This seems off topic to the discussion we are having. Would appreciate if you could please discuss this somewhere else, a PM or another forum thread would seem more appropriate.

Thank you for your understanding!

I keep finding a better way once I start moving towards something. Without actions my theory about how this works or how to better achieve this proved useless.

There’s no achievement or self growth in being lucky.

1 Like

Dear @Ekami

I am seriously considering upwork after your suggestion. Thank you for sharing your experience with us :pray: Especially when it seems, freelancing comes with almost no problems that I mentioned in my previous rant.

And that led me to check your work history in upwork and @jamesrequa upwork profile. Hats off to both of you :cowboy_hat_face: You’ve made a truly impressive profile out there. Especially to note that James has no programming experience before switching to DL self-learning in Udacity and Fastai. Very inspiring!

Perhaps searching for a DL job is not the way to go. It seems freelancing works better, and I think it is indeed the future. Win-win for both parties. Less expenses and more agility/flexibility for the corporate side and better pay for the freelancer. Of course I can see the drawbacks too (mainly the instability of the income while job is a more secure option). But providing all the issues mentioned in this excellent thread (thanks @radek :heart:), maybe this is something we should at least try, after all.

I am genuinely interested in your experience in the freelance world and appreciate, if you or @jamesrequa or anybody who tried freelancing platforms before to share the experience in the freelancing “non-slavery” :slight_smile: approach to work for a living in DL:

  1. Do you consider your freelancing job income stable enough to make it as a primary source of income for a living?

  2. Did you use fastai or even pytorch in your freelancing project?

  3. When you create a proposal for an upwork client, do you specify the framework type whether it is Pytorch/fastai or Tensorflow?

  4. Upwork and other freelancing platforms are highly competitive. What are the main points that you should emphasize on in your proposal to win the contract?

  5. What are the pros and especially what are the cons of freelancing in upwork or other platforms in general?

  6. Any advice for your siblings in the fastai family, on how to begin and what to avoid or any take away from your past experience in freelancing?

I can see from your upwork profile that you are an Android developer. I have quite a bit of Android dev experience too in the last couple of years (so far 11 apps, 250K downloads, 4.8⋆ and ~3K reviews, which is not quite impressive for freelancing, but planning for a better future moonshot project). So this is something that I have considered seriously as my primary job search after discovering all the issues with ML jobs.

  1. Why you have not considered to emphasize on Android app development too, beside your DL portfolios in upwork? Two professions should be better in upwork jobs hunting, no?

  2. If you had to choose either Android dev or DL and not both, why you had preferred DL over Android dev.? If you would had to take the ordinary job route, would be your choice different?

  3. Did you ever try to take a project for mobile DL model deployment? Since this would be a prefect match to your expertise as Android + DL which I think, not many freelancers possess, and you could charge even more for niche applications like this…

Thanks again for the heads up. Hopefully your post will inspire many to pursue a better way to approach DL jobs :slight_smile:

5 Likes

@hwasiti

I’ve already asked all of these questions and a few more to Tuatini on my interview here:

8 Likes

Great thread. I don’t know anything about getting hired into a company but I do know a few things about freelancing.

I switched from iOS development to ML about 4-5 years ago (when I was 38-39) and currently am making a good living doing ML consulting work (remotely).

I think there are a few ways you can do freelancing:

  1. Build a reputation for yourself on sites such as Upwork. I’m not a fan of these sites, but they offer a reasonably easy way to get some experience if you’ve never freelanced before.
  2. Build a reputation for yourself on your own website.
  3. Get gigs through people you know. Hard to do when you’re just starting out, but will become easier over time as you get to know more people in the field.

When I started in ML, I picked a niche: ML on mobile. This was not something a lot of people realized was possible at the time, but it seemed inevitable to me. So I got in early and was able to establish myself as “expert on iOS machine learning”.

I invested a lot of time into building that reputation, by writing an in-depth blog, several books, publishing open source, etc. It’s something that requires maintenance as well — whenever a new efficient model architecture comes out, I need to study it in order to be able to provide my clients with up-to-date information. (This is why they hire me: so they don’t have to do this themselves.)

I’m sure this is also why Jeremy encourages people to write blog posts. But I’d say you need to take it to the extreme: focus on a particular topic (such as recommender systems) and write exceptionally good blog posts about them. Make your blog so good that it becomes the go-to reference for this topic, and clients will come to you.

Show people that you know what you’re talking about, so they’ll hire you to solve their problems.

(Of course, the key is finding a good topic. The more niche the topic is, the easier it is to establish yourself as an expert in it. But of course, if it’s too niche, there won’t be enough clients.)

I believe the same thing is true for getting hired as an employee: you can go on interviews and hope to convince the company to hire you. Or you can first establish yourself as an expert, make the company reach out to you (rather than the other way around), and do the interview on your own terms (for example, it allows you to insist on working remotely). It puts you in a much better position to negotiate if they’re the ones who need you, rather than the other way around.

I’m sure that “become recognized as an expert” sounds daunting, especially if you’re just starting out. But rather than just doing one MOOC after another, do them with a purpose: Take the things that you learned in the MOOC, dive deeper into them, and then write about it. This will 1) make you learn things much more in-depth than other people, 2) improve your skills in explaining stuff (essential when doing consulting), and 3) work towards building up a “portfolio” that demonstrates your skills.

Example: I just spent several days figuring out why bilinear interpolation works differently across ML frameworks and how this affects Core ML (the ML framework for iOS). Not a lot of other people have gone this deep into this topic before – and even if they did, they didn’t write about it. Having in-depth content like that will help to convince people you really know what you’re doing.

(And if you’re worried you don’t have anything to write about: You don’t need to know everything already. I didn’t necessarily know everything about bilinear interpolation when I started writing that blog post. But as this was a problem I wanted to figure out anyway, I might as well put some extra time into writing about what I have learned, which helps to get more work in the future.)

Anyway, not sure how helpful this is. I just wanted to point out that you can take matters into your own hands and market yourself as a capable ML engineer / data scientist, so that companies or clients are more likely to be interested in you than someone else who did the same online courses and read the same books.

21 Likes

“Reality hits hard!”
Hi, nice thread @radek
I am currently doing my B.Tech in EEE and learning AI through this course in the view of implementing AI in Robotics. I hope this course will get me acquainted with the AI knowledge needed in the field of robotics

1 Like

I do online courses to learn skills and develop intuition. I want to have new ideas and be able to implement them.

I fall into a couple categories. I am a forward looking CS student who wants to specialize in this subfield. But I am also in my 30s, adrift in the world, and much of my learning is through MOOCs and personal research.

2 Likes