This semester I am teaching a lab at my university which is the first in a series on numerical methods for engineering students. The class is split into two parts:
Linux and Programming
Linear Algebra
The downside of this split is that we have a little less that 7 weeks to introduce the Linux operating system and how to program in the Fortran language. Because of the time constraints, there simply isn't enough time to teach students some very valuable programming skills such as how to use a revision control system.
For student using a Macintosh at home, I wrote up a set of instructions on how to use the Homebrew package manager to install the gfortran
compiler. As Homebrew is backed by git
I was sorely tempted to launch into an explanation about what git
does and why they should use it or a system like it. However, such a tangent would detract from the business at hand which is getting gfortran
installed and working.
Therefore, I want to add a footnote that points inquisitive students to an article that explains what a revision control system is and why they should use it. The article should:
Do a good job of convincing a programming neophyte that learning how to use revision control is an extremely valuable investment; even on top of learning how to program, learn Linux and become friends with their compiler.
Avoid descending into "holy wars", I.E.:
- Distributed vs. Centralized
- Mercurial vs. Git vs. Subversion vs. [insert religion here]
In the end, I don't care which specific version control system they get excited about, as long as they get excited about using one.
Update
The aspects of computing covered by the course are the Linux operating system and the Fortran programming language. Students are not taught how to install a compiler or use a revision control system and are not expected to learn these things. However, I am assembling supplementary material that convers these topics and this question pertains to articles that provide a good introduction to version control.