Working with electronics design requires math — and acquiring skill at math requires practice. Too often, though, practice math problems are dry and uninteresting, and there is still often a tendency among some mathematicians (and many math instructors) to distrust computers. For many practical problems, though, the use of numerical methods (I.E. the efficient use of high-speed computers) can provide easier ways of finding a solution. The problem is that, compared to the availability of resources (like textbooks) available for traditional mathematical methods, it can be difficult to find good ways to gain experience with mathematical programming.
Project Euler aims to help change that. The site presents a series of mathematical problems ranging in difficulty from the almost-trivial (Problem 1 asks for the number of numbers between 1 and 1000 divisible by either 3 or 5) to much more difficult problems, often involving computations of interesting concepts like totients.
The problems are designed to be readily solvable with a modern computer — although restating the problem in a form that can be efficiently solved is often quite tricky. Some of the earlier problems, while challenging to solve in the most efficient manner, can be handled in a few minutes of computing time through “brute force and ignorance” methods such as exhaustive search. Often, though, later Project Euler problems will be these very same problems, only with the search space expanded, say, a millionfold — a not-so-subtle hint that sometimes, efficiency does indeed matter.