11 STEPS TO BECOMING A SOFTWARE ENGINEER (WITHOUT A CS DEGREE)
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 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!
11 steps to becoming a software engineer *without* a CS degree
CLICK TO TWEET
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.
For many, Ruby is a great first programming language to learn.
CLICK TO TWEET
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 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.)
When learning how to code, use tools real developers use.
CLICK TO TWEET
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!)
In-person groups exist, but can be hard to coordinate with and are not accessible in every area. But anyone can join an online community, and they’re just as helpful.
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 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!?)
Learn to code tip: don't just follow coding tutorials. Build real projects.
CLICK TO TWEET
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).
Instead, you want to build a strong network. For starters, rely on your existing connections. According to Jobvite, 40% of new hires come via employee referral, making it the most common way.
The best way to get a job as a software developer is by networking.
CLICK TO TWEET
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.
Again, the Learn-Verified curriculum covers all of this—everything from how to network, send cold emails, maintain a coding blog, and more.
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!)
But before sending out applications or asking for direct referrals, you’ll need to master three things: resumes, cover letters, and your online presence.
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.
One helpful resource to consult is the book Cracking the Coding Interview.
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.