我是编程的初学者。我应该学习数据结构和算法,以及Java编程语言吗? 现在我知道数据结构和算法构成了编程的基础。我应该先学习它们吗?
我很困惑。我的学习路径应该是什么?
我想成为一名非常优秀的Java程序员。
答案 0 :(得分:22)
我认为两个并排学习是很好的。如果你试图在不进行任何编程的情况下首先学习数据结构和算法,那么这一切都会有点抽象 - 如果你能使用你能做什么,我认为你可能会更有效地学习在实际环境中学习。这也意味着你可以试验你正在学习的东西......以理论方式进行实验更难。
答案 1 :(得分:11)
我的建议:
1。)学习基础知识
(不包括泛型章节,这更像是一个高级主题)
2。)在学习基础知识的同时,通过解决简单的练习练习你获得的知识
3.)开始实现简单的算法,学习如何使用递归
4。)获取一本关于数据结构和算法的好书并开始学习它们
答案 2 :(得分:3)
我认为你应该只学习java的基础知识,然后开始与一些更高级的java并排学习数据结构和算法。如果你开始研究像算法这样的东西而不至少学习一些语言结构,那么事情就很难掌握。
答案 3 :(得分:2)
通常我们的程序员从不学习成为优秀的程序员。
我们首先进入的语言对我们的思考方式影响太大 关于问题。之后,我们可能会学习其他语言,但我们会继续 编写程序就像我们使用第一个程序一样。
我们的视野被该开始语言(例如Java)或 范式(例如面向对象)。
虽然我们觉得我们缺少某些东西,但我们太忙了 与鳄鱼战斗以消耗使我们陷入困境的沼泽地。
我的建议是不要太快地跳入Java或其他任何东西。 从一开始就让自己接触到各种语言。 你最终会得到一个更好的Java程序员。
这是一条非常好的道路:
答案 4 :(得分:2)
我个人建议你学习Java,尽管大多数编程语言都可以。虽然算法和数据结构是编程的重要部分,但它们并不是唯一的一部分。在研究软件工程领域的任何子部分时,熟悉编程语言是很有用的,例如A.I.或数据结构,因为它可以让您更深入地了解算法的内部工作原理。能够读取伪代码并将其转换为实际工作代码非常重要。
Sun Tutorials很棒,因为它们涵盖了大量材料,包括初学者(参见语言基础部分)和高级材料。
此free online Java Textbook非常棒,因为可以通过下载免费的PDF版本在线查看或离线查看。
然后,我建议通过一些小型个人项目(简单的文本游戏,实用程序等)或研究一些开源代码来完全掌握语言。 Sourceforge对此非常有用。
另外,如果你喜欢数学,Project Euler是学习Java(或任何其他语言,因为挑战可以用任何语言解决)的绝佳方式。这也将帮助您培养使用算法并解决它们所需的技能。
一旦你觉得你已经很好地掌握了你选择的语言,那么继续学习算法和数据结构不仅会更容易,更有趣。您将伪代码转换为工作代码的能力将非常有用,因为您可以真正理解算法和数据结构的工作方式,并可以在测试应用程序中实现它们。
答案 5 :(得分:1)
大多数数据结构书都将植根于某种编程语言。我建议找一个使用Java并从那里去的人。话虽这么说,DS和算法都很棒,但仅凭这些并不会让你成为“真正优秀的Java程序员”。
Here's指向Google购物搜索Java数据结构书籍的链接。我会约会自己,说我从来没有读过任何一篇,我在大学读过的DS书是为C写的。
你还应该看看Pragmatic Bookshelf(谷歌它,我不能用我的低代表粘贴多个链接),他们有关于编程的 craft 的书籍,而不是只是语言。非常方便。
答案 6 :(得分:1)
了解如何使用集合框架:
http://java.sun.com/docs/books/tutorial/collections/index.html
http://www.cs.lmu.edu/~ray/talks/jcf.pdf
http://java.sun.com/javase/6/docs/technotes/guides/collections/changes6.html
答案 7 :(得分:1)
我的建议绝对是先学习算法,然后再学习数据结构....然后再学习像Java这样的编程语言。 我根据自己的经验说话。