Glossary, Learning Sequence and Further Reading
References for further study and the course glossary.
Glossary
Artifact: output file/package from a build or pipeline.
Build graph: dependency graph used to schedule build actions.
Build system: tooling that defines and executes build tasks.
Cache key: identifier used to determine whether a stored result matches an action's inputs.
CI: continuous integration.
Commit: named snapshot and metadata in version control.
Cross-compilation: building for a target different from the build host.
DAG: directed acyclic graph.
Dependency: input or prerequisite needed by a task or component.
Hermetic build: build constrained to declared inputs and controlled environment.
Index: Git staging snapshot for the next commit.
Incremental build: rebuild only invalidated outputs.
Lockfile: record of resolved dependency versions/integrity data.
Merge: integration of histories, often using a common ancestor.
Object ID: hash-derived identifier for Git objects.
Provenance: evidence describing where and how an artifact was built.
Rebase: replay commits onto a different base.
Reflog: local record of reference movements.
Reproducible build: build whose output can be recreated bit-for-bit under defined conditions.
SBOM: Software Bill of Materials.
Staging area: Git index containing the next commit snapshot.
Target: named output or task in a build system.
Toolchain: compiler and related tools/libraries.
Trunk-based development: frequent integration into a shared mainline.
Version control: system for recording and coordinating change history.
Recommended Learning Sequence
Understand source → compiler → artifact.
Draw dependency graphs and explain incremental builds.
Complete the Makefile project.
Build the same project using CMake and Ninja.
Learn the basic Git working tree/index/commit cycle.
Practice branches, merges, conflicts, and remote collaboration.
Inspect Git objects and practice safe recovery.
Learn dependency lockfiles and build variants.
Add CI validation and artifact retention.
Improve reproducibility, provenance, and supply-chain security.
Complete the embedded/cross-compilation exercise if relevant.
Finish all capstones and the advanced incident investigation.
Course Completion Criteria
A learner should be marked complete only when they have:
Completed the foundational and advanced lessons.
Passed module quizzes using the configured pass threshold.
Completed at least one Make/CMake build lab.
Demonstrated safe Git branching and conflict resolution.
Diagnosed a build or history issue with evidence.
Built a functioning CI pipeline or completed a guided simulation.
Explained dependency pinning, reproducibility, and artifact verification.
Submitted a capstone with build instructions and test evidence.
The UI may allow learners to revisit lessons at any time. Completion should be based on actual recorded progress, not merely on opening the final page.
Official Documentation and Further Reading
Use official documentation for version-specific behavior and production setup:
Git documentation: https://git-scm.com/doc GNU Make manual: https://www.gnu.org/software/make/manual/
CMake documentation: https://cmake.org/documentation/ Ninja project: https://ninja-build.org/
Bazel documentation: https://bazel.build/ Apache Maven: https://maven.apache.org/guides/
Gradle documentation: https://docs.gradle.org/ npm documentation: https://docs.npmjs.com/
Microsoft MSBuild: https://learn.microsoft.com/visualstudio/msbuild/msbuild
Python packaging guide: https://packaging.python.org/ Rust Cargo book: https://doc.rust-lang.org/cargo/ Go documentation: https://go.dev/doc/ Git LFS: https://git-lfs.com/
Always verify the supported versions and exact command syntax for the tools used by your project.