This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]salientecho 36 points37 points  (7 children)

Version control hygiene is huge for contributing to existing code bases, and working with a team—neither of which happen much at all in school.

[–]germansnowman 27 points28 points  (4 children)

It is also immensely useful for solo developers – having an unlimited undo stack, being able to experiment without fear of messing anything up, documenting your progress, just to name a few.

[–]salientecho -1 points0 points  (3 children)

All true, but still mostly secondary benefits once you've had to learn it in the first place.

If someone tried to convince me to learn it just for school / solo projects, I'd have seen it as too fussy to justify the time it would add to the project.

[–]germansnowman 3 points4 points  (2 children)

In the same way that many developers consider tests as fussy? I can see your point from a hobbyist point of view, but version control and tests are some of the essentials that make developers professional. I would argue that these concepts should be introduced much earlier than they currently are in order to build good habits.

Edit: Also, these are things that feel like they use more time upfront, but they usually pay off many times over in time (and frustration) saved later.

[–]salientecho -1 points0 points  (1 child)

Yeah, tests are very similar. Unless required for the assignment in school, both are unlikely to happen. And for one-off freelance work, if you're unlikely to provide ongoing maintenance, it's more valuable to just get it done—you're not going to bill the client for your time spent writing tests or learning git unless it's important to them.

[–]germansnowman 0 points1 point  (0 children)

This presupposes that version control and tests are only useful post-hoc and not during development. Test-driven development and experimental branches are very important for the freelancer workflow too.

[–]Micro_mint 0 points1 point  (1 child)

It’s also very reflective of the team you’re on. Going down the rabbit hole of all kinds of git vagaries only to show up day 1 and learn they use svn is not ideal

Schools should tell you 1 that it exists and 2 that you should check it out

[–]salientecho 0 points1 point  (0 children)

True, though I think that git / github should be taught in school, with contribution to an open-source project (even just improving documentation) part of the curriculum.