Explicit and implicit learning: The case of computer programming