> The third, Build, will teach you about how to reliably build your software with Make.
Make? In 25 years as a professional developer I have never encountered make in the enterprise.
At least cover the various generic _models_ behind a few of the modern build tools so students can understand both the commonality and the differences between say NX, NPM, Maven, Gradle, go build etc.
Makefiles are a perfect abstraction over proprietary CI/CD DSLs and commands.
As a polyglot, having to remember and the difference is awful - so I make(ha!) local Makefiles that invoke the relevant tool, the same routine concepts (lint, build, or run tests) may be "yarn foo -arg1", "npx -foo", "go bar" depending on project and tool, which gets annoying when you're frequently switching between projects.
Big tech with monorepos solve this cognitive effort using a unified build system (blaze, buck, buck2). IMHO, Make makes a decent glue system at smaller organizations lacking a compiler/build/tooling team.
Make? In 25 years as a professional developer I have never encountered make in the enterprise.
At least cover the various generic _models_ behind a few of the modern build tools so students can understand both the commonality and the differences between say NX, NPM, Maven, Gradle, go build etc.
Maybe a class on CI/CD pipelines, too.