Haha probably the most unintentionally funny and ironic comment I've read in awhile. Given more than 50% of software projects fail, which is worse than chance, I think it's safe to say the no one really understands software engineering either. Like math, they just get used to doing some things that seem to work better than others.
they both deal with computation (modification through time).
Only math as a language originates from past assertions to model a determinant factor,
while programming deals with future assertions as to produce determinant factors.
Its alot easier to make arbitrary mistakes in the latter then the former.
Until you have to interact with a black box of someone else's code. You can only be certain that the data you sent that particular time works, not that all possibilities of valid data work.
I'm just not very good at applying processes/methodologies which I don't fully understand.
For example, I wasn't very good with linear algebra until I was able to visualize the equations in my head. For example, now, when I think about the equation 'f(x) = ax^2 + bx + c' - I can see that this represents the set of all possible quadratic equations and I can roughly visualize what that looks like on a cartesian plane (well it would turn the whole plane black because there would be an infinite number of graphs). Then if I choose any three points on that crowded cartesian plane, I can visualize that among this infinite set of curves, one of them passes through all three points. Thinking about it in that way allows me to make sense of Gauss-Jordan Reduction and other mathematical processes related to linear algebra.
Programming is much easier for me because I can visualize the results instantly on a computer - I don't need someone else to explain it to me. Any uncertainty can be quickly resolved by simply running some code.