Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If you can implement it yourself, you understand it at a much deeper level than if you just read about it. This is why CS students still implement their own basic data structures (linked lists, hash tables, trees) in the freshmen and sophomore level classes.


In CS how something behaves is far more important than how it's built.

For example one of the most surprising things to me was the fact that all programs built on top of TCP/IP still need their own messaging format because a packet can be split in transport. The header information says almost nothing about the original message sent, just enough information to send a reply up the chain and rebuild the message.

As to linked lists, the speed that fragment virtual/physical memory is in no way obvious from their source code. Build one in C vs Java and they behave vary differently even if the code looks similar.

PS: I really prefer CS projects that require some thought. Quickly sort this 50GB file requires a different mindset than simply, build a linked list library. IMO, build a linked list library is really a lesson in using pointers and tells you vary little about data structures.


I don't disagree with anything you said, but most people need the "implement this data structure" project first so they can understand what they're doing. Then you can give them a more open-ended project.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: