Autodidacts focus on practical skills that ML professionals use every day. Once they have a core skillset and a micro portfolio, they apply to niche job opportunities that suit their no-degree background.
It’s all about momentum.
Self-learners often approach their careers in stages. First, they build a portfolio and get a foot in the door. Later, many make additional sprints to achieve career-specific goals. They either do them full-time, part-time, or through internal transitions and upskilling.
Here’s what those transitions can look like:
Learning software engineering → A tech internship at a small company
Building an ML portfolio → An entry-level ML role at a small company
Part-time ML portfolio building → A junior ML role at a mid-sized company
FAANG/Unicorn company interview prep → ML engineer at a known tech company
This guide is for self-learners looking for their first ML job. But it’s also valuable for recent graduates and ML practitioners who want to stay up-to-date as ML evolves.
Old way: learn learn learn learn learn do
New way: learn do learn do learn do
- Wes Kao
The Recipe to Fail
I reckon effective self-learning mimics what ML professionals do on a daily basis. Yet, many self-learners do the opposite: they get stuck in long lists of online courses.
After gaining a handful of certificates, they run out of motivation.
They end up applying to the popular enter-level positions, but after not getting any interviews, confidence drops. They feel overwhelmed by **everything to learn** and have little hope of fixing it.
Here’s the thing.
There is little credential value in online certificates.
Online courses can provide structured learning resources but have a marginal impact on employment attractiveness. Most assessments have all answers available online, so there is little risk or consequence for cheating.
But the same is also true for most portfolios, many copy-paste or tweak existing projects. It’s hard to tell the difference between real and low-effort projects.
For companies, it’s too risky to advance candidates without evidence of being hireable.
After building a weak ML resume, many self-learners apply to known companies. High salaries and status seduce them. Viral Medium posts by autodidacts who land high-status jobs are often valuable. However, they lead to the wrong impression.
Early career high-status jobs without degrees are exceptions that are highly context-dependent.
Unfortunately, many self-learners don't know how to find niche job opportunities that suit their no-degree background.
Instead, popular positions are flooded with applications. Many are complacent. With one-click applications and remote jobs, it’s easy to apply to hundreds of companies. Known tech companies have a hundred to several thousand applicants per position. In these resume lotteries, university graduates come out on top.
Many self-learners don’t land any interviews.
At this stage, it’s tough to get back on track. Self-learners spent their savings on living costs, they have little motivation left, and the pressure to create an income increases.
It’s hard to know what to do next.
Many ML experts recommend several years' worth of online courses to reflect the depth of their education and career. Unfortunately, although it comes with good intent, it often sets unrealistic expectations on what it takes to enter the ML field.
At this point, self-learners don’t know if they should trust the academic camp that emphasizes calculus, algebra, statistics, and probability; the industry camp that argues for MLOps, pipelines, SQL, Git, and Kaggle; or the interview hacking camp that believes you should master LeetCode, cracking the coding interview, and memorizing the first part in Goodfellow's Deep Learning book.
Self-learners often drop out at this stage.
Many never realize there are **far better ways** to land an ML job.
Becoming Hireable
Many self-learners have a crucial misunderstanding: knowledge is not the same as evidence of being hireable.
This relationship was first studied by Solon and Hungerford in the late 80s.
For example, if a university student drops out a few weeks before graduating, employers don’t see it as 98% of a degree. Last-minute dropouts will have almost the same knowledge as graduates, but only be a fraction as hireable as someone who stayed a few more weeks.
While online courses are excellent learning resources, they seldom make a candidate more attractive to an employer. For self-learners, taking online courses is like someone who drops out just before graduation. They have the knowledge but not the hiring credibility.
If you don’t earn a traditional degree for your learning, you need to use your knowledge to compete for employment attractiveness.
Self-learners have to compete for either brand recognition, time, attention, or money.
When ML professionals validate your work, they are risking their time and reputation. If someone pays you for work, they are risking their money. If a conference publishes your paper, they are risking their brand.
When you compete for something scarce, you need trust, hard work, and talent. That’s what employers look for.
The hard part of the ML self-learning path is not how to gain knowledge but how to create industry credibility.
A portfolio is a collection of evidence that ML professionals and institutions have traded something scarce for your talent and hard work. That portfolio could include work experience, open-source contributions, or beating established benchmarks. They show that you have obtained something rare and valuable.
Part One → Programming
Start with Programming
Software is the majority of modern machine learning.
Although many are eager to head straight into ML, it’s often far wiser and more practical to enter tech with software engineering.
There are far more entry-level positions in software development, clear learning paths, and it’s faster and easier to learn. 20% of professional developers are self-taught, and in comparison, 4.1% of the employed data scientists on Kaggle are self-taught.
There are boot camps and other options to learn data science. However, it can be overwhelming to try to learn both programming and machine learning at the same time. It's usually better to get some experience with software engineering first, and then learn ML.
Having that said, data science boot camps can be helpful for roles that are related to data science but don't require as much technical expertise, such as analytics, product managers, support, and business roles.
No-degree Tech Schools and Online Courses
If you are still in high school, just curious, or already have a STEM degree, online coding courses are good options, such as Codecademy, Scrimba, and freeCodeCamp. Online courses require the most motivation and offer the least support in landing jobs. Yet, they are cheap, fun, and easy to access.
I learned programming via the 42 network. Imo, it’s still the best option if you are looking for a collage-like experience for self-learners.
42 schools don’t require high school diplomas. It’s free, portfolio-based, and peer-to-peer without any teachers. You’ll land a job within six months, but you can also keep studying for four years. A good paid alternative to 42 is Holberton School.
Being part of a network is not just great for building life-long friendships and making learning more enjoyable, but it’s also important for referrals.
Self-learning schools are a great alternative for many who don’t jell well with traditional schools. There are also sound education theories that support self-driven learning.
Boot Camps
The third alternative is traditional boot camps, either online or campus-based. They are often practical but have a more structured learning experience like schools.
If you are looking for more technical roles or don’t have any work experience, it’s worth going for boot camps that are at least six months. Lambda School/BloomTech is worth considering.
Traditional three-month boot camps often offer the shortest transition into tech. I reckon they are well suited for people who already have a career in another field and are looking for lighter technical roles.
On average, tech boot camps are 14 weeks and cost $14k. This is not enough time to become an outstanding coder, but it’s enough to land a web development job and continue the path of becoming one. 79% of boot camp graduates land tech job and the average salary is $69k. Many boot camps hire their graduates as instructors, so take the numbers with a grain of salt.
The curricula tend to be similar, so I’d opt for a camp with a high ranking.
Computer Science
“But a lot of the work of a day-to-day MLE or data scientist is around putting things in production, or managing things, or scaling things, or figuring out how to grab stuff off of ten different databases and clean it and put it somewhere. That’s the kind of stuff I’m really looking for.” - Chris Albon, Wikipedia
90% of today's models are trained and deployed on servers.
Most of the work is focused on making the data, training, and production process faster by improving efficiency and organization.
Where I studied, we learned the C Programming Language in depth. We started by developing our own standard C library and then reinvented many classic algorithms and core programs in computers. I feel like C is a good abstraction layer. I can both dabble in lower-level languages and high-level languages.
Imo, a practical computer science curriculum with a focus on projects and programming is a solid base. Specializations include security, DevOps, back-end, and graphics.
Once you move to ML, you’ll be mostly working in Python, so it’s worth dabbling in that too.
Front-end and Mobile
Mobile and front-end roles are less common entries into ML. However, there are significant cost, latency, and privacy benefits to running ML models on personal computers and phones.
Client inference and optimization are valid entry-point into ML. Although only 10% of ML inference happens on the client today, according to Gartner, this is expected to increase to 50% by 2025.
The major shifts on the client-side are human-in-the-loop, prompt engineering, and active learning. Creating smaller intermediate models, workflows, and programs to interact with server-side models is important. It’s also worth looking into Neural Radiance Fields and browser rendering.
On the tech side, I’d especially look into TensorflowJS, ONNX.JS, Eigen (C++) complied with Web Assembly and experiment with the newly developed PyScript. Full-stack roles fall between both roles. It’s a valid option, although I’d specialize on either the back-end or front-end to not be spread out too thinly.
Regardless of which programming path you choose, I’d aim for at least 6 months to 2 years of study and work experience to get a good foundation.
Part Two → Machine Learning
Learning Machine Learning
From informal chats with other self-learners and looking at how long they keep studying, an average self-taught student has around three months of motivation before giving up.
You can’t learn everything and need to make strategic tradeoffs. At heart there are two challenges:
Having a good enough resume to get interviews
Passing the interviews and getting an offer
Many autodidacts focus on knowledge that’s useful for interviews and wing their resumes. I’d argue for the opposite.
There is little point in being good at ML interviews if people don’t invite you to interviews. Also, you’ll have a higher chance of keeping the job and advancing if you have useful skills on day one.
It’s too overwhelming to both create a strong resume and competitive interviewing skills. Many university students have 5-9 years’ worth of theory training and do months’ worth of interview preparation. It’s unreasonable to both have a strong no-degree resume and also be competitive in theory-heavy interviews.
There are enough ML opportunities that have practical interviews and light theory requirements. It's best to focus on those gigs and maintain momentum. Work experience will give you a significant boost in later job hunts.
So, the goals for those three months are to:
Learn data-centric problem-solving tools
Identify, scope, communicate and solve problems
Build a portfolio with externally validated results
Gain a light overview of ML and statistics
Machine learning boot camps can work if you have significant programming experience. Many companies are also looking for strong programmers and offer on-the-job ML training.
However, ML is more competitive than software, and a strong portfolio weighs heavier than a boot camp graduation. Boot camps can also be inconvenient and expensive. There are also cheaper online boot camps such as Nano Degrees.
Other options are cloud-specific ML certificates such as GCP, Azure, and AWS. The tests have around 60 multiple-choice questions. It feels like it’s too easy to game to be valuable in general.
But some find them useful, especially for customer-centric roles for specific cloud providers. Cloud providers also track and incentivize partner companies to hire candidates with their certificates.
Practical ML Courses
Pick a practical ML course and study it for one month.
You might think that one month of ML is not enough to build your projects. But it is. You’ll be rusty and need to check things frequently, but you have enough to start solving data problems.
Look for instructors that are doing competitive industry work today. The current ML cycles are only a few years and best practices are improving each year.
Solid practical ML courses for coders include FastAI and Kaggle’s 30 days of code.
Many find recent practical courses messy. That’s true.
The pace is fast and there are a lot of tools, mixing off-the-shelf library calls with dabbling in the source code, context switching, and debugging. But that also reflects reality, especially industry-level knowledge that people want to pay you for.
It’s less important if you use a paid solution, an open-source library, write models from scratch or know all the theory. What matters is spotting potential risks and weaknesses with your solutions and learning how to mitigate them. That’s what modern learning is.
The things you want to learn include:
Problem-solving
The types of problems that machine learning can and cannot solve
Knowing when to use paid APIs, open-source, or custom solutions
Basic awareness of how your model impacts a business including privacy, UI/UX, legal, ethics, and their business model
Communicating expectations and timelines to technical and non-technical stakeholders
How and when to mitigate risk from your inexperience
Data
Understanding what data is available to you, and how to get more
Extracting, visualizing, cleaning, and loading data
Understand the data and make informed decisions based on it
Models
Understanding the type of problem and how to find a solution
Setting and measuring appropriate objectives and success criteria
Quickly reaching a baseline model
Training models with state-of-the-art results
Fast and efficient debugging
Visualizing model performance
Deploying models and understanding memory, cost, queries-per-second, and latency
By all means, skim online courses, and look up things on YouTube and Google, but after your month-long practical course, your focus should be 90% on your portfolio.
That honeymoon phase goes fast and you need a resume.
Breadth, Credibility, and Edge
Imo, deep learning is the most exciting area and has the most future potential. I rarely use classic machine learning approaches, although they are common in the industry and are often used in interviews.
In the evenings, it’s worth exploring StatQuests' the Basics (of statistics) and Machine Learning. You can use a flashcard app like Anki to memorize the key concepts in these videos.
For your portfolio, you have two types of portfolio projects:
Degree equivalent projects, 1-3 months long result-driven projects that give you credibility
Talent projects, 1-4 week open projects that make you stand out
A degree equivalent project is what makes employers invite you to interviews. They give you evidence that you can do the job. Talent projects are both great for marketing yourself and making you stand out in the interview process.
However, if you only have shiny talent projects, many employers will doubt that you can do the daily grunt work to deliver on projects.
Part Three → A Base Portfolio
Weak Portfolio Projects
A typical weak portfolio project is listing toy problems such as MNIST, Titanic, and Iris on your resume. For many employers, that is an instant rejection. They are considered school projects and don’t require talent or endurance to solve.
Some ML projects have neither a positive nor negative impact on your resume. They are comparable to blank portfolio items. This might sound harsh, but these are often the most common ML projects.
These portfolio items are often too hard to evaluate or lack results. For example, a stock prediction app, a GAN to generate artwork, reinforcement learning applied to a game, or a cancer prediction model. Many recruiters will see 5-10 people with the same portfolio projects on any given day.
These could be great projects, but they lack enough information to inform a recruiter.
Self-learners are often naive. They don’t have any experience competing against candidates that lack integrity. Many fake their portfolios. They clone a project, change a few things, fake a git commit history, and create a documentation. Some even study the source code to answer questions about it.
Self-learners need to differentiate themselves from fake and low-effort portfolios.
Degree Equivalent Portfolio Projects
A non-expert recruiter needs **hard evidence** that you didn’t copy-paste your projects. And even if you have impressive results, they need to be validated by someone else. Otherwise, you could have made trivial mistakes, made them up, or plagiarized them.
It’s your responsibility to create the evidence equal to a degree.
A result-based portfolio project means that you achieved something objectively good and it’s easy to understand. You have three options when it comes to clear result-based portfolio items:
High-ranking score in an ML competition
A contribution to a popular ML open-source project
A published paper/workshop paper (mostly relevant for transitioning STEM researchers)
These are hard to achieve for your first portfolio, but it’s worth knowing what to aim for. There are three more result-based portfolio items, but they require effort for recruiters to understand. Thus, they are less valuable than the previous three categories.
An ML project with real users (ideally a deployed model with a UI)
Industry-specific solution with a mentor that provides a testimonial
ML content marketing with high engagement such as blogging, podcasts, and videos (developer advocacy roles)
High-effort Projects
Some of the highest value portfolio items are first-author published papers in machine learning conferences such as NeurIPS, ICLR, and ICLM, top entries in large Kaggle competitions sponsored by known companies, and open source contributions in popular libraries such as Scikit Learn, TensorFlow, Numpy, or PyTorch.
These are easy to understand and as a high-effort signal. But these are hard to achieve given the timeframe self-learners have.
More achievable results would be workshop papers in NeurIPS, ICLM, and ICLR or a published paper in any other ML conference. I made a contribution to the creative workshop at NeurIPS. Although I made a light contribution, having someone select the work and participate in the community is valuable. However, it’s more reasonable for someone transitioning from another research field, say Physics, which is common.
Smaller ML competitions are great portfolio projects. That could be more niche competitions on Kaggle, Numerai, ML conference competitions, or company competitions. Imo, it’s better to have a top ranking in a small competition than to be average in a large competition.
The third core opportunity is open-source contributions to up-and-coming projects. Also, it’s often the best way to collaborate and get to know people who work in ML.
I’d highly consider contributing to one of the following open-source projects: FFCV, EleutherAI, Hugging Face, Pytorch Lightning, LAION, Replicate, timm, Segmentation Models, OpenAI Gym, Albumentations, einops, ONNX JS, FLAX, and the FastAI Library.
These projects are done by some of the most talented people in the industry, and they are often looking for people to help. They might even have solid first issues listed in their GitHub repos. You can find more OS projects here.
These portfolio items will require a lot of hard and focused work. But these systems are meritocratic. Good work will be recognized.
Industry Portfolio Projects
Working with someone in the industry to solve a real problem and have them write a testimonial is a safe and solid portfolio project. However, unless you have someone that vouches for your solution, it’s not a result-based project.
The hardest part is finding someone to work with.
One path is to email ten to twenty ML engineers at startups you respect. Ask them for industry problems with accessible data that you can tackle. A good place to find prospects are people on Twitter with less than 10k followers and a blog.
Email example:
Title: Industry ML problems
Hi Jane,
I’m self-studying deep learning [Link to github] and I’m looking for problems I can tackle for my portfolio.
Given your interesting work on Twitters’s recommendation system [link to their blog], I thought you could have exposure to other unique industry problems.
I’m thinking of using Twitter’s API to do an NLP analysisis to detect the percetage of bots on Twitter. Is that a good entry-level problem to tackle or can you think of something else?
Cheers, Bob
Keep it short, indicate that you have done your homework, and give them an easy way out. If you translate their feedback into results, they’ll be happy to keep helping you.
When you have worked hard on the problem and have a great result, you can ping them again and ask for feedback on the project. ML engineers can both put you in a good starting point, scope the project, help you when you get stuck, and potentially hire or recommend you later.
You can also approach people that post data-related freelance projects on freelancer marketplaces and look at sites that post pro-bono data projects.
Part Four → Talent projects
Short expressive projects
To get an interview, you need a result-driven project with external validation. Companies want evidence that you are reliable and can do the job. This is very much like the value of a degree.
To deliver on result-driven projects, you often need to use well-established solutions to defined problems. In comparison, talent projects don’t have the same burden on rigor. Instead, the focus is on novelty and storytelling. It's all about expressing yourself.
Here are a few characteristics of talent projects:
It takes 1-4 weeks
It explores something novel
The result is a demo, blog post, or a visual
Talent projects can be used in different scenarios:
Stand out in interviews
Indicate you have passion for a particular topic
Personal branding and marketing yourself
Art and creative projects
Create a developer advocacy skillset
Also, worth noting, that if you have say a Master's in another STEM subject or have done something else impressive. This can give you enough headwind to do one or two shorter talent projects and still be competitive when looking for an ML job.
The Risk of Open-ended Projects
Talent projects are risky. You have to define a problem, find a solution, communicate the project, and market the project. They are more idea-driven and require more taste and skillsets outside of machine learning.
Many things go wrong. According to Gartner, 85% of ML projects fail.
The model you base your work on might not work well in practice, this is very common. It often takes a few attempts to find a model to work with. Even if it runs, there can be lots of issues with the model and it can be hard to put it into production.
But even if you get a result, it could be too complex, you can’t communicate it, few care about your problem, or it’s already been done.
Talent projects are usually the most popular type of projects among learners. They are often more flexible and fun, and have less accountability. However, since talent projects are hard to execute and popular among students, they also introduce the most noise. As a result, it is difficult to compare students who have completed open-ended projects.
Interview Edge Projects
Getting an interview is one problem, but getting the final offer is the second problem. The final selection often correlates to how passionate candidates are about **their specific problems** and their company.
All candidates will claim they are interested in a company, but there is nothing better than proof, making a short portfolio project targeting a specific company or industry. This is far more convincing than words.
That’s where talent projects come in. Think, the icing on the cake. I mean, what’s a carrot cake whiteout that thick layer of cream cheese frosting.
Here are a few examples of X-factor projects:
At heart, an interview edge project shows that you are up to date with the latest developments, you are curious, and interested in your potential employer’s type of problems.
Developer Advocacy Projects
There are a lot of ML roles that focus on raising awareness of their product or service. That could be anything from blogging and podcasts to videos. Developer advocacy roles focus on engagement such as views, signups, likes, etc. These roles are often fun and creative and can also work as a transition into more technical roles.
As a rough ballpark for combined direct views per content piece (not including views on say Twitter or Instagram):
Okay: 5k
Good: 25k
Excellent: 100k+
The internet is meritocratic, so if you make an excellent contribution, communicate it, and share it. It has a high chance of generating decent user metrics. The external excitement is an indicator that you made a unique contribution. Without it, it's hard to tell if you made anything at all.