Some would say that programming computers is like putting things together that don't have explicit instructions. You sort of have to figure it out as you go. Sure past experience is critical in arranging code in specific way to function logically, but more times than not, you have some level of flexibility and creativity to write the code as you see fit.
If you read other people's code, you wonder what they were trying to do, if they used the most practical approach, if they simply got it to work and didn't account for the unexpected, did they document their code by embedding some explanation of what was occurring, to let the next person have some indication when attempting to troubleshoot.
Coding is based on logic, yet flexible enough to add a personal touch. So perhaps its a blend of science and art, of cognition and creativity, of repetition and free form.
That ain't too bad of a career choice. Where else you going to find such ambiguity, without necessarily having to deal with people.