>>9319316Yes, to understand programming languages and the core concepts of programming is not a hard task. What is actually hard is to understand the concepts/fields of CS required in the development of certain pieces of software, and the programming process itself (actually, here's where most of the hardness of programming comes from).
I mean: a ME can understand the basic idea of programming and be able to read code, but in no way that person would be able to understand the whole architecture of a complex piece of software, nor how a kernel/compiler/virtual machine/machine learning system/3D design software/etc works in a detailed manner, because these are very deep and hard CS fields that, almost all of them, requires hard maths as well.
As another example, think in a physics engine for a videogame. Yes, that ME person may know a lot of physics and maths, but (likely) nothing of complex low-level software engineering. Those pieces of software tends to be pretty complex in terms of programming and the low-level knowledge required is pretty high, to the point that you'll need far more than just a few classes of software architecture.
The same rules applies to computer engineers, that knows a lot of maths and physics, trying to understand how something of the "ME world" works.