Different Domains

By | June 10, 2019

Everyone (in IT) should be a programmer is a terrible idea.

Making a networking expert a reluctant (and potentially bad) programmer makes as much sense as over-promoting him and making him a suboptimal boss (some people, myself included, just aren’t good at managing others).

If you need a custom-tailored network automation solution, pair a networking expert (who knows what needs to be done) with someone with programming skills who can translate those needs into running code – the networking expert becomes just another subject-matter expert (SME) working with the programmers to document the business needs (of networking department).

There are some people who can be networking experts at my level or above and expert programmers. And by “some,” I mean maybe in the range of 1/100th of 1 percent of IT people involved in networking, because that basically requires a beyond genius level of talent. I’ve only ever met one programmer who was a decent level system admin and even they weren’t a great sysadmin, merely a good one. Given that enterprise-class networking is about an order of magnitude more difficult than being “just” a sysadmin, the likelihood of someone being an acceptable programmer and a networking expert at the same time is just vanishingly small. There’s just not enough time in the world to pursue both to an expert level. Only an MBA could believe anything different.

I do a lot of scripting, of course, but I don’t consider scripting programming, because when people like me write scripts it’s mostly for our own use. Programming, through, is writing software intended for other people to use. The reason is that even the scripts I write presuppose expert-level knowledge of the domain for which the script is written. Sure, some of my scripts are very complex with functions, error-checking, arrays, and other more advanced features, but I or my close team are generally the only ones able to use them. That’s why I don’t really consider it programming because it’s not an expert-level full practice, but tools for domain-specific use only that can’t truly be released.

Becoming a programmer wouldn’t make me a better networking expert; quite the opposite. Then I’d be a bad networking expert and a bad programmer, which helps no one.