My friend Andrea Dainese (of the Route Reflector Labs fame) sent me this observation:
Because of lack of fundamental skills, I see two groups forming: junior guys with low salary (the bigger group), and a few experts (hopefully with higher salary). The middle group is disappearing. Intermediate-level engineers are either moving to the entry level (because the complexity is increasing and they are not keeping up with it) or to the upper level.
I call this phenomenon bifurcation of knowledge (I’m positive it has a formal name – would appreciate a comment with a set of pointers), and it’s a direct result of commoditization and the changing shape of the learning curve.
Not surprisingly, I wrote about it before. You might want to read:
- Knowledge and complexity
- Can you afford to reformat your data center?
- Knowledge or recipes?
- SDN career choices and magic graphs
It’s also not limited to networking. When I was at university we spent half a year on developing a compiler (and probably more than that on various finite-state automata and parsers). While most everyone found it a nuisance best forgotten, it gave me enough knowledge to build my own PHP-like interpreter I needed to replace dBase and Clipper with something resembling a programming language. How many programmers even know what a compiler does these days?
Too contrived? How about “do you know how bolts are made” or “could you make one if needed”? BTW, I could – I even have the tools to do it ;)
Is bifurcation of knowledge bad? Not necessarily. As we cannot cram infinite knowledge into our brains, or spend infinite time acquiring it, levels of abstraction and ignorance of details are the only way forward.
However, there’s always the pesky Law of Leaky Abstractions. There’s not much that can go wrong with a bolt made in standard dimensions from materials of known quality… and plenty of things that can go wrong with any black box a startup hacked together, a major vendor acquired, an a marketing team spray-painted with unicorn dust.
Also, people working with physical objects (like engineers using bolts to hold together a bridge) tend to be aware of laws of physics and limitations of objects they’re using, while you’ll find copious amounts of firm believers in Clarke’s Third Law and the unbreakable magic of whatever gadgets they’re using in IT (see also: long-distance vMotion).
The real difference between engineers (in the traditional sense of the word, not as a slap-on job title you get instead of a raise) and some IT practitioners is the ignorance of the fundamentals. While you don’t have to know how 1GE encodes bits on the wire, it does help to understand a bit of history, the differences between cut-through and store-and-forward switching, and why full-duplex and half-duplex matter (although they should not since the days of first L2 switches… but please don’t get me started).