I have been preparing for programming interviews since May this year. I started this preparation process by watching the MIT OCW Course Introduction to Algorithms and committing myself to implementing the various data structures and algorithms that I would be studying during the course in C#. However, I didn’t just want to implement them for the sake of training myself, I wanted to practice the best practices of OOP as well, and so I adopted the approach of developing an organized library of classes that would serve anyone as a class-library project (portable library), so that they can use it, for example, as an educational resource to aid them in implementing the same set of algorithms and data structures in C#, or maybe just use my code to solve algorithmic problems.
As of today, I have finished watching the video lectures, completed the associated readings and finished implementing the set of algorithms and data structures that I studied in the course. As a result, I have come up with a project that I didn’t see myself coming up with a few months ago.
What was beneficial to me, other than learning algorithms and implementing what I had learned, is the fact that many people found the library resourceful for their various needs. As of today, the library has been forked 40, and star-gazed by 250+ people over github. It has also been cloned from github 200+ times.
All of the project is on @GitHub.