When you have limited resources available, deciding to make a career pivot can be tough. Tumiso Marebane discovered this when he dropped out of his previously sponsored mechanical engineering degree. He quickly realised that what he really wanted to do was code. With no qualification behind him, and the pressure of needing to make ends meet, he taught himself the basics of programming between tutoring and driving trucks. Here's how he won at this.
Tumiso grew up in a village in Limpopo. When he finished high school, he was offered the chance to study at Wits and, in his second year, he was offered a full bursary to study mechanical engineering. Even though this was not what he had wanted to do, this bursary would take a huge amount of financial strain off of his parents. In order to set himself up for something more progressive, he decided to take the opportunity.
"I was a horrible student," Tumiso says. Having not wanted to study engineering in the first place, finding the motivation to apply himself was hard. "My performance was nothing to be noted and, eventually, in my third year, I was kicked out." Failing classes had excluded him from writing exams and the company that was sponsoring him eventually revoked his bursary.
Tumiso knew that he had to contribute to his family financially, and so, with no qualification behind him, he went out looking for odd jobs.
Initially, he tutored highschool students and drove a truck for a bottle recycling company. During his degree, though, he had briefly studied mechatronics and really enjoyed it. He started thinking about programming and how he could potentially make money from it. He decided to try his hand at building basic websites and it was at this moment that a lightbulb went on:
"I'd always liked the fact that you can write something and it stays there and does what you say it should. I decided I wanted to be good at this so I started reading and creating and then recreating."
For years after this, Tumiso dedicated hours every day to teaching himself how to code. "I recognised that this could be my chance to be happy and to contribute to my family at the same time β I didn't want to suffer anymore and I found that desperation to be a great motivator," he says.
Today, Tumiso is a mid-senior developer at Superbalist, one of South Africa's most prominent tech companies. "It took a lot of hard work for me to get here," Tumiso shares. Reflecting on his journey, he attributes his success to three key factors:
- Committing to his passion
- Making smart use of what was available to him
- Learning continuously
Here's how he went about this.
Committing to his passion
"I think the hardest part about committing to anything is being sure that you actually want to do it. It's the same with everything in life β the initial love for anything is there but then what keeps it going is your decision to stick with it."
Thinking about his experience at university, Tumiso realised that he couldn't put his head down through the tough parts of mechanical engineering because he didn't have any drive for the subject matter. "I think, in essence, I didn't have the aptitude," he says. "But I also struggled very hard to do something that I didn't enjoy."
Coding was different β the challenges it presented really fascinated Tumiso, and working through them made him feel incredibly satisfied. Once he decided that coding was what he wanted to do, he set up a rigorous plan to make learning a priority. "I had given up on something once and I didn't want to do that again," he says. "I had to really take the time to be sure about this because it was going to take a lot from me. Once I decided I was sure, I had to work out how I could keep myself motivated."
Setting aside time
In between all of the odd jobs that he worked, Tumiso set aside time every day to practice coding. "I would go and sit somewhere quiet at night, take my laptop and just code. I wanted to get good."
This level of commitment meant that Tumiso lost many hours of sleep and often missed out on having a social life. He had to be strict with himself because his other jobs were physically demanding and it would have been easy to give in and go to bed early every night. Promising to look at his computer tomorrow would never get anything done, so establishing a routine was essential.
Not giving up when things got tough
Sticking to his daily plan β get up, go to work, come home, code for x number of hours β took a lot of willpower and there were many times that Tumiso wanted to give up.
"It's an odd space to be in when you don't have a fall back," he says. "There are days when you feel on top of the world and excited about what you want to do, and then there are the days when this decision seems like the worst one you could have made. Because I had changed my mind once already, I knew I had to stick this decision out."
Tumiso found that jotting his thoughts and feelings down on paper helped him a lot to make sense of things. In fact, this writing often turned into poetry. "I liked to expose myself to new ways of thinking, and consider how I could do things differently. This really helped me get out of my own head when things got tough. I found that taking this sort of break helped me reset my sense of motivation and I would come back to the problem I was facing feeling refreshed."
Making smart use of what was available to him
Initially, Tumiso started building basic websites with just the base knowledge he had picked up online, using wysiwyg tools and from his brief interaction with mechatronics. Then he stumbled upon the book JavaScript and Ajax for Dummies by Andy Harris. "I knew I liked to code from what I had learnt at university, but then I found that book, and I can't explain it... The way he described coding made me sure that that was what I wanted to do with my life."
Tumiso found the resource list that the book provided especially useful:
"I'd read a part of the book and then go and try to build something. If I failed, I'd go back to the book and check out one or two of the other links it recommended. It was a real resource finder."
Having a bank of recommended resources from someone who was an authority on the topic was invaluable for someone without guidance.
While Tumiso had found a valuable source of information, one of the problems that he faced working on an ad-hoc basis was internet access.
"I was working with a dongle most of the time and didn't have a lot of data," he says. "While I knew where to go as a starting point for answers, I would have to be smart about how I accessed these resources because using the internet was expensive."
To get around this, he took a lot of screenshots of webpages and kept careful notes. "If you looked at my computer, I had so many folders filled with my own notes and all of those screenshots β I screenshotted everything, including comment sections on pages so that I could read what people had to say without wasting money."
Asking the community for help on specific problems
Being sure to get as much detail as possible when he accessed anything that would help his learning, Tumiso got a real sense of how helpful the tech community could be. The comment sections showed him that a lot of people were willing to spend time helping others who were new or struggling with a particular topic. Reading through comment after comment, he felt more and more comfortable with the idea of reaching out when he was stuck on something.
However, because he had limited time each day to focus on coding, he realised that he couldn't spread himself too thin. When he was focusing on a particular topic, he needed to be disciplined with how he approached it. He couldn't learn everything at once, because of time and mental overload, so he decided to only reach out when he needed help on a particular challenge: "I'd think to myself, I don't want to know everything, I want to know this so how do I learn about this?"
"The programming community as a whole is very welcoming. If they can see that you're taking initiative, they will help you a lot."
This really paid off. Focusing on exactly what he wanted to know at a particular moment helped him not to get overwhelmed with information, or distracted by advice or insights that were interesting but not useful. Tumiso found that this was an important foundation to lay for anyone with limited time.
Learning continuously
Committing to the grind
In January 2018, five years after he started to teach himself to code, Tumiso joined Superbalist. He quickly saw that levelling up in a fast-paced corporate environment was very different to what he was used to.
"When I started the job, a lot of what they did was new. I didn't know the kind of tech they were using and I'd only had limited experience in a professional environment," he says. There was a lot more to learn than just practical skills.
Joining the Superbalist team, Tumiso quickly saw that the base that he had built for himself would not hold up against the mammoth requirements that the job had in store for him. He had to learn a host of new technical skills, get to grips with the complex processes that e-commerce environments work with, and adjust his mindset from working alone to working as part of a team.
To do this, Tumiso put his head down and committed to going over and beyond the 40 hours a week that were expected of him. "I admitted to myself that I didn't know things and I decided that I wanted to know them and would do whatever it took to achieve this," he says.
While this took a lot of time and energy, it was something that Tumiso was excited about. He had worked incredibly hard to get his foot in the door, and now that he was there, he wanted to keep proving that he had what it took.
That's why he decided to stay late into the night, come into the office on the weekend and use the time to practice what he had learnt, do further research and plan how he could share ideas and questions with his team when they were all together.
Constantly seeking to level up
Because reaching out to the community was something that Tumiso had become comfortable with when he was teaching himself, he found it easy to now approach his colleagues.
Sticking to the approach he had taken before when interacting with more experienced developers, Tumiso made an effort to build a base understanding for himself first and then nail down specific questions he wanted to ask.
Showing this sense of initiative helped Tumiso build a network of people that he is now able to call friends. Because he knew what he wanted from them, and because his focused questions helped them help him straight away, the dynamic between him and his colleagues was good: Approaching each other was easy and they were excited to share what they knew.
"I was very lucky - they were the friendliest people ever," Tumiso says. "They really would go out of their way β even sometimes missing their own targets to help me. I'm very grateful for them. They are my most valuable resource and knowing that they are 'on my side' makes me look forward to coming into work every day."
Setting up projects to keep learning
Just over a year into his role as a developer at Superbalist, Tumiso is still excited about pushing the boundaries. "I've found that I can't enjoy my life unless I'm moving forward. It's hard work because it means I'm always working but it's what drives me," he says.
While he is learning a lot on the job, Tumiso uses his free time to practise what he's finding hard, or else just exploring things that interest him. At the moment, he is working on building a real time chat room, similar to WhatsApp, because he was curious about what it takes to make an application like that work.
Making the time to focus on side projects can be difficult, especially when his workload gets demanding, but Tumiso has realised how important it is to remind himself where he came from and why he decided to do what he did.
"I don't ever want to feel like I have learnt everything because I know that is not true. I know that there is so much out there and I want to keep discovering. Coding got me out from behind the steering wheel of a truck and into a chair in front of a screen at Superbalist β I owe it to this opportunity to keep exploring it."