Main image of article Become a Software Engineer Without a Computer Science Degree
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 is from Google. Although Cornelia began his journey into software engineering by enrolling in an immersive web development program, he recommends a different course of action. “The learning curve for software engineers is like a hockey stick,” he explained. “Start by learning how to think like a programmer and the structure of programming languages. Once you master your first language, you can learn another one in about a week.” Both professionals also took free or low-cost programming classes from places such as CodeAcademy, Coursera, edX, Udemy and Pluralsight. Reviewing concepts and lessons in software engineering textbooks as you go is another way to accelerate learning. “I would recommend learning Python or C# first,” Morgan said. “From there, you can learn Java, JavaScript, Ruby, HTML and CSS and SQL.”

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 videos and blogs 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.