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.