Despite popular myths, you can become a software developer without a college degree.
Whether you’re re-entering the workforce or stuck in a career you dislike (administration, operations, banking, etc.), transitioning into a career as a software developer is within your grasp. As long as you’re willing to put in the hard work.
According to US News, software developers have a median salary of $95,510 per year, and an unemployment rate of 2.5%, making it one of the most lucrative technology careers. Additionally, the profession offers an above-average work-life balance.
Even more, the Bureau of Labor Statistics projects that between 2014-24 there will be a 17% growth rate. Meanwhile, the average growth for all occupations is 7 percent. This translates into 186,600 job openings.
And guess what? Despite the positive outlook and abundance in opportunities, only 2.4% of college grads study computer and information science. As you can see in the image below, by 2020 there will be 1.4 million computing jobs versus the 400,000 CS students.
You get the picture: programming skills can bring more financial security as well as flexibility in your day-to-day. But how do you get these skills, without sitting through four years of CS classes? And more importantly, how do you land one of these in-demand and highly-paid careers?
Here's the good news: it's totally possible! And I partnered with Flatiron School's Learn-Verified team to bring you this 11 step guide on how to become a software engineer without a CS degree. So read on!
Step #1: Be crystal clear about your end goal (and commit to it)
Before getting started, understand that the following steps are specific for those looking for a full-time job (I abbreviate as FTJ) as a software engineer. They’re not for the person who is:
- Dabbling with code for the first time
- Unsure if coding is right for them
- Wishing to pursue web design, UX, UI, or any other design-related field
- Wanting to freelance full-time
- Hoping to start their own business
Transitioning into a new career is not easy. But when you have a final destination in mind, it helps tremendously when you hit bumps in the road. A crystal-clear goal looks something like this:
- “I want to work as a software developer at an established tech company.”
- “I want to work at a brand new startup, as a software engineer, in the industry I adore.”
- “I want to build things on a team, and get paid well for it.”
No matter the specifics of your dream, if you want to make it through all 11 steps, you MUST be committed to the end goal of becoming a full-time software engineer.
Step #2: Choose a language to learn
When starting out, many people get stuck deciding which language (and framework) they should learn. Ruby on Rails? Python and Django? MEAN stack? So many options, so little time.
Here’s the thing: once you know a particular language/stack well, it is not difficult to transition to a new one. That means that when you’re becoming a software engineer, what you want to focus on is understanding programming fundamentals. In essence, learning how to learn.
Once you have a solid foundation, you can easily transition to new languages, frameworks, and technologies. As co-founder of Flatiron School Avi Flombaum says, “The most important aspect of it is that you’re learning how to think like a developer.”
All of this said, you should focus on one language/framework to start.
With so many languages out there, it can be hard to know which one to pick. I recommend taking some time to learn about the different languages. This guide to picking a programming language is a great place to start.
For many, Ruby is an excellent way to go.
Ruby is readable and efficient, making it much easier to get comfortable with than some other languages. It’s also open source, so you’ll have access to plenty of tools and a community of other developers, all for free. And perhaps most importantly, it’s flexible: the language is used by plenty of companies (Airbnb, GitHub, Hulu, Kickstarter, etc.) and gives you a solid foundation to branch out into other languages later.
Former Learn-Verified student Sarah Lichter says, “As I was learning on my own and making these decisions, I had read a lot about Ruby and about it being friendly, easy to pick up as a first language, and had a great community around it, so learning Ruby seemed like a great choice.”
Step #3: Practice…and practice some more
While the stack you learn doesn’t matter a whole lot, what does matter is learning by doing. This means dedicating some real time to perfecting your new craft. You must set aside a significant amount of time every day, every week, to learning.
You can’t become a software developer after 10 hours of practice. It’s just not possible.
Some people say it takes 10,000 hours to become an expert. Now, you don’t need 10,000 hours of practice to get your first software developer job. But you do need to dedicate some serious time.
To give one example, the Flatiron School’s Full Stack Web Development Learn curriculum is about 600-800 hours total. It takes most students between four and ten months to make it through, depending on how many hours they devote to the program each week.
Step #4: Use tools that real developers use
While free resources like Codecademy are great, you’re not in a real-world environment when you use them. Instead, you’re typing directly into the web browser and getting a score based on a quiz or some other kind of interactive activity.
In the real world, you’re not going to be working like this. So, what you want to do from the beginning is build how real engineers build. You want to use the tools that they use. Down the road, this will make it much easier to transition into a full-time role and join a team.
But it’s hard to build how real devs build, and use tools real devs use, when you’re first starting out. (If you’re anything like I was, it’s hard to even know where to begin.)
The good news is that there are programs out there that teach you how to use these tools—like Flatiron School’s online program, Learn-Verified.
Learn-Verified’s curriculum is built around the tools and processes real engineers use every day, like:
- Git and GitHub
- Working in your terminal
- Test-driven development
- Group projects/collaboration
This will enable you to adjust much faster once you’re in a real job, rather than having yet another steep learning curve to master.
Step #5: Read other people's code
Another important aspect of becoming a software engineer is learning how to read other people’s code. You can do this by browsing through GitHub repositories, and looking through documentation.
Sometimes, documentation can be wrong…but the source code never lies. By learning to read that code, you’ll be able to understand what’s going on and how a program is working. (This skill is also important when it comes to debugging, because you’ll be able to identify which piece of the code shouldn’t be there.)
This is often an overlooked skill, but it can really benefit you to see how experienced developers do things. Don’t just do a cursory skim of the code, either. Delve in deep, learn the ins and outs, map out the functionality, and finally, recreate it if you can. This way, you’ll be able to reverse-engineer an existing program, helping you understand that much better how to create one of your own.
Step #6: Find a community
Finding a community to learn with can make or break your success as a software engineer—especially when you’re just starting out. When you are surrounded by a community of like-minded people, you have an automatic support system: a group of individuals you can call on when you get stuck, or lose motivation. (Both of which can happen to the best of us!)
While learning with Learn-Verified, you gain access to a Slack group. This group allows students to come together and work through lessons or topics on a video chat and private Slack channel. Students also can set up or join additional online study groups with peers. All experience levels can participate; in fact, over 40% of the questions asked are answered by another student. However, there are also seasoned devs in the group to help you out, too!
Step #7: Build projects
Don’t just read tutorials and watch videos—put your skills into use. Solve problems along the way, just like everyday software developers do. When you do this, you not only further your learning, you also show potential employers that you can hack it. (Because the end-goal is to get a job, right!?)
You can build projects solo, or with a group.
By the end of Learn-Verified, you’ll have plenty of projects to show off. You’ll build 3-5 applications throughout the program, followed by a capstone project. And they’re not just boring “fill in the blanks” projects: you have the choice to build what interests you.
Plus, the way the Learn-Verified program is setup, you do everything on GitHub. This acts as a great foundation and a way to showcase what you can do to potential employers.
Step #8: Cultivate your professional network
As you learn how to code, build projects, etc., you should be slowly but surely cultivating your professional network. Because when it comes to finding a great job, it takes more than just applying for jobs online (which, these days, can just be a waste of time).
Beyond tapping into your first-degree network, you can also get intros to your second-degree connections (friends of friends). The goal is to set up informal coffee meetings with people connected to companies you’d like to work for, which builds connections and sometimes leads to real interviews.
A few other ways to make new connections without having a mutual friend:
- Go to meetups
- Maintain a blog (which will give you exposure)
- Speak at events
Get involved, and contribute to the community, and almost inevitably, opportunities will come your way.
Plus, they have a job guarantee that commits them to helping YOU land a job. If you don’t get a job offer within 6 months of certification, they’ll give your money back. Basically, they put their money where their mouth is.
Step #9: Master your pre-interview essentials
After starting to build connections with peers and influencers in the field, it’ll be time to get ready applying to the jobs themselves. (However, if you make a solid connection – you may get to skip this step altogether!)
Even in a modernizing world, resumes are necessary. Hiring managers still look at them to get a snapshot of your skills and experience. Similarly, cover letters are needed when applying for jobs online; they’re your opportunity to get someone’s attention and make an impression.
Those are basics across industries. But beyond resumes and cover letters, there is also your online presence to consider. This is incredibly important for anyone in the tech industry, and it’s something you should be building and maintaining over time. Your digital footprint matters because it’s what recruiters and hiring managers will see when they Google your name before inviting you in for an interview.
Your online presence, as a software developer, is made up of a few things:
- LinkedIn profile
- Personal website (or portfolio site)
- Blogging (which can be an addition to your personal website)
Employers will check these and form impressions of you based on what they see. So make sure those impressions are good!
Step #10: Ace your job interview
Finally, there is the interview itself. Most companies start with a screening interview, usually done online, at home. After that comes a phone interview. If you make it through those two, you’ll land the on-site interview.
In addition to the standard “greatest strength/weakness etc. etc.” questions, you’ll need to be ready for technical and behavioral questions. You may be asked to build a project or work through a code challenge, or describe how you’ve handled difficult situations in the past.
Fortunately, when you use Learn-Verified, you won’t have to prep on your own: you’ll have access to their comprehensive careers curriculum designed to make sure you’re interview-ready. (In fact, I helped write some of it!)
Every Learn-Verified student receives a mock HR/Behavioral interview with feedback to help refine their soft skills and bring awareness to now HR professionals might perceive them. Moreover, students receive a mock technical interview with a developer.
Ultimately, the team at Flatiron School's Learn-Verified program is committed to getting you a job. (They do guarantee it!) But remember, you get what you put into it.
Step #11: Accept the job offer
Congrats—you did it!
After you make it through a series of interviews and demonstrate your new skills, it’s just a matter of time before you get an offer. And yeah, it might be entry-level at first, but you have to start somewhere! As you continue to learn and grow as a developer, you’ll continue to climb the career ladder to bigger and better positions.
All of this sounds like a lot of work, right?
Short answer: yes. It’s not easy, and I can all but guarantee that you’ll get frustrated sometimes. But it is absolutely doable. And you can probably even achieve it all on your own. Many people successfully transition into software development using hard work alone.
The thing is, for the majority of people, learning on your own makes everything harder, whether it’s mastering the skills or searching for jobs.
That’s why it makes sense to have help. Learn-Verified makes it possible to fast-track your career as a software engineer. Lots of places have a tried and tested curriculum—just like Learn-Verified does.
But what really differentiates Flatiron School’s Learn.co program is the job placement component. They offer students career counseling as well as a job guarantee within 6 months of completing the program—or your money back.
And the numbers don’t lie. 99% of students are placed at jobs eventually, and 95% of them are within 120 days. They earn on average over $74,000 per year for their first junior developer role.
Aside from the numbers, one of the best ways to get a feel for a program is to hear from those who have done it before. The majority of former Learn-Verified students report great experiences with the program. Here’s what a few of them have said:
- “If you place yourself into this program with a will to succeed, then Learn Verified will give you the tools and the mentorship you need to start a future career in web development.” – Luke
- “I have learned more in the past few months with Learn than I learned in two years of self study. This program has focused me on the right topics to study, and the right order to study them.” – Lisa
- “I love the community and feeling of connection as we all share code and vent our frustrations and cheer each other on from all over the world. I couldn't have asked for a better experience. Flatiron School rocks!” – Marsi
If you’re interested in the Learn.co program, you can test the waters by getting an account for free here.
Alternately, you can sign up for an upcoming information session where you can meet the team, learn how the job guarantee works, and more.
The team at Learn-Verified wants all students to be hard workers, willing to put in the necessary effort to learn the material and land the jobs. You’ll need to go through an application process to prove that you’re willing and able to be their next success story!
If you have a dream of becoming a software developer and want the most direct route to achieving that goal, it’s definitely worth your while to check out Flatiron School's Learn-Verified program. While the program is rigorous, it also comes with extensive support. As long as you’re ready to put in the work, you’ll walk away from the program with the skills you need to land your first job as a software engineer.