Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.

Roadmap · Foundations

Programming foundations (C++)

Free

For someone starting from zero, or self-taught with gaps, who wants to write code a team can trust. By the end you write, test and ship small programs in Python, JavaScript, Java, C++ or C#, use Git and the terminal daily, and can reason about memory, data structures and the cost of your code.

Curated by Tauseef Fayyaz6 stages, 52 topics~14 months at a few hours a week

By the end, you will be able to

  • Write and debug a program of a few hundred lines in your language without a tutorial open
  • Use the terminal, Git and GitHub for commits, branches, pull requests and recovering from mistakes
  • Choose a fitting data structure for a problem and state the Big-O of your solution
  • Refactor messy code into small, well-named units with unit tests around the core logic
  • Ship two documented, tested projects on GitHub that you can walk someone through line by line

The path

6 stages, in the order to learn them. Open one to start.

  1. 1Your first languageLearn modern C++ properly: types, control flow, functions, references, std::vector and std::string, and how compiling works. C++ shows you what the machine is doing, which makes it slower to learn and very rewarding.8 topics · ~4 months
  2. 2Command line and GitGet comfortable in the terminal and put every piece of code under version control. This is the tooling every team assumes on day one, and it protects your own work from now on.8 topics · ~4 weeks
  3. 3How computers run your codeUnderstand what happens below your code: bits, memory, the CPU, compilers and interpreters, and the operating system. Enough that bugs about memory and numbers stop surprising you.9 topics · ~2 months
  4. 4Data structures and Big-OLearn the handful of structures almost all code is built from, and how to reason about the time and memory a solution costs. This is what separates code that works from code that still works with a million rows.10 topics · ~3 months
  5. 5Object-oriented design and clean codeOrganise programs so they stay readable as they grow: classes where they help, separation of concerns, small functions, tests first on the logic that matters, and documentation someone else can follow.10 topics · ~2 months
  6. 6Build and ship your first projectsTurn skills into finished, shareable work: small programs that solve a real problem, with dependencies managed, tests on the core logic, a README and a history of honest commits.7 topics · ~3 months

Picked from the other libraries by shared topics.

Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.

  • 1:1 Mentorship
  • Fresh Graduate Mentorship
  • Career Guidance

Brand deals, promos and partnerships: tauseeffayyaz@gmail.com