It’s no secret that programming skills are in high demand. Programming jobs are growing 50% faster than the overall market. But do you need a degree to be a programmer? In this article, we will explore how to become a software engineer without a degree by using a technique called climbing the freelance ladder and applying to entry-level programming jobs.
Becoming a self-taught programmer is a controversial subject. Whenever I discuss it online, a few people immediately chime in and let me know, “Companies don’t hire programmers without degrees.” Fortunately, that is far from the truth. The reality is, there are too many programming jobs and not enough coders to fill them.
Colleges want you to think the only way to get a programming job is to spend tens or hundreds of thousands of dollars in tuition, but that is far from the only path to becoming a software engineer.
Contrary to popular belief, most industries that hire programmers don’t require a computer science degree.
In a 2017 study, Burning Glass found that only 25% of IT and Programming job postings requested a computer science degree. That means many top employers hire programmers without one.
Many tech companies have banished college degrees from their job requirements altogether, so you can even work at Google as a software engineer without a degree now.
My Experience Getting a Programming Job Without a Degree
Stats are one thing: personal experience is another. I know it is possible to become a software engineer without a degree because I’ve done it.
I learned how to program after I graduated from Clemson University with a major in political science. After school, I struggled to get a job, so I decided to learn to code. One year later, I was working as a software engineer at eBay.
Learning to program was an incredibly rewarding journey, and one of the best decisions I ever made. I’m so thankful I didn’t listen to the people that told me entry-level programming jobs are impossible to get without a degree.
Not only did I manage to become a software engineer without a degree, but I also created a community of fifty thousand programmers that are all self-taught too. Self-Taught Programmers is now one of the largest programming groups on Facebook.
Our community consists of self-taught programmers (and aspiring ones) working jobs at a variety of different companies, all without degrees. Our group has junior software engineers, senior software engineers, and even principal software engineers.
We all took the same path; we learned to program outside of school, applied to entry-level programming jobs, and got hired without a degree. Like Tianni Myers, who went from working as a cashier at Goodwill to a software engineer at Blue Tangerine.
So if you want to join the club and get a programming job without a degree, here are some tips and tools to break into the job market and successfully apply to entry-level programming jobs.
What You Need to Learn
To become a programmer, you need to learn a programming language, programming tools, programming paradigms, and study computer science. In this section, I will cover each topic you need to learn to become a software engineer.
Learn a programming language
You can’t become a programmer without learning a programming language.
The first step is to pick one. What’s the best language to learn first? That depends on your career goals and interests. Once you’ve narrowed it down, you can learn to program through classes, webinars, books, or even programming podcasts. For a complete list of the best resources to help you learn to code, you can use a tool like Coding List. Figure out what learning style works best for you and build up your skills.
If you don’t know which to pick, start with Python.
Although it is a popular choice for new coders, I don’t recommend starting with Java because it is much more difficult to learn than the others.
Don’t expect to learn everything you need to know before your first programming job. Like any field, programmers learn on the job, as they encounter new problems and challenges. But you’ll need solid programming skills when you start.
In addition to a programming language, you also need to master at least one programming paradigm.
A programming paradigm is a style of programming. Two of the most popular are object-oriented programming and functional programming.
Object-oriented programming treats everything as objects, whereas functional programming emphasizes the evaluation of functions.
Here is an article that further explains the difference between the two.
If you aren’t sure what programming style to learn, I suggest starting with object-oriented programming because it is easier for beginners to pick up.
Programmers use a lot of tools. For example, most coders use version control daily. Version control is software that allows coders to communicate with each other. You also need to know how to use GitHub, a website where you can upload and manage your code.
Other tools you should be familiar with are regular expressions and the command-line.
Regular expressions are pieces of code that recognize patterns, and the command line is the terminal that allows you to communicate with your operating system.
You should also get used to reading documentation, which is the instructions different programming tools come with.
Study Computer Science
To become a software engineer, you also need to study computer science.
What’s the difference between computer science and programming? Programming means writing instructions a computer can execute.
For example, here is an example of a program written in the popular programming language Python:
The instructions above are called code. Programming means writing code.
Computer science, on the other hand, is the study of computers and computational systems. In other words, how computers work.
To become a software engineer, you need to study computer science. It is especially important to learn about data structures and algorithms because without studying them, it will be impossible to pass a technical interview, an assessment most programming companies conduct, which I cover later.
You need to be familiar with stacks, queues, binary trees, linked lists, hash tables, sorting algorithms, searching algorithms, and more.
Take a look at my list of the best online coding courses to find the best computer science class for you.
Climb the Freelance Ladder
Conventional wisdom suggests you should learn to program and then start applying for jobs as a software engineer.
That’s what happens when you go to a boot camp: you learn to program and then start applying for jobs right after.
The problem with the traditional route is that it takes a long time, and employers often want you to have at least some experience before hiring you.
An alternative to the traditional route is to start freelance programming first, which means doing programming work for a company as a contractor.
Use Freelance Platforms
There are many different websites you can use to get freelance programming jobs online. Some of the most popular are Upwork.com, Fiverr.com, and Freelancer.com. They have slight differences, but you can get started as a freelance programmer on any of them.
Freelance platforms like Upwork have projects varying from $25 to $10,000. That means you can start by completing a $25 project. The nice thing about a $25 project is you won’t have to interview for it, and the employer will likely be willing to take a chance on a new programmer.
Each project you complete will give you positive feedback on your profile and allow you to work your way up to higher and higher-paying projects. Eventually, you can move into long-term high paying contracts, and even make a living working as a freelance programmer.
This strategy is especially smart because the demand for freelancers is exploding. By 2027, the majority of workers in the United States will be freelance.
Pivot to an Entry-Level Programming Job
Once you have experience freelancing, you can leverage it to get job interviews.
You will find your job interviews much easier when you’ve built professional projects and can talk about them to the engineer interviewing you.
I call this process of starting with small freelance jobs and working your way up to a position at a traditional company climbing the freelance ladder.
Become a LinkedIn Allstar
If you want to get a programming job without a degree, you need to learn how to network. Rather than submitting a resume and hoping for a callback, you should focus on building a great LinkedIn portfolio.
My LinkedIn portfolio was what got me my first job as a software engineer at eBay (without a computer science degree).
There are a few things you can do to make your LinkedIn portfolio stand out.
The first is to get endorsements for your most valuable technical skills. For example, if you know Python, you should make sure to get anyone you’ve freelanced for or helped with any projects to endorse you for it on LinkedIn.
Update Your Most Recent Job
You also want to list your most recent job as a freelance software engineer. That way, employers will look at you as a professional software engineer, not an unqualified person applying to their job with no experience.
After you list your most recent job as a freelance software engineer, create a list of your most impressive projects and list them in your profile.
Finally, you want to make sure to stack your LinkedIn profile with keywords. Most companies have technical sourcers: people whose sole job is to find new technical talent and bring them in for interviews.
They find new candidates by scouring LinkedIn for talent: searching for keywords like Python. So make sure to include keywords in your profile so they can find you.
Be strategic about networking. Connect with programmers at companies you’re interested in, and ask about job openings. You would be surprised at how receptive technical recruiters are to hearing from people that know how to program.
Build a Portfolio
When you are ready to apply for jobs, don’t just showcase your skills—make sure you create a portfolio to highlight your successes. You should list your skills and experience and include links to your work.
You should also include a link to your GitHub account. Potential employers will want to look through your GitHub to view the quality of your code.
Your portfolio goes beyond a resume to demonstrate your experience. Think of your portfolio as a work sample, showing off your skills and the projects you’ve completed. Plan to update it as you build new experience, and always consider adding testimonials from clients.
Master the Technical Interview
Once you’ve got your foot in the door, you’ll need to master the technical interview: an assessment a company uses to judge candidates.
Typically, you are given two or more problems and asked to solve them, while the interviewer watches.
This is another chance to show off your skills. While it might seem intimidating, many books for programmers offer tips, tricks, and advice on technical interviews.
Technical Interview Resources
A popular book to prepare for a technical interview is Cracking the Coding Interviewby Gayle McDowell, which teaches you how to solve the types of problems you will face in your assessment.
My Secret Interview Hack
One trick I use to nail my technical interviews is to participate in competitive programming.
One of the challenges of a technical assessment is that it takes place in such an unnatural setting. When else are you ever in a situation where you have to solve a programming problem with someone staring over your shoulder? Even if you know the answer, that kind of pressure is nerve-racking.
There is also time pressure. Typically, as a programmer, you have as much time as you need to solve a problem. In a technical interview, you have a minimal amount of time. You have to solve the problem right there under pressure.
In competitive programming, there is time pressure as well. You get matched up against another programmer and solve a problem; whoever is faster wins. Participating in competitive programming before your interview will make solving problems under pressure a breeze, and you will easily pass your assessment.
Once you pass your technical interview, you can expect a job offer.
That’s all there is to it!
Every year, the demand for programming skills grows. Now that you know how to get a programming job without a degree, all you have to do is put in the work. While learning to program does take work, it is a lot of fun too.
So don’t let anything hold you back! You can do this!
If you want to learn more about programming, you can read my book or if you need mentorship, try a program like One Month Python. If you want to learn even more about climbing the freelance ladder and landing entry-level programming jobs, you can take my course on Udemy.
Best of luck!