我是C#开发人员,我一直使用List和Dictionary等数据结构,我正在阅读一些访谈书,他们似乎都建议我们应该知道如何实施这样的数据结构以及如何使用它们,你们中有很多人分享同样的观点吗?
答案 0 :(得分:2)
我想说,至少每个有能力的程序员都应该理解最广泛使用的数据结构的内部。
我的意思是能够解释它们如何在内部工作,以及它们提供的复杂性(时间和空间)保证。
答案 1 :(得分:0)
出于同样的原因,C或C ++程序员应该熟悉汇编语言;它可以帮助您了解幕后发生的事情,并提高您为特定编程问题选择适当数据结构的能力。
同样,您不必有效地使用您喜欢的编程语言编写编译器,但您可以通过编写编译器来大大提高您对该语言的了解。
答案 2 :(得分:0)
如果您不知道如何实施数据结构,您怎么可能会说您了解相关结构的优缺点?正如aix所提到的,应该要求您了解所使用内容的内部。我永远不会相信一个不了解发动机工作原理的机械师。
答案 3 :(得分:0)
最好是你知道如何实现这些数据结构,但是你不需要这些知识才能成为一名称职的甚至是有效的程序员。
你应该高度了解(明显)他们做了什么,以及他们是如何做到的。这应该足够了。
我不需要知道我用来有效使用它的每个工具的内部工作原理。我只需要掌握它的作用,它适用于哪种用途,哪种用途不适合。
最好的程序员会知道这些数据结构和所有已知的变体,但是他们也会知道他们选择的语言/框架的每个小角落。它们远远高于“主管”水平。