Original article was published by Selorm Tamakloe on Artificial Intelligence on Medium
Can High School Coding Competitions Change Africa’s Future? A Conversation with Joel Budu
Joel Budu works in a rare subfield of the Artificial Intelligence and Robotics disciplines. He works with a team of geniuses at Wootzano who build electronic skins for robots so that robots can sense and feel like humans do with their own skin.
A pivotal point of transformation in Joel’s journey into becoming a Machine Learning Engineer was his participation on 2 occasions at the International Olympiads for Informatics (IOI), the world’s most prestigious computer science competition for high school students.
In this year’s IOI, the first participant from an African country to show up on the score list was from Egypt, ranked 57th out of the 341 competitors, and the second African participant to appear was from South Africa at the 109th place. Only 5 out of Africa’s 54 countries participated — even though this year’s edition was held online, requiring no flight and accommodation fees for participants. The numbers and rankings are obviously making it clear that Africa’s participation in this brain-building competition needs to be reviewed.
I jumped on a call with Joel to have this conversation, and here are his thoughts.
How did your journey into computing start?
I was introduced to computers at a very young age. My dad had a computer in our home study when I was about 6 or 7 years old. It was a very old computer that didn’t have a Graphical User Interface — it only used MS-DOS. Interestingly, it used a 5 and a quarter inch floppy disk which I’m sure many readers may not have seen before. My brother and I liked to use it for very educational games that tested our maths and reasoning skills.
I went to high school at Mfantsipim and joined the school’s Computer Club. Most of what we were doing at the time I joined was on networking and operating systems. That was where I got introduced to the Ubuntu operating system and the Open-source computing world.
One of the members of the Computer Club back then, who was a year ahead of me introduced me to computer programming in QBasic. I really got intrigued at QBasic because it offered me a glimpse into the possibilities of creating the text-based DOS games I used to play growing up. It was a lightbulb moment for me when I was able to create my first program — a simple program that would ask for a user’s name and print it back to the user. My hunger to learn more led me to read more about programming in QBasic and exploring all the things that I could do with that language.
How did you get to hear about the International Olympiads in Informatics?
An announcement was made at the Computer Club on one occasion, that there was going to be a competition organized by the Kofi Annan Center of Excellence in ICT. The goal of the competition would be to get selected high school students from Ghana to represent the country at the IOI. I had been playing with QBasic for some time and was excited to give it a try, but I had doubts — feeling that the country was probably going to have many better coders than me. I eventually decided I would give it a try regardless.
They sent us some entry application questions and said we would need to use either QBasic or Ruby to solve those challenges. I quickly took to learning Ruby, knowing it would be required of me if I wanted to make any progress in the competition. My submitted solutions were accepted and I was shortlisted to attend the in-person competition at the Kofi Annan Center of Excellence. That test took perhaps 2 or 3 hours. You could sense the anxiousness around as contestants waited for the winners to be announced. My emotions were mixed with surprise and excitement when I heard my name declared as the overall winner of the competition, heightening even more when I was presented with a laptop as part of the first-place prize package.
The top 4 competitors were selected to represent Ghana at the IOI which was going to be a couple of months later from the national level competition. They took us through an intense period of training for months where we would come to the centre in the morning, be taught for a number of hours, then have lunch, then get more training, then come back home to get ready for the next day’s training. That was where I first learnt how to code in C. We were taught how to use the various Linux distributions, got introduced to algorithms, data structures, number theory, the complexity of programs, and optimization techniques. They equipped us and guided us in solving many past IOI questions. That was the very first time Ghana entered the IOI — the 2008 edition of the IOI, held in Egypt.
How was the experience competing in the IOI?
In terms of performance, we did not come out top 100 or something close, to be frank, but I believe we put in our best and represented our country among the greatest on the globe. I had the opportunity to participate in the subsequent year’s edition which was held in Bulgaria, in the year 2009.
Apart from the competition itself, the experience of meeting participants from different countries and connecting with people from all over the globe was such a unique one. I made friends from Nigeria, Canada, Egypt, Argentina, to mention a few. I am still in touch with some even though it’s been over 12 years. Many of them are now working with prominent companies and some have started their own tech startups.
Anyone who participates in the olympiad wouldn’t find it difficult getting into the prestigious FAANG (Facebook, Amazon, Apple, Netflix, Google) companies. The skills recruiters would be looking out for in a technical test are typical in competitive programming competitions such as the IOI.
Did those two experiences change anything in you?
The competition sculpted my mindset. I began to spend time considering how the codes I write would perform in terms of runtime, should the application scale up. It is something that many people tend not to pay close attention to. Whether it be a query to a database or a backend logic, those optimization skills are really useful in shaping one’s programming style. No one writes algorithms on a daily basis for work, but having the training on algorithms and data structures in an intensely competitive context matters and certainly changes something in you.
In my current role, in a robotics company, every single millisecond counts, because data is processed in realtime and unoptimized code can be a glaring flaw in a system.
What would change if we had more coding competitions in Africa?
I do believe that Ghanaians or Africans, in general, are really really talented. I also believe that we are seriously underrepresented in the global technology sphere. One of the ways to deal with this underrepresentation is to promote these competitive programming challenges.
You can organize Hackathons, but Hackathons only do certain things — in the most minimal case, an MVP prototype. They don’t have any specific focus on the detailed aspects of logic and technical optimization that competitive programming challenges are particular about.
A participation in the IOI is an experience an African can put on his resume that could change his/her life forever. George Hotz, leader of Comma AI doesn’t have his recruitment team looking at your university degrees or qualifications, but rather on your representation in the world of programming challenges, and your GitHub stars. It is about proving that you are capable of solving problems, not just your accreditation to an institution.
What then would it take to effect this change?
The Kofi Annan Center of Excellence did a great job, and competitive programming needs to be promoted some more, just like we have regular local competitions like the National Science and Maths Quiz in Ghana.
You need a lot of years of preparation to actually make it at the global level in the IOI. People prepare for years, training right from very young ages and even competing multiple times to enable them progress higher through the ranks.
We need the tutors as well, especially people who have participated in the competition before. It is one thing learning computer science academically and another learning computer science for competitive programming. Competitive programming is a sport and requires some different skill sets. I would love to train some younger Ghanaians to participate in upcoming IOIs.
The greedy solution to a problem is not going to get you anywhere in the IOI. You can try to do something based on how you feel the problem can be solved, but there is always an optimised algorithm that you need to find to get the highest score possible. Scores are given based on optimization — the more you optimize, the more points you get.
Holding a National competition would do some good in certain areas. Firstly, it is going to raise some awareness. With prizes and awards in place, students are going to be motivated to take the challenges seriously. A student serious about the competition would start preparing right from JHS or even earlier so that by the time they are in SHS, they are better equipped for the competition.
What are your final words?
Believe in yourself. I never thought that I would ever get to represent an entire country in a global programming competition.
Be confident in being a Ghanaian and African. Know that you can rub shoulders with anyone from any part of the world, whether the person is Chinese or American. In my current workplace, I am working with people who are geniuses, holding patents and all, but here I am working with them.
I recently discovered that the Director of Microfabrication for Elon Musk’s NeuraLink is actually a Ghanaian who studied at the University of Cape Coast (UCC). Here is someone who went to a public university in Ghana, now working with Elon Musk. That gives some inspiration that we can also make it.
There is really no limit. By the grace of God, I have come this far and I believe there are many more greater heights for me. There is nothing that is stopping you from achieving yours.
If you are reading this, I believe you can make it.
Nominate someone for me to interview.
Shirley Nzeh. I met her very recently, she’s one extremely gifted Ghanaian who is passionate about her quest to create a culture of enablement on the continent. She is empowering the youth to create opportunities for a brighter future in Africa. She spearheads a movement designed to impact lives and shape the minds of young people.