|
|
|
|
|
by greenyoda
4766 days ago
|
|
I haven't met any developer who was incapable of learning a version control system on the job. Why should universities spend the student's very expensive class time to learn about this? That time would be much better spent learning about fundamental knowledge such as algorithm design rather than learning about a specific tool that could be obsolete by the time the student graduates. Also, in a first semester course on programming, learning version control is a distraction from all the other things you need to learn to write a working program, like programming language syntax and building a mental model of how program execution works. (Not every CS student gets to college already knowing this stuff!) Which is not to say that universities shouldn't make these tools available and encourage their use for class projects. But that doesn't require them to "integrate version control into their curriculum" like the article suggests. The documentation for git is freely available on the web and anyone who wants to can read it on their own time and ask their fellow students about it. The larger philosophical question here is whether higher education is a vocational program for creating good "team players" who are productive with the current technology on the first day of their employment, or rather to provide an education that teaches them fundamental knowledge and how to learn new things on their own. Side note: I've taught a first semester CS course in a well-known university, so I have some experience with the difficulties that even some very smart students face while trying to pick up the basic concepts. Adding in version control would have made it harder for some of them to successfully complete the course. |
|
I think that including these basic tools in an intro course (perhaps as a first or second class topic) would be a good idea. The minor waste of expensive education time will be more than offset by the added productivity in later courses, and a grading workflow built around test suites that one simply pushes code to would probably make students and graders lives easier.
An anecdote:
One of my CS courses spent a week or two going over C and its pitfalls. Now, one could argue that any sufficiently bright student should be able to pick C up incidental to completing a course on programming in 'nix, but the fact is that the additional material covering things like dumb use of unions and linker errors and whatnot saved the ass of several classmates time and time again, both in school and in later years.
You can't have a purely theoretical education, especially in a field where at the end of the day you need (to quote Zed) "programming, motherfucker."
Students will in all likelihood get far more mileage out of a fast intro to VCS and *nix over the rest of their academic and professional careers than learning one more esoteric data structure.
By similar logic, mechanical engineering courses should never require students to learn the rudiments of welding or machining.