A nice example of how one can better learn to develop logical skills and programming skills by solving puzzle with programming.
Read this post on mittalpatel.co.in