Hi, I’m trying to compile a list of projects, algorithms and maybe data structures that I feel every well-rounded programmer should have implemented at least once in their career. I’m hoping this list can then function as a guide for programmers to challenge themselves and maybe fill gaps in their knowledge they didn’t know they had. So far, I’ve come up with the following list:
* Data structures – Linked list – Hash map – Several types of trees
* Algorithms – The common sorting algorithms – Dijkstra – Graph-traversal algorithms
* Projects – Ray tracer – Parser/Interpreter – Compiler – Virtual Machine – Small kernel – Neural Network – Web server
The algorithm and data structures section I believe should be covered by any decent computer science education (but may be useful to self-taught programmers). The projects are slightly more advanced and may take up to several weeks to implement completely. I realize this list is far from complete, so that’s why I’m turning to you: do you have any projects that you’ve worked on that turned out to be very educational and made you a better programmer once you completed it?