Specifically, when you start thinking about a project, before you start coding, how do you translate use cases & data, into data structures (including planning for inheritance).<p>Does this differ by language, because of differences in data structures? Are there any resources that have given you particularly good insight into the creation of elegant data structures?
Concerning the second question, I would say that it should not differ by language. There certainly can be differences in data structures provided by the different language in their run-time or standard libraries, but you should not use a programming language that doesn't allow you to implement your own data and functional abstractions, and therefore, you should be able to implement the same abstractions determined needed by your analysis in any target programming language you have to use.<p>sicp would be the resource that gives good insight into the creation of elegant data structures. <a href="https://mitpress.mit.edu/sicp/" rel="nofollow">https://mitpress.mit.edu/sicp/</a><p>That, and any book on data structures and algorithms.