Programming Skill, Knowledge and Working Memory Among Professional Software Developers From an Investment Theory Perspective