A Project Based Software Development Academy for Africa
The Africa Code Academy was formed to bring advanced technical training in Africa to develop local talent to enable them to be successful and thrive in the local economies. With the rapid rise in availability of high-quality “learn to code” resources online and IRL, the need for yet another coding bootcamp is not as acute as in the past. Furthermore, our goal is not training is not for its own sake but to identify and produce effective engineers. And in this case, we would distinguish between a programmer and an engineer, which ties to our motto of not just “Learn to code” but “Learn to Ship”.
Why and Where in Africa?
When weighing what opportunities exists today for a talented young aspiring engineer across the globe, it became clear that for many countries, even in the developing world, the brightest students in places like India or China are able to rise to great success. But so often in Africa, even the for the most brilliant and talented, opportunities for growth and success are not available. And far from being homogenous as a continent, opportunities are also quite unequally distributed. Places like South Africa, Nigeria and Kenya command the bulk of opportunities for young Africans. And in smaller economies, often the greatest opportunities lie in going abroad, effectively making their home countries worse off.
Therefore our focus is on smaller economies, beginning in Botswana and Lesotho, with the hopes of reaching other neighboring countries in southern Africa like Eswatini and Namibia and beyond.
The Program: Engineering Residency Program
Our program is designed not to be a typical classroom but as an apprenticeship for practicing the work of shipping code. That means we do require candidates to have basic coding skills already, and we typically recruit third or fourth-year CS students or recent graduates. That said, we do begin the program with an “Onboarding” phase which does have classroom learning and other soft skill training, as is the case in any company, to familiarize the candidates with our company expectations, toolchain and development pipeline. Once complete, we have our team Pitch competition week, where the devs learn about developing startup ideas and creating a pitch deck allowing teams and project ideas to be assigned.
Finally, the bulk of the program, the final 12 weeks are spent in small dev teams of up to 4 devs and a designated instructor to develop a product to be demoed on Demo Day on the program’s last week.
- Week 0: Icebreaker hackathon
- Weeks 1-4: Onboarding
- Week 5: Pitch Competition
- Weeks: 6-17: Development Sprints
- Week 18: Demo Day Prep and Presentations
- Each class session is organized as multiple startup project teams.
- Each team is led by one or two instructors or Engineer Leads’ aided by Teaching Assistants.
- Leads provide software architecture & management support and code reviews.
- Teams are made up of 2 to 4 students or ‘devs’ who are responsible for the implementation and delivery of the project.
- Though we are primarily technology focused, the ERP begins in Onboarding with the foundations of integrity, respect and a growth mindset within the team.
- Soft skills of communication in both writing and speaking are also stressed.
- The technology stack is based on React and React Native development.
- During Onboarding, the devs are taught the use of essential tools like GitHub and VS Code, but also concepts like Test Driven Development and Pair Programming.
- Other topics include not just development but DevOps tools and models like Continuous Integration and Deployment.
- We have weekly presentations by the devs and guest speakers.
Training and retaining from within
- In order to continue to establish new academies, top students will be offered positions to return as Teaching Assistants
- The Teaching Assistants will also be given the opportunity to return as Engineering Lead.
Project Development and Incubation
Once projects are developed in the ERP, the leads review the implementations and business models, and the most viable are selected to be further incubated for possible launch as a startup.
Top graduates are hired to staff the project teams, and leads are selected to shepherd the project for possible launch.