Project Euler
For over a year, I've practiced solving mathematical and computational challenges posted at Project Euler. As I complete these challenges, I've been honing my skills in areas of software development I don't regularly work with.
- Skills: Perl, algorithm design & optimization, mathematics
Progress
As of January 2017, I've completed over 50 challenges. (For fun, I create my own high-resolution versions of the Project Euler badges earned.)
What does solving 50 problems mean?
Compared to others who have solved at least ten problem, this is how I rank.
Top 15% — around 35,000 out of 225,000 people have accomplished this.
Top 40% — around 1,800 out of 4,800 Americans* have accomplished this.
Top 55% — around 90 out of 160 Perl-ites* have accomplished this.
* (Self-identification of nationality and programming language is optional.)
Lessons
What have I learned through these challenges? (Spoiler-free)
- Practical experience with Big-O notation and algorithm optimization.
- Improved ability to catch off-by-one errors.
- An appreciation of the Perl programming language.
- Experience with creating algorithms to solve unusual problems.
- Lots of trivia about math and numbers. Especially prime numbers.
- When time can be saved by making an estimation based on math.
- Reusing code and extending code without breaking backward compatibility.