I saw the contention on a message board the other day that a good systems administrator should “be able to write quality software.”
This is of a piece with the idea I’ve seen all over lately that everyone in any field should be a programmer, should learn how to program.
While I agree that a better case can be made for a systems admin to learn some programming (as I know some myself), the idea that someone like me (or rather, more what I used to do) should be able to write quality software is rather absurd.
I can bash out a script (in Bash and several other environments) pretty well. I could probably cobble something together in Visual Studio in a few days if I really had to.
But it would not be “quality” by any measure.
Programming is its own discipline that takes time and study to master. Not even the best sys admins with mega IQs I’ve ever met (unless they were former programmers) could write quality software. And even the ones who had been programmers in the past – even excellent former programmers — would probably not have claimed to be able to write quality software any longer, as it takes like most things in life constant practice.
From what I’ve seen, it takes about 5-7 years to become a really decent programmer. Most programmers I’ve talked to agree with that.
So to do that – to be able to write quality software — I’d have to put my real career on hold, missing most advances in my actual field, to do something I’m not really interested in for no obvious benefit.
Agreed, some understanding of programming and (even more so) of computer science is necessary in my field. I’ve often had to (involuntarily) debug terrible code or examine code in 10+ languages to figure out how something works.
But the idea that everyone should be a programmer is most often pushed by (surprise!) programmers.
It’s easy for them. Shouldn’t it be easy for everyone else? I mean, just code, right?
It’s a cockamamie, terrible idea. Even as system administration is moving to more automation and more scripting, the idea that I should be turning out “quality software” rather than doing my job is fucking ridiculous.
Only a programmer or others also prone to engineeritis could conceive of something so asinine.
I have written some pretty long and complicated scripts and will do so again. But I don’t really think of that as software, and that is not the sense in which this idiot was using those terms.
Even as being a system admin changes in the “cloud” era, it’ll have very little to do with coding and much more to do (as it always has) with understanding the interactions of multiple complex systems (duh) and configuring them in the best way possible to work for whatever business or other organization is making use of those systems.
While this might involve writing some “software” – that is to say, scripts – along the way, the primary goal of a sys admin should not be programming or writing “quality software,” but rather using whatever tools are best suited to achieving the above goals.
Doing anything else is a waste of time, and quite likely to get you fired for wasting said time.