Learning to Think Like A Programmer