According to Glassdoor, Google, Apple, and IBM are some of the top-tier employers that don’t require a college degree for several roles. Like many businesses have already begun to adopt such a strategy, this might become the new normal in the future.
There are few jobs as in-demand as software engineering right now, with nearly 27 million people working in this capacity worldwide, and an expected sector growth of 21% in the field by the year 2028 (far outpacing the average projected growth of 5% in other industries).
It’s no secret why: with the increased digitisation and automation of tasks in every industry, there’s an insatiable appetite for new types of software that simplify and streamline tasks that used to be tedious or error-prone.
Software engineering is also lucrative – in the United States, where the largest concentration of software engineering jobs is located, the average base salary for a software engineer in 2021 was over $120,000. And that was before additional sources of compensation, such as bonuses or stock options.
But what does it take to become a software engineer? Can you find a job in software engineering without a degree? And how do you become good at it?
To find the answers to these questions and many more, we spoke to the experts: master software engineers who also instruct in the field. Here’s what they had to say!
It Takes All Types
Software engineering is a broad umbrella term, with a few different jobs underneath it. So, what are some of the most in-demand ‘types’ of software engineering right now?
According to Stanley Ong and Sritam Patnaik, both software developers and instructors at Skills Union, some particularly sought-after subsets are:
Each requires different skills, depending on the industry or role in question. However, your first goal should simply be understanding programming fundamentals, where programming languages come in.
HTML/CSS and JavaScript provide a great introduction to programming and web development. Java is also another good option if you plan on doing back-end development.
Some of the key competencies include HTML, CSS, ReactJs/VueJs for front-end developers, NodeJs/Django/Spring frameworks or database stacks for back-end developers, as well as Java, C++, Python, Agile Scrum, GIT, and other types of programming languages.
Ong emphasises that software testing skills and design principles will be essential for software engineers, regardless of their role.
If all this seems overwhelming, don’t worry – due to the incredible demand for people with these skills, there are numerous pathways to acquiring them.
Different Pathways to the Same Goal
Though computer science is likely the most popular undergraduate focus for software engineers, a significant number of them do not have any university degree. And that’s absolutely fine, according to Ong and other experts in the field.
For those who do not have a degree, “self-taught would be the best study pathway,” Ong says. “They can supplement by taking online courses as well.”
However, Ong cautions that an entirely self-guided programme works best for people who are very good at self-motivating and staying on schedule. For those who prefer a more structured learning environment, Ong recommends a programming bootcamp, which essentially forces participants to remain on a specific schedule with assignments.
Similarly, Patnaik recommends a programming school, which features a few different course options that take six to nine months apiece. Depending on what type of software engineering job you wish to pursue, it might be helpful to learn any number of different programming languages.
All of these options are available online, so they can be completed from anywhere with an internet connection. In addition, there are options for synchronous and asynchronous learning (courses that take place in real-time with an instructor, and those that involve video instruction, with students working on their own time), so with a bit of research, it’s possible to find the exact learning situation that best meets your needs.
Job search platform Indeed.com makes some additional recommendations for people seeking to enter the field of software engineering without a degree. One is to find a job in IT or tech support first or work as a sales associate at a technology store. Doing this will not only improve your credentials when applying to software engineering jobs; it will also advance your knowledge and skills.
Lastly, an essential step in entering any new field – particularly one as complex as software engineering – is to learn from people already working successfully within the industry. Finding yourself a mentor is important, not for receiving “on-the-spot advice,” but to help you gain understanding, direction, and control of your career.
What Makes a Good Software Engineer
One might assume that the top criterion for being successful as a software engineer would be something like, “has been taking apart and putting back together computers since age seven.”
Not so, according to the experts, we asked. (In fact, having a lifetime of familiarity with computers was not mentioned.) Instead, Ong said that someone who would thrive in this industry would need to have strong skills in communication, teamwork, problem-solving, and a tendency to be “meticulous.”
Software engineering expert and Skills Union lead instructor Edison Zhuang cites the RIASEC personality test, whose results show that “the investigative and conventional type” will succeed in hard skills. However, he adds, “In my hiring journey, I am always interested in exploring how a candidate will think through a problem.”
Zhuang says that some positive “thought processes” that indicate a person will be successful in software engineering include:
- Making assumptions and then testing against the assumptions as a form of troubleshooting
- Defining the scope of the problem–this will “break down a large problem into granularity,” Zhuang says, making it easier to solve by focusing on individual components
- Taking an approach to problem-solving that remains conscious of “the trade-offs of the proposed solutions”
Zhuang says that a good candidate for a job in software engineering understands that there are no perfect solutions. “Every solution comes with its pros and cons,” he says. “If a person can understand the pros of cons in a given solution, they will understand their game.”
The Need for a Diverse Perspective
Despite conscious efforts by many big players in tech to recruit and foster a diverse workforce, the industry remains male mainly. It also lags behind others in its representation of people of colour. Our experts agreed that this was an issue. Still, they were emphatic that there is room for women and people from all ethnic backgrounds within software engineering (and the tech industry as a whole) and that their perspectives are much-needed and valued.
“As in most jobs, it is always important to have diversity,” Ong says. “Women and other under-represented groups can have very different problem-solving approaches at times – and in this field, it is important to learn from one another.”
Zhuang said that women who were considering careers in tech, but might feel held back by under-representation, should “not forget that software development began with a bunch of women from NASA.” He acknowledges that there has been a shift towards the industry being heavily male but stresses that he has “met great female engineers and architects in my professional life,” whom he states he would be happy “to follow.”
Ong agrees. “I would encourage women and minorities interested in our industry to just try it,” he says. “Don’t be afraid to be the odd one out.”
There’s a saying about folks who work in tech: “Your odds are good, but the goods are kind of odd.” If you are interested in becoming part of this booming industry, there’s a good chance that you’ll find your niche – whoever you are and wherever you are coming from.