Software Engineering · Beginner

Software Engineering Practices

Work in a team on real code: branches and pull requests, review that improves the code, tests that earn their keep and a pipeline that ships for you.

Software Engineering program

Lessons
6
Study time
2h
Level
Beginner
Program
Software Engineering

Sign in to open the lessons

6 lessons

Lessons, files and narration open after you sign in and buy the program. One payment opens every course in it.

Sign in to open a lesson. Buying the program opens every course and lesson in it, permanently.

About this course

There is a difference between code that runs on your laptop and code a team can change for years. This course is about the difference: version control used properly, review that improves code rather than scoring points, tests that catch real bugs, and automation that ships for you.

You will work the way a small professional team works — a branch per change, a pull request with a clear description, a review conversation, tests that run on every push, and a pipeline that refuses to ship something broken. The course is deliberately opinionated about the habits that prevent 2 a.m. incidents.

The project takes a deliberately messy folder of code to a reviewed, tested, automatically shipped application — the same journey a first job will ask you to make.

Who this is for

  • You are the only person who touches your code and want to be useful in a team.
  • You have been asked to 'add tests' or 'do a code review' and are not sure what good looks like.
  • You are applying for a junior role where the interview includes a take-home task.

Before you start

  • You can build something small in any language and push it to GitHub.
  • A laptop with Git installed.
  • Five to seven hours across the course.

Where it leads

  • DevOps & Delivery extends the pipeline to real deploys, monitoring and rollback.
  • System Design & Architecture is where these habits meet bigger decisions.
  • Employers rarely test whether you know Git; they assume it. This course makes it true and visible in your repository.

Tools you will use

Git and GitHubA test runner for your languageGitHub Actions for continuous integrationA linter and formatter configured in the project

What you will build

  1. 1A repository with a readable, reviewable history
  2. 2A pull request review with comments you acted on
  3. 3A test suite covering the code paths that break in production
  4. 4A pipeline that runs tests and lints on every push
  5. 5A previously messy project, cleaned up and shipping automatically

Curriculum

2 modules · 6 lessons · 2h

Sign in to open each lesson

01 · Working like a team

Version control, review and code that other people can live with.

1. Branches, commits and pull requests

Version control is not a backup mechanism you invoke occasionally — it is the shared memory of a team: a record of what changed, when, by whom and *why*, that lets people work in parallel without destroying each other's work. This lesson covers the object model underneath Git, how to write commits that review well, branching and merge strategies, pull requests as a review unit, conflict resolution as a routine rather than an emergency, and the hygiene habits that keep history useful six months later. The repository's log is the project's primary documentation of its own evolution — treat it that way.

20 min

2. Code review that helps

Code review is the highest-leverage ritual in software: it spreads knowledge, catches design problems no test would, and sets the standard a codebase is held to — or it is a theatre of nitpicks that everybody learns to resent. This lesson covers what review is actually for, how to submit something reviewable, how to review with a checklist ordered by severity, how to comment so people improve instead of bristle, the limits of review (and what to do instead), and the metrics that tell you whether yours is working. The goal is not approval; it is shared ownership of code that lasts.

20 min

3. Naming and structure that survives

Code is read far more often than it is written — by other people, by future teams, and by you in six months with none of today's context. This lesson covers naming (what to name, what never to name, the rules that make a name true), function and module design, the smells that signal structure gone wrong, comments and documentation written for the reader who disagrees, formatting as a solved problem, and the refactoring discipline that lets structure improve while the tests keep passing. Readability is not decoration; it is the maintenance cost of the entire codebase, written down.

20 min

02 · Shipping without breaking

Tests, pipelines, and work that fits in a week.

1. Tests that earn their keep

A test suite is only worth what it prevents: tests that catch real regressions, run fast, and stay trustworthy are the cheapest insurance in software; tests that are flaky, tautological or ceremonial cost more than they save. This lesson covers what to test (the behaviour, not the implementation), naming and structuring tests so failures explain themselves, boundaries and edge cases as first-class targets, test doubles and when they lie, fixture design, coverage as a floor rather than a goal, and the debugging loop a good suite makes possible. The goal is not a number — it is confidence that changes are safe.

20 min

2. A pipeline on every push

Continuous integration is a practice before it is a tool: every change is integrated with the main branch frequently, and every integration is verified by an automated pipeline that everyone trusts. This lesson covers the pipeline's stages and what belongs in each, the feedback loop as the unit that makes or breaks CI, caching and speed, handling failures without training people to ignore them, environments and secrets, and the deployment stages that extend the same idea to shipping. A green pipeline is the team's shared belief that today's change did not break yesterday's — and that belief is only worth what the pipeline honestly checks.

20 min

3. Issues, scope and shipping small

Most projects fail in planning, not programming: work arrives too vague to start, too large to finish, or too entangled to ship. This lesson covers writing issues that can be picked up cold, slicing features vertically into deliverable increments, estimating and prioritising with honesty about uncertainty, tracking work so it reduces confusion instead of creating ceremony, and the rituals that keep a team aligned without drowning in meetings. Shipping small is not timidity — it is the only proven way to make progress visible and risk bounded.

20 min

6 lessons, including the take a messy folder project to reviewed, tested and automatically shipped project. Sign in and buy the program to open them. Create an account to track progress and earn the certificate.

Taught by a working engineer

Selina Adjei — Engineering Lead. Every lesson is written to be used, not just watched.

A verifiable certificate

Complete every lesson and you get a certificate with a code and QR that an employer can check in seconds.

Practice in the Code Lab

Write and run code in the browser while you learn, with your work saved to your own account.

Still have a question?

Email hello@codemasterghana.com or send a message from the contact page — we answer within two working days, in English or Twi.