Her feedback was not easy to hear : My code was overly complicated and hard to follow. I was indignant at first. I realized, however, after researching the solutions, that she was correct.
Algorithms Are About Simplicity
Software development was not my first career. I was 28 years old before I ever really wrote my first line of code. My degree is in graphic design, not computer science. This is a fact that has caused me quite a bit of self-doubt over the years.
I am familiar with many of the most common software design patterns but I had not spent as much time focusing on fundamental algorithms. I know them intuitively but not enough in-depth knowledge to necessarily find the simplest solution to common problems.
Follow Along on Github
My solution was to create a challenge for myself to learn a new algorithm every day for thirty days. The result is “30 Days of Algorithms” – which you can follow on my Github page. As a result of the challenge, I hope to not only have a better understanding of common algorithms, but also have a better understanding of common alternatives as well as when to use them.
Table of Contents:
- Euclid’s Algorithm to find Greatest Common Divisor
- Find Missing Number 1 … N
- Bubble Sort
- List Intersection (on Github – blog post coming)
- Array to Tree (on Github – blog post coming)
- Merge Sort (on Github – blog post coming)
- Quick Sort (on Github – blog post coming)
- Binary Search (on Github – blog post coming)