Two years ago I graduated with a degree in electrical and electronic engineering. During my final year, I realised that I was more passionate about software engineering than I was about the electrical kind. I decided that I wanted to pursue a career in development, so I committed to finding out more about the dev industry and upskilling myself. Here’s how I approached the transition.
I have been working as a data developer for two years now, but this wasn’t always my first career choice. I initially set out to become an electrical engineer with dreams of creating ingenious systems and working on cool projects.
With this dream in mind, I set out to study engineering at Stellenbosch University. However, during my final year, while working on my thesis project, I realised that building cool things in electrical engineering meant that you needed to source very specialised parts, have access to expensive equipment and be extremely careful about every detail.
As someone who loves building systems and not being tangled up in red tape, this high barrier to entry and slow turnaround became a deal breaker.
However, the one aspect that I really loved about my degree was the programming. As an electrical engineer, you need to learn to code, and I enjoyed this part because:
- There’s a low barrier to entry to start building projects. All you really need is a laptop and an internet connection.
- The building blocks of any projects are code, and thus are instantly available.
- The testing of your work can be done in a simulated space. There’s no need for a physical one.
- Developers belong to a large community and support each other in their learning goals.
I thought about it for a while, and then decided to bite the bullet and start looking into how I could pursue a career in software development. While this was exciting, it was also scary as there were many unknowns and a lot of upskilling I would need to do before I could work as a developer.
Two years down the line, I am working for Ringier AG, a Swiss media company, as a developer. I’m loving the work and the data-focused path that I chose. I learned many lessons during my transition from engineering to development, and in this article I’d like to share the steps I took to help anyone considering a similar change. Some of these include:
- Talking to developers in the community
- Doing focused research on potential development paths
- Getting your hands dirty and upskilling your coding abilities
- Shifting your mindset to fully embrace the change
Here’s how I approached these steps and how they set me up to succeed.
Talking to developers in the community about their experience
Before I was ready to commit hours of my time to researching what working as a developer was like, I decided to reach out to some developer friends of mine to hear more about their real-life experiences. I also felt that talking to the right people first would help me narrow the scope of my research that would come later.
I wanted to make sure that I was getting the most out of every conversation I had, so before I reached out to anyone, I mapped out a plan for how to approach the chat. Some of the things I did to set myself up included:
- Working around the person’s schedule to make it as easy as possible for them to make time to talk to me
- Preparing questions before my conversations
- Explaining my context and background before launching into my questions
- Take notes to look back on after the conversation for reflection and deeper research
I tried to talk to as many people as possible in the dev industry, connecting with people in my immediate circle, as well as ‘friends of friends’. Talking to people helped me get a better picture of various development fields and the types of work, tools and skill sets used in each.
The people I spoke to also helped me gain new insights into company cultures and day-to-day activities of developers working in South Africa. These insights helped me think about what to research – and much of what I learned, I wouldn’t have thought of myself.
Doing focused research on potential development paths
After having learned more from other devs, I had a clearer picture of the development world, which helped the initial ocean of information turn into a more focused channel of data for me to analyse.
Equipped with what I’d learnt from other devs, the focus of my research became how I could form my potential developer identity, and find further insights that would help me take practical steps forward.
Some of the steps I took to do this included:
Spent time thinking about where my interests lay
From my engineering background, I knew that building operational pipelines and drawing value out of data to identify trends was something that really interested me. These two areas were still pretty massive, so it was important for me to narrow down what I was researching about them as quickly as possible, so that I could get on the path to finding a job.
Took the research time seriously
If you’re going to commit to changing career paths, I learned that you need to make the time to do the research. The best way I found to avoid analysis paralysis was to set specific times for research, as well as topics to look at during that blocked off time.
Considered multiple sources of information
With a focus area in mind, I found that looking at different sources helped me learn about it in different ways. There were a lot of different mediums I used to find answers, including blogs like OfferZen’s and Medium, forums like Reddit, Q&A sites like StackOverflow and Quora, people’s posts about personal experiences on sites like LinkedIn, and videos on YouTube.
What I learned is that research will evolve as you find out more information, but having a clear way to track what you were initially searching for, as well as your progress, is a good way to keep your research efficient and help you stay motivated along the way.
For me, a good way to do this was to keep a document where I tracked everything I had learned from the first day I committed to seriously pursuing this option, all the way to when I felt ready to start sharpening my practical skills.
Get your hands dirty and start coding
After I had made up my mind about the specific career path I wanted to pursue, it was time to get my hands dirty and start upskilling in the required languages and toolkits.
Personally, on-demand online video courses worked well for my learning. They were affordable, easily accessible, and allowed me to move at a self-set pace.
When picking which online courses to do, I made a list of courses to compare against each other by looking closely at the course material, reviews, and teaching styles. These courses cost time and money, so taking the time to find the best fit was worth it.
Here are a few of the trusted online resources I considered when looking for courses:
YouTube became my favorite platform to explore new concepts, because all the videos are free and the recommendations of similar videos and topics are really good. Similarly, Udemy was my favorite platform to learn entirely new concepts. The courses on the topics I was focusing on were well-structured and set up in a way to build your knowledge from the base up. They also included additional questionnaires and practical resources to get to grips with new tools and ways of thinking, which was useful for me as someone who was still getting to grips with core development concepts.
Pro-tip: I found it useful to have a debrief when I completed a course and look at what I had learned and what my next steps to advance needed to be. Some questions I asked myself during these debriefing sessions included: “Do you need to do more courses on this topic?”, and “Should you try a coding project to test your abilities?”
Once I had answered these questions, I had a better feeling of where I was at in the learning process. It let me make a more informed decision about which courses to look into next, or which skills I needed to apply in a more practical way – for example, by working on a coding project.
Getting into the right mindset for interviews
Once I felt confident enough to start applying for jobs, I had to tackle the hardest part of my transition: Reflecting on why I had undertaken this journey, and fully wrapping my head around the change I had made.
A question that came up a lot in early interviews was how I started coding, because I did not study a traditional coding degree at university.
To answer this question confidently, I needed to understand for myself when, why, and how I got into this specific line of development. I also needed to be able to validate my coding abilities by explaining – and demonstrating – what I had studied and practised while upskilling myself.
To prepare for my interviews:
- I wrote down a draft answer for why I moved into development, and what I enjoyed about my chosen path – data development.
- I re-reviewed the courses I did, making sure I could list and explain the core concepts of my learnings.
- I brushed up on my coding by redoing some useful practical exercises from courses, and finding more practice examples to do online that were related to the specific job I was applying for. HackerRank has a lot of great resources for this.
- I reviewed some classic interview questions that I found online, and made sure I could answer them well. For example, “Why do you want to work for Company X?”
What helped me in the final step of getting into the right mindset was to look back at my coding journey, the conversations I had had, the research I had done and the courses I had taken, and let those milestones be the points that validated my journey and my identity as a developer.
My key takeaway from this experience is that life is short and you need to spend it doing what you love best. Everyone’s journey to making a change is different, and for the most part, paths are undefined. To really set yourself up well to make your journey worthwhile, you need to constantly check in with yourself and make sure that you’re doing the right things to achieve your goal.
Wium is a data developer working at Ringier AG in Cape Town. He believes that learning is a life-long process, and is always looking for ways to keep his skills sharp. When he’s not at his computer running code and checking reports, he’s probably outdoors running trails and playing sports.