My programming story
Everyone’s journey into tech is different. Here’s how I discovered programming, fell in love with it, and turned it into a career I’m truly proud of.
Some context
Right after I finished school, I got an apprenticeship to study and work as an automotive machinist in Mossel Bay. My family couldn't afford for me to go study for a degree, so this was at least something I could put to my name in terms of education. I worked there for about two years, only to realise that I was learning so quickly that the job started to become boring. It just wasn't interesting anymore, and my back and oily clothes only added to the feeling that I might need to look at changing career paths.
In early 2020, my father-in-law got a promotion at his job, but that required him to move from Mossel Bay to Johannesburg. As you might guess, automotive machining doesn't pay so well, so we stayed with my parents-in-law. This meant that my wife and I had to move with him. Just as we arrived in Johannesburg, COVID started. That meant no jobs, no interviews, just sitting around in the house with nothing to do. I then realised that I would rather spend my time learning something instead of just waiting until the pandemic was over. I started purchasing Udemy courses from Dr Angela Yu, mainly her Full Stack Web Development course and her 100 Days of Python course.
I fell in love with programming immediately
The thought of having the power to digitally create anything I wanted was amazing. The courses were challenging, as I didn’t reference Google or Stack Overflow when I got stuck—I just went back to some of the videos that Dr Angela posted, and then tried to figure it out as I went. I've always been an IT tinkerer, so it was more fun and addictive than playing video games to me.
I started to get the hang of JavaScript, CSS, and Python, and immediately started building random small projects to see what I could automate—all while still not being able to get a job. Programming made sense to me; it was as if I was meant to be a programmer, since I was always the odd one out in my family, and I don't like going to parties or hanging out with friends.
Some hope
An uncle of ours heard that I was teaching myself how to code, and then he asked if my wife and I would consider moving to Stilbaai to help him with his small business. I would mainly build websites with WordPress, do server management, and assist with emails (oh, how I hate emails), and my wife would do real estate photography as well as social media management for clients.
After some thinking, we decided to pack our car with as many belongings as we could, and we drove 1,400 km to Stilbaai (where some of my family also lives). It was my first job in the tech/agency industry, so I was a little overwhelmed and nervous, but that quickly changed as I started to get really confident in my skills. As with my automotive machinist job, I got bored really quickly and started to write some automation scripts to help me do my work more efficiently. The business owner saw my potential and started asking me to build a few custom projects for internal use—which I absolutely loved doing.
My first production project
Within a year of helping our uncle with his business and trying to get my feet wet with my programming skills, a client asked if I could help them build an integration service to automatically sync their real estate listings from Property24 to their website—including when listings are added, updated, or deleted (their agent profiles also had to stay up to date, of course). Nine months of development work later, the project was done.
I purchased a DigitalOcean Droplet, pulled my Python code from GitHub onto the server, and added the script’s run command to cron—and it worked! I immediately got an adrenaline rush, and started thinking about how I could improve the code. My Python script is still running to this day (it’s been about three years now), where I’ve only had to do some minor updates and maintenance as WordPress updated. That project really gave me the motivation to learn more languages and frameworks and to just try and solve real-world problems.
Ongoing learning
As time went on, I continued learning new languages and frameworks in my own time, such as React, Next.js, TypeScript, Django, and so on. I also built over 100 projects, most of which were automation scripts. Then, one day, I got a call from a distant family member who’d heard how much effort I was putting into this programming thing. She said that she would be willing to pay so that I could study part-time for a Computer Science degree at UNISA. She said that she only had one rule: "One day, you have to give someone the same opportunity." I couldn't believe that I would finally get the chance to study for a formal degree after years of being out of school, and I was so excited for what was coming. I would be the first Schoeman in our generation to have a degree!
Level up
After some more time passed, while I continued learning and building cooler stuff, someone reached out saying that they needed admin logins to one of our client's websites. I was really reluctant and asked the person to rather meet at a coffee shop in town so we could discuss why he might need it (usually when someone asks for admin logins, it means that the person will try to take the hosting away from us). After talking with the guy, it seemed that he only wanted access to the website so he could set up conversion tracking in order to run Google Ads for the client.
But as I was talking to him, I couldn't help but notice that he didn't have a dedicated developer. I then took a shot and asked him about it, and he told me that they needed one and that I should send him my CV. A few weeks, emails, and a lot of stress later, I got an interview—and aced it. They offered me three times more as a junior than what I was currently getting at our "family business". They said that they didn't know what my skill level was yet, and that I would be assigned as a junior developer for three months, after which they would assess my performance and put me in the right position. Three months later, they promoted me to a mid-level developer, as they were really impressed by what I brought to the table. I immediately recognised a lot of inefficiencies in the way they hosted internal websites, offered solutions to their problems, and asked if I could take ownership of that. I then also got assigned the roles of Data and Tracking Specialist, Server Administrator, and Security Advisor.
I took the chance to show them what I am capable of, and spent some personal time building internal tools for them so the team could save as much time as possible. They loved it. They loved it so much that the two CEOs overwhelmed me with project ideas they wanted me to build. After loads of meetings and brainstorming, we made a shortlist, and I started working on the projects.
Where I am now
We now have multiple servers hosting multiple projects and internal websites, and I recently built a SaaS project that changes the game in terms of SEO for our clients. With all my tinkering and curiosity, I’ve gained experience in all kinds of disciplines and fields, like VPSs, self-hosting, website tracking via GTM and custom coding, WordPress and Shopify development, Django, Next.js, and many more.
I'm really happy with how everything turned out for me, and I'll continue to learn, build, and grow in this industry. Studying part-time and working full-time is really, really hard—but I try to push on and make the best of this opportunity, as I believe that that piece of paper will really benefit me one day. Also, with all the AI hype these days, the thought of changing career paths crossed my mind again, but after trying it out for some time, I realised that human developers are still here to stay. I'll use AI at work to ship faster, but I refuse to use it in my personal time, as I feel that it makes me lazy and degrades my problem-solving and critical thinking skills. It's also a really nice tool to get an MVP out so we can test whether it would work for us or not. I already frequently get AI-coded projects that people want me to fix and push to production, so that's also fun.
If you’ve read this far, then thank you—I really do appreciate you taking the time to read my programming story, and you can reach out to me at any time if you just want to chat. It doesn’t have to be about programming; it can be about sim racing, heavy metal music, coffee, or just whatever you prefer. You can pop me an email at francois.schoeman15@gmail.com any time.