BECOME A SOFTWARE ENGINEER WITHOUT A CS DEGREE
Tefe Del Rosario-Bell
When I first started learning about software development, I couldn't help but fall into a habit of taking a more holistic approach to my learning. It was hard for me to internalize the idea that one approach to quickly breaking into the tech industry as a Software Engineer, without a computer science degree, is by prioritizing specializing in a tech-stack, producing fully functional projects quickly, and marketing myself. I was caught between "you have to just start coding first, find a niche, and pick up the pieces later" and "don't focus on a specific technology, focus on general programming skills."
After applying to well over 200 jobs and experiencing endless waves of rejection, one of the things I noticed is that companies are nervous about hiring "generalists," even if that means, more specifically, a web-developer "generalist" - they want to know, without a doubt, that you are focused on a specific stack and can speak to it without fail. It is often a business need to hire someone who requires little to no training and can hit the ground running, solving problems using their company stack. If you apply to a position with more of a generalist background, unreservedly, I imagine there is a fear of accidentally hiring someone who is not yet truly competent as a developer/engineer. That fear is compounded when there is a missing STEM degree on said candidates resume. It is safer to assume that those who do have that traditional education come pre-packaged with a classically developed problem-solving skillset that has been infused with the teachings of mathematical and scientific methods. The experience of obtaining a computer science degree, of course, is ideally more directly applicable when thinking about / writing software and so these candidates are naturally the most sought-after group for Software Engineering roles. However, unless they are already engaged in the hobby of developing on their own using an in-demand tech-stack, they still do not have the skillset to execute on the technology in production.
The internet has enabled anyone with enough time and grit to learn just about anything. The amount of legitimate free and low-cost quality learning resources that exist for Software Engineers is overwhelming. I am a firm believer that you do not need a computer science degree and certainly do not need to join a coding bootcamp in order to learn how to become a Software Engineer. What you will inevitably get from the experience of obtaining a computer science degree are the foundations for understanding software, and at a bootcamp you prioritize a marketable tech stack to focus on and will graduate with a lot of structured coding experience. Like most things in life, it is up to you to get as much as you can from a bootcamp opportunity because it is a very short period of time and requires you to immerse yourself in order to get the most out of it.
During the vetting process for a company, once you prove that you are proficient with their stack, the next thing you will likely need to demonstrate is your ability to problem solve and learn rapidly. Soft skills of course are extremely important, and depending on several factors, including who you are interviewing with, can be an overriding factor in their decision to hire you. It is not uncommon to hear that someone did poorly on a technical portion of an interview and still get the job because they were able to demonstrate strong soft skills, a capacity to learn or an uncanny ability to think outside of the box.
So, how do you increase your chances of starting a new career as a Software Engineer without a computer science degree sooner than later? Is it: "Just start coding & focus on a few technologies" or "Just start coding but don't focus on specific technologies, focus on general programming skills.”? I am more convinced at this point that it is the former, and once you get that job, you'll just have to pick up the pieces.