Only the first one is a skill that 'non programmers' would readily exhibit, the rest of them are things that you learn as you go while you learn to program.
Outside of math I think you'll have a hard time explaining what recursion is to someone that does not already know how to code at a basic level (a subroutine that calls itself! wow!), seeing the concepts 'under' computer languages may be something you could discuss with linguists and/or mathematicians again but not with others and 'seeing the code flow' you might be able to talk over with a laywer or someone in to electronics (who can 'see' the currents flow when looking at a schematic).
I'm not saying anything about innate ability. Just as a lawyer gains 'legal lenses' as they work through law school, so do programmers gain 'software lenses'.
Outside of math I think you'll have a hard time explaining what recursion is to someone that does not already know how to code at a basic level (a subroutine that calls itself! wow!), seeing the concepts 'under' computer languages may be something you could discuss with linguists and/or mathematicians again but not with others and 'seeing the code flow' you might be able to talk over with a laywer or someone in to electronics (who can 'see' the currents flow when looking at a schematic).