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.

9 Responses to “Become a Software Engineer Without a Computer Science Degree”

  1. Very, very few people will be able to break into anything technical without a degree, and in SillyCon Valley, only from certain “right” schools. This person must be unusually gifted in networking. Very few tech people are skilled in networking or enjoy it.

  2. Rashaad

    This man must have been white. I am almost done with my second bachelor’s degree and still can’t get any job let alone one in my field as a software engineer.

  3. This is almost exacty how a friend of mine pursued his path. As a music major, he loved his path but realized it wouldn’t provide a career. As is the case with most musicians, they’re often really talented with Languages and Mathematics (whether they realize it or not).
    He took an elective course that set him on the path to learning programming (initially to develop sound mixer applications to address a gap he saw in the industry).
    Posting his progress socially, and pursuing more coding at night (C, Python, and others), he started creating a solid portfolio of examples of useful (in-use) applications and solutions.
    He changed his major to CS in the coming years and completed that credential (it is a road block to leadership roles to not have at a minimum a BS degree). But it was his work at night devloping code that got him on his career path.
    Here is a link to interesting demographics about Fortune 500 firms and their average ages and tenures. Interesting how the younger the average, the shorter the tenure.You CAN get a job at entry level; you just have to have the right coding skills at the right time AND have samples at hand (blogs with links, YouTube and FaceBook Videos walking through the samples and successes AND failures: what you learned from the failed apps) and leverage those during interviews.

  4. One other effective way, and I know because this is what I did, is to write solutions for the company you *do* work for. My second job out of high school was as a data entry clerk at a large manufacturer. The system they were using was old and outdated, and required a lot of manual work. I wrote a new system for them (mostly on my own time) that they still use to this day (and that was over 18 years ago). Look for pain points in your organization and see how they can be solved by using technology. Write lots of code.

  5. I disagree with a lot of this. It’s unclear if this is the author’s background but I’ve been a software engineer for 20 years and I do not have a degree. Taking legit programming courses is good, just don’t do one of those bootcamps. They’re a joke and we turn away candidates if that’s all they bring to the table. My advice would be to get involved in a lot of projects. Find something of interest in the open source community and contribute. This will really impress your interviewers. Pick up some freelance gigs doing websites for family and friends, even if it’s for no money. You’re building a portfolio and have real experience you can put on your resume. And speaking of the resume, create a name for your little freelance business and put that in there too. It will definitely make it look like you’ve got legit work experience. That may be enough to get you in the door for a junior role. Oh, and do NOT go the route of taking a position in QA hoping you can slide your way into a software engineer role. In my years of experience this is very difficult to pull off. Once you go down that road you’ll be “typecast” and it’ll be very difficult to make the switch. Just go after the software engineer position if that’s what you really want to do.