Deployment is a huge hurdle. It's a challenge even for the best software development teams, and it's incredibly important: if users can't get past the install step, none of the code you've written matters! And yet, as Greg notes, existing software engineering textbooks give this crucial topic only cursory treatment. Along the same lines, a few weeks ago, a younger coworker noted to me in passing that he never learned anything about source control in any of his computer science classes. How could that be? Source control is the very bedrock of software engineering.
If we aren't teaching fundamental software engineering skills like deployment and source control in college today, we're teaching computer science the wrong way. What good is learning to write code in the abstract if you can't work on that code as a team in a controlled environment, and you can't deploy the resulting software? As so many computer science graduates belatedly figure out after landing their first real programming job, it isn't any good at all.
My degree barely enabled me to be employable, particularly since it was in dead computer languages, none of which I have ever used for work. Almost everything
was on the job.
How many bad habits are enshrined in new developers because of the bad practices of their more experienced co-workers? I would imagine quite a few.
I'm sensitive to this now since most of my job revolves around writing installs and updates and source control management.
2 comments:
That's because you were in a "Computer Science" track, not "Software Engineering" track, and the two are very different (although to my knowledge, there is no university offering "Software Engineering" other than trade schools like Devry. It's kind of like the difference between a theoretical physicist and a structural engineer.
Sort of. I only have an AS degree and it tended towards vocational rather than theory. I got the worst of both worlds.
Post a Comment