I hail o.
Thank you for your question.
In my opinion , For a young African developer to make it into the Google engineering team is not impossible, in fact its very far from it.
Really all you need to do is to focus on the fundamentals of computer science.
Many of us (myself included) because of the way we learnt to code (self taught using the "do it until it works" method) , we end up knowing HOW without knowing WHY.
A crude analogy would be comparing a roadside BMW mechanic to an engineer in a BMW accredited shop.
The roadside mechanic learnt his trade by trial and error and even though he/she may become quite good at this trade, he will always be stumped when he comes up against a new type of problem and will have to go through several trials to get it right.
A engineer in the accredited shop on the other hand has a mental model of the car engine in his/her head. So even when he or she is faced with a new problem they can immediately come up with several possible solutions without a lot of pain
Bringing it home, because we do not focus on the basic fundamentals of computer science:
i.e. data structures (when do you use a hashmap versus a treemap ), sorting algorithms , scheduling algorithms etc. How does computer memory addressing work? etc We find that even though you as a developer can build an awesome looking web app that has all the functionality, what happens when 1 Billion people try to access that website all at once and you find out that the default implementation of sorting in Java is not fast enough...? what do you do?
In summary, even as we learn how to build apps, we should also focus on learning about WHY the apps we build work in the first place.
Some of the ways to do this include:
- Going through and practicing various algorithms tutorials (there are a zillion on the web)
- Exploring and participating in open source projects(My favorite)
The later option can include something as simple as picking your favorite web development framework (e.g. Cake PHP or Django) and browsing through the code.
You will be amazed what you will learn.
Most engineering companies like Google and the like have interviews that test you on these basics. The more you use them in practice, the better your chances.