Can you have a successful career as a software engineer if you don't have a formal computer science degree? The answer is “yes,” according to Spencer Cornelia and Sylvester Morgan. Cornelia has a bachelor’s degree in sports management and currently works as a software QA engineer for Shift4 Corporation. Morgan doesn’t have a college degree and currently works as a software engineer on the BI Team at Quicken Loans. What’s even more amazing is that they transitioned from technical novices into junior software engineers while holding down full-time jobs. We’re not suggesting it's easy, or that having a CS degree isn’t beneficial, but both pros say that aspiring software engineers can complete an accelerated training program, build some projects, and start competing for entry-level positions within about 12 to 24 months. Here’s a look at their four-step career-change process and tips for making a successful transition.
Design Your Own ‘Degree’
To execute a successful transition, start by figuring out which skills you absolutely need to learn. Don't try to learn a bunch of different programming languages and frameworks that you will probably never use. Study job postings and CS college curriculums in order to build a personalized list of must-have skills, along with a set of potential courses that will address your specific learning and career goals. “It helps to know which specialty you want to pursue, such as web development, mobile development, BI etc.,” Morgan said. If you’re not sure, take an intro to programming course that covers algorithms, data structures and design patterns, testing and the software development lifecycle before you decide which programming languages you need to learn. If possible, talk to an experienced software engineer who can give you more insight into necessary skills. In addition to chatting with tech pros, explore resources that offer online courses from Harvard, Stanford, MIT, and other schools. Some of these curriculums cater to the schedules of working professionals; here’s a sample
from GitHub, this one
is on Reddit, and this one
Practice What You Learn
Put your newly acquired programming skills to work right away. Build small projects such as a website, mobile app or SaaS program in your spare time to implement what you’ve learned. You’ll not only gain hands-on experience with various frameworks and libraries; you’ll be creating a portfolio of coding samples and projects to show prospective employers. The more you practice, the more secure you’ll feel about what you know.
Immerse Yourself in a Technical Environment
Rather than working in an unrelated field to pay the bills, learn while you earn by working in testing, quality assurance or technical support in a software development environment. Essentially, you’ll be able to learn programming and other fundamentals through osmosis just by being around developers working on code. In addition, you’ll have the opportunity to observe and develop critical non-technical skills (such as teamwork, collaboration and problem-solving) that will improve your market appeal by helping you become a better software engineer. You may even be able to volunteer for more challenging “understudy” tasks as you progress, such as writing code, implementing configuration changes, or assisting in the design of software applications or requirements gathering.
Hit the Market
You don’t have to know everything about programming to start applying for junior-level positions. For instance, after completing a few courses and programming projects, and setting up his profile online, Morgan quickly landed his first position, even though the company was looking for someone with a CS degree or three years’ experience. Morgan and Cornelia suggest that you list the courses you’ve taken in the education section of your résumé; practice diligently for coding tests; and be prepared to speak about your projects during interviews. The two pros also set themselves apart by posting video
s and blog
s depicting their journeys into software engineering. Once you’ve landed the job, you can pick up new skills and take additional courses. Before you know it, you’ll be receiving recruiting calls for mid-level software engineering positions—even though you don’t have a CS degree.