我想成为一名成功的企业Java开发人员。我应该精通哪些算法和数据结构?您会推荐什么书给我?
要成为一名成功的Java开发人员,我是否需要了解所有高级算法,例如CLRS中给出的算法?
您可以按优先级从高到低的顺序列出我应该学习的主题吗?
我必须知道:
- 正在搜寻?
- 排序?
- 图/树?
等等?
我想成为一名成功的企业Java开发人员。我应该精通哪些算法和数据结构?您会推荐什么书给我?
要成为一名成功的Java开发人员,我是否需要了解所有高级算法,例如CLRS中给出的算法?
您可以按优先级从高到低的顺序列出我应该学习的主题吗?
我必须知道:
等等?
Answers:
Cormen的算法概论是一些基础理论基础的好书。
就是说,大多数算法和数据结构已经由其他人进行了编码,测试和优化,因此没有理由再次重新实现它们。要成为一名成功的Java开发人员,您需要完全了解The Collections Framework。
我现在正在学习Java。
我想成为一名成功的企业开发人员。那么我应该精通哪些算法和数据结构?你会推荐我什么书?
要成为一名成功的Java开发人员,我是否需要了解所有高级算法,例如CLRS中给出的算法?
您能给我推荐一些我应该按优先级从高到低排序的主题的列表吗?
告诉我一些我必须知道的主题的名称。像搜索,排序,图,树等?
您渴望扩展和提高您的编程技能,这是很好的。但是,重要的是不要将算法视为要记忆的事物的目录。要成为一名优秀的开发人员(使用Java或其他方法),您需要了解的是理解算法分析。
通过学习一些选定的数据结构和算法,并学习分析它们在时间和空间(内存)方面的性能,可以了解到这一点。搜索,排序,图形,树,堆,堆栈以及所有这些好东西。这还应遵循一些计算理论和离散数学的基础知识(即使在Java领域中,我们也从未直接使用这两个主题,因为它们的好处是间接的。)
将学习算法分析(不同于算法和数据结构的“记忆”)与学习编程语言(在您的情况下为Java)分开。
乔治·海涅曼(George T. Heineman),加里·波利斯(Gary Pollice)和斯坦利·塞科(Stanley Selkow)的“简明算法”是一个好的开始。Sanjoy Dasgupta,Christos Papadimitriou和Umesh Vazirani撰写的“算法”是另一本很好的本科教材。
最好的想法是在学习本科,3000级算法课程之前,先学习9-12学分的编程课程。除非我提到的两本书是自学的,否则可能是一个不错的选择(不过,自学可能并不适合每个人。)
祝好运!