I feel that I had great college professors; each having a different perspective on computer science and software development. There was a basic curriculum that had to be followed, but each professor added their own interests to the lessons. I feel, however, that some aspects of software development were left poorly explained – if explained at all.
First up: Source Code Control/Version Control Systems
My college exposure to this subject was quite pathetic. It garnered a single (under 20 minutes) class mention, with no explanation of benefits. Worst of all, the school had chosen CVS as their system; not git, or even subversion (both existed at the time, I’m not that old).
After the brief mention, in a single class session, we were not forced to use it – so no one did.
The focus of the course was to work on a large, semester spanning, group project. Since no one was using source control, zip files flew from person to person when working solo and large programming parties, with one person doing the coding, were frequent. It was a painful, bug filled experience.
I feel that I would have benefitted more from more exposure to this subject at school. It wasn’t until I was in my first internship that I would understand and see the benefits to using version control systems.
Sadly, I am finding that my limited experience in school was more informative on the subject than others elsewhere receive. When I talk to the “next generation” of students (from various schools) they stare blankly at me; which means they were not taught it at all.
All that would be needed are the basics (committing of code, and reverting changes) and college would have been much easier.
Oh well, I learned the hard way.