About this course
I strongly believe that computers and technology are intended to be useful and support us to be more efficient.
Thanks to computers, we can reduce our efforts. This is perfectly aligned with the idea of "bicycle for the mind".
But, as advanced and friendly a computer can be, we have to make a small step toward the machine and learn a bit of their language.
This might seem irrelevant, especially in our post-GUI world where natural language is becoming a de facto interaction mechanism with the machine.
But if you want to leverage powerful but subtle features, you still need to speak computer language and learn the tools you are using.
Version control in general, and Git in particular, are the backbones of software development.
It's key to understand their basis, but even more useful to know a little bit more. Something that can help you in difficult times but is also needed for an efficient daily work.
About me…
I'm a software developer since 1997.
Most of my career, I worked with many code management tools.
I started with manual version handling, using numbered file suffixes, something quite similar to VMS filesystem conventions.
While working at Lucent, we were using IBM CMVC (Configuration Management Version Control).

Oh, yes, this is the kind of GUI I was using to handle bug records (defects) and file versions (source).
I quickly discovered that the more shiny and modern Clear Case was where you worked within views, something similar to Git clone, but that a checked-out file meant you were locking the file.

Then I discovered that Microsoft thing called VSS (Visual Source Safe). A pure Redmond solution, failing on regular basis when folder hierarchy was "too deep" or path "too long". 
It took me years to finaly see the end of the tunnel and found about Git, the joy of the "simple" CLI and the multiple of user interfaces and client.
But before all: decentralized code management.