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.