Software engineering can be a daunting field. It’s filled with many moving parts, new technologies and interesting challenges.
But it can also be exciting, rewarding and a means of cultivating immense personal growth.
Our Software Engineer, Coezette Sibanda knows all about it. Going from a graduate in Mechanical Engineering to orchestrating the development and design of complicated applications that are changing enterprises for the better. He has certainly had his fair share of challenges.
If you’re thinking about becoming a software engineer, or are already on your way there – here are four pieces of advice for aspiring software engineers to keep in mind on that journey:
- Explore different fields;
- Become a problem solver;
- Be adaptable;
- Keep on top of industry trends.
4) Explore, Explore, Explore Some More
“Explore the different fields as much as you can, so that you can identify the one that you’re most interested in and then develop your skills around that.”
One of my worst mistakes was trying to make the career shift from mechanical engineer to software. I spent quite a lot of time just trying to apply for roles. I would literally spend so much time, up to 5-6 hours every day, just trying to apply for jobs and perfecting that job application. Trying to perfect my CV, trying to perfect my interviewing skills.
All of which are important. But in my experience, that’s not as important as focusing on actually getting the skills.
This is a very interesting field in that your skills matter most. So it’s better for somebody looking to make a career shift, to identify which part of software engineering they’re interested in. Because it’s so diverse. Like there’s front-end and there are so many different technologies and frameworks that you could focus on.
So try to explore the different fields as much as you can and identify the one that you’re most interested in and try to develop your skills around that. Work on personal projects, work on your certifications, just work on improving your skills. When you have that, you get to a point where you have to put minimal effort into applying for jobs. Your skills speak for themselves.
I’m now actively declining offers, which was totally not the case back then.
3) Problem Solving Skills.
You need to develop your problem solving skills.
It’s all you’re really doing at the end of the day. Solving one problem after another. Even developing a new feature for an app is a whole sequence of problem solving steps all along the way.
In software engineering, there is a great need for solutions that not only need to scale and work efficiently, but also need to be capable of taking advantage of future technological advances and changing needs of the users. All of the successful and lasting applications that you and I use tend to change often, e.g. adding new features or improving performance.
The kind of solutions you develop as a software engineer need to take that into account. You need to create solutions that can, with minimal effort, allow you in the future to make improvements, scale appropriately, add new features and take advantage of new technologies.
To develop a knack for this kind of problem solving, I strongly suggest reading. While a lot comes from practical experience, it’s easy to get stuck in the trap of just pumping out solutions that “just work”. Even if they are not that efficient. You’ll find the more you read books, case studies, documentation, etc, the more you start to naturally adopt best practices and different means of approaching and addressing challenges in this space.
Work on developing a mindset that allows you to learn quickly and adapt with new tools, languages and processes.
More often than not, you’re going to have to implement something in a completely different program language or completely different framework that you’ve never seen in your life. That’s just the nature of the business.
So you’ve got to develop that skill or that mentality to just be able to dive into something completely new and learn it on the go and implement it fast. It should be something that people need to be comfortable with if they’re going to survive in this field.
It’s diversifying as well as ensuring that you up-skill in the right direction and you don’t become obsolete.
1) Keep On Top Of Industry Trends.
It’s very easy to become obsolete in this field. My role in front-end, for example, has me using things like Flutter, which is a fairly new framework being under 5 years old. The field is constantly changing. I didn’t even start with Flutter, I started with native.
Although most enterprises have their own tech teams, they tend to be masters in their own native frameworks.
When we say native, it means having separate people developing an application for the different operating systems. One team developing for iOS, and a separate team developing for Android.
That’s quite resource intensive. Whereas with Flutter, which is a newer framework, everything is much easier for companies and developers by combining everything into one platform. So instead of having two separate teams, you have just one team and one framework to build for both platforms.”
“I’ve realised that native will probably become obsolete. Eventually you will have more and more companies just letting go of the native development mentality and opt for hybrid. It’s cheaper. It’s faster. And it’s, it’s all the good things that native is not.”
Become A Better Software Engineer
If you’re looking for a place to keep up with industry trends and advice on all things AI, digital transformation and all things tech, make sure to follow our blog.
Also feel free to connect with Coezette! Let him know if his advice for aspiring software engineers resonates with you!