Ask HN: How can I practice designing data structures well?
https://news.ycombinator.com/item?id=41287172Linus Torvalds said: "Bad programmers worry about the code. Good programmers worry about data structures and their relationships."
I want to improve my ability to design systems well. And I want to work towards building things with Linus' mindset.
When I work on a problem, I try my best to design it well ahead of time. But I typically don't have a good grasp of the entire system until after I have mostly implemented it. The nuances of the system are not clear until I have implemented it.
What are some techniques you use to understand a system before you build it? What are some good books that outline those techniques? Or is this a skill that one can only gain through trial and error or experience building systems?