For almost six decades, since its inception, teaching programming has been carried out in the same way: "Introducing language manuals to students." This approach demoralizes the learner. In addition it turns learning programming into an extremely daunting task. The consequence has been a steady drop in the number of people learning programming. Java for Novice Programmers offers a completely new approach to leaning programming. Using Memory Transfer Language (MTL) a leaner is able to interprete his/her code outside the machine. MTL is a tool for the learner to interpret the code machine-wise. This provides the leaner with a tool for precise close-tracking and debugging the code outside machine environment. It turns programming into a simple task that requires the knowledge of one easy technique: "knowing what is the effect of your instruction to the machine."