Here's what I think. Proper software development should involve first a correct understanding of the norms : RFC, OSI model, and what not.
Then ideally one must understand the hardware-software interactions, in other terms electronic engeneering, from chips to bits. This is assembly language. Finally, what I might call "grassroots" languages are more desirable than "pop", i.e. C over Python although both have their usage. Amirite ? ;) Sylvain sylvain.sab.free.fr