Programmers and network engineers both have a place in the future
The debate about whether everyone needs to become a programmer is pretty lazy at times. We tend to think about everything as binary. But the reality is that even with a programmable layer on top of (or alongside or wherever) the network, you still need people to make the network work.
There will be an increase in people working closer to the applications. The end goal of the network is not to connect everything so much as to deliver some useful experience. This will gradually mean that the network and applications become a little tighter in terms of collaboration. This isn't necessarily through direct programming, mind you. Abstraction makes all of this a bit easier. Express intent (what do you need from the network, in terms you understand), and then have programmatic layers translate intent into behavior.
I actually wrote a long-form version of this exact debate some time ago:
Mike Bushong (@mbushong)