I have said that GUI [graphical user interface] is the best way to start programming. However, I have come to realize that tangible, physical programming may be the best place to start. Google is launching a project to create tangible coding blocks to help beginner coders better visualize the coding process. As Sheena Vaidyanatham states in the video, a key element to learning programming is persistence. You do not know the true joy of programming or mathematics until you encounter a challenging problem and find the solution through persistent tinkering. That is a skill that trumps knowing syntax any day.
Google launches Project Bloks, a tangible programming learning tool