I recently ran across the Project Euler site. Here is the synopsis from the site’s About page.
“Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.
The motivation for starting Project Euler, and its continuation, is to provide a platform for the inquiring mind to delve into unfamiliar areas and learn new concepts in a fun and recreational context.”
If you are unfamiliar with the term Sharpening the Saw it is from Stephen Covey’s The 7 Habits of Highly Effective People. In a nutshell it is the practice of continually improving your skills and your knowledge – taking time off from the daily grind and getting motivation and encouragement. It could be reading a book, attending a conference, etc. But just recognizing that you need a break once in a while and that you need to improve your continually.
So I started working through the 250+ Project Euler problems this week. I have completed the first few and already I have learned a lot about some of the cooler LINQ extension methods in C# as well as math in general. Mathematics has always been a struggle for me and I think a lot of it has been that I never truly applied myself as well as I could have when I was in school. So these problems are not only challenging me from a programming perspective, but they are also providing me an opportunity to improve my overall Mathematics knowledge.
It may take me a very long time to complete all the problems that are out there, but I am excited and looking forward the challenge. Also, I think there is a great opportunity here to use these programming challenges as a way to learn another programming language as well. As you will see on the Project Euler site, there is a wide variety of languages that other people are using.