Study of non-programmers' solutions to programming problems [pdf]
My perspective, as someone who came relatively later to programming as a career, is that the skill of &quot;thinking like a programmer&quot; isn&#x27;t too hard to acquire once you&#x27;ve taken a few college CS classes and started to simply program a lot.<p>Rather, what I&#x27;m constantly amazed at (and maybe its because I&#x27;m working in stereotypical enterprisey environments?) is how complex, convoluted, long and hard to follow a lot of code is. So much code goes into what to a non programmer or novice would seem like a fairly simple task. And so much code is really horribly written and designed and implemented. Its very much true what your professors say about how you&#x27;ll spend more time reading code than writing it. Anyways, I&#x27;m sure my perspective as both a junior dev and a late career switcher is somewhat biased, but there you have it.