Transfer of Cognitive Skills from Programming: When and How? | Synapse