This is largely a case-by-case usage issue; English is increasingly positional, and both noun adjectives and verbing nouns are widespread standard practice. In the case of programmer, I would recommend using beginning for aesthetic reasons (to avoid the repeated harsh -er), but beginner would be both correct and immediately understood.
In the case of killing and killer, there are subtle differences in connotation; killer implies some sense of agency and even malice that killing does not. You would speak of a killer virus, but a killer machine would be a machine with some intention of killing (such as the Terminator), while a killing machine would be a more impersonal item like an automatic weapon. (Note that killer also has the colloquial sense of "important" or "excellent", as in killer app, and that killing machine is often used metaphorically, such as for a sports star.)