Transformative and Troublesome? Students' and Professional Programmers' Perspectives on Difficult Concepts in Programming | Synapse