You seem to be contradicting yourself -- "just stuff that you learn along the way" vs "Doesn't list getting familiar with any version control systems". Aren't version control systems "stuff that you learn along the way" in your opinion?
IMO, any resource like the one in the OP is going to get bashed ("not the way I would learn stuff"). Might as well learn something from it.
> Aren't version control systems "stuff that you learn along the way" in your opinion?
I don't think so. The reasons for using version control when programming solo aren't obvious. Especially with the intimidating learning curve something like git has for newcomers. Most CS students I've tutored would either dropbox their code, or store it by emailing it to themselves.
And then there's the difference between using version control just for yourself, or a small group project, vs using version control on a large application, such as OSS with hundreds of contributors. Workflows, best practices, etc.
I had never used any version control until my first internship. I didn't really put any effort into a good git workflow until I was at a company that actually cared about establishing one.
No, you pretty much don't need to bother with version control systems unless you're writing code on a team with others. And even then, students will likely never deal with any of the complexities that arise in the real world like branch merges, continuous integration, etc.
In general, school teaches you the content without the tradecraft. You'll need both to be a "rockstar" developer, and I don't see how you could ever get the tradecraft without working in the industry.
I have a pretty clear recollection of having heard about VCS in an undergraduate class, but presented in the most boring possible way, so I learned whatever I needed to regurgitate for the exam and moving one.
A few years later, I found myself working in the industry and using a real VCS (Microsoft's dont' recall the name), and realizing this was the same thing I have being doing lamely for the last two years with daily zip files and lots of notes on the README.txt for each project.
Yet students are among those MOST confused by "it worked a minute ago; what did I change that broke it?!" Keeping your code under source control allows answering that question. A useful tool and lesson for the student.
I can't see any decent school not teaching version control. It's immensely valuable even to the solo developer. Hell, my shitty school taught us Microsoft SourceSafe, which was hilarious because two team members couldn't work on the same file simultaneously. You'd get lots of late night phone calls: "Check in the damn file so I can edit it!"
That's a misconception. If you set the VSS 'lock on checkout' flag, then yes it sucks. Its a mistake to set that on a project, yet its the default (?!)
There are adequate merge tools available in VSS, like any other source control tool. Disabling them is silly.
I consider source control to BEGIN when two people check out the same file. If you can't do that, then its really version control.
I dont think version control is necessarily something you learn along the way if you are just learning on your own. It is a good idea for any nontrivial project to have, but I also dont feel like its such a necessity someone who is learning would go out of their way to use it. I'm not even sure everyone would necessarily be exposed to it and know it exists when just learning, unless they decided to contribute to OSS which seems pretty far down.
IMO, any resource like the one in the OP is going to get bashed ("not the way I would learn stuff"). Might as well learn something from it.