Focus Track
Competitive & Open-Source Coding
Sharpen algorithms for contests and build real impact through open-source—grounded in South Africa’s student community.
Competitive Programming
- • Know the constraints: time, memory, and input sizes.
- • Data structures: arrays, hash maps, heaps, trees, graphs.
- • Complexity: target O(n log n) where you can; avoid unnecessary overhead.
- • Practice ethically: no cheating, no sharing solutions from active contests.
- • Test locally with edge cases; read problems carefully before coding.
- • Practice sources: past contests, campus problem sets, peer review sessions.
Open-Source
- • Git basics: branches, commits, pull requests, and code review etiquette.
- • Issues and roadmaps: pick beginner-friendly tasks; ask clarifying questions.
- • Licenses: MIT/Apache/GPL high-level awareness; respect project choices.
- • Write small, focused changes with clear descriptions and tests.
- • South Africa: contribute to civic tech, student tooling, and local OSS meetups.
Tools & Habits
- • GitHub/GitLab for repos and issues; CI for tests.
- • Linters and formatters; unit tests and integration tests.
- • Languages: TypeScript, Python, C++ for contests and OSS.
- • Templates for contest I/O, and snippets for common patterns.
- • For SA internships: show clear repos, READMEs, and small shipped features.
Contribution Guide (Example)
# Contributing
- Discuss the issue first in the thread.
- Keep PRs small and focused.
- Include tests or examples.
- Be respectful in reviews and respond to feedback.
- Document any breaking changes.
Etiquette
Be respectful in reviews; ask for clarification; keep changes small and reversible.
Safety
Do not share contest solutions during or after; honour rules of each platform.
Portfolio
Highlight SA civic-tech or campus tools; document impact and lessons learned.