Java 如何快速提高我作为程序员的能力?

Java 如何快速提高我作为程序员的能力?,java,Java,我的问题不仅仅是扩展特定语言的技能。我想知道,对于一个渴望知识但缺乏方向的人,人们会给他什么样的建议。请随意跳到问题 背景:我在大学里只学过一门java计算机科学课程,但我计划主修计算机科学和电子计算机工程(ECE)。我的java课程相当初级。我们得到了一个框架,只是编辑/创建了一些方法和类来执行一个简单的任务。我们制作了Breakout的一个版本,并为一个简单的connect-four游戏创建了一个AI。虽然我对大O符号有点熟悉,但实际上我并没有在课堂上学习过它(我的下一节CS课将介绍这一点)

我的问题不仅仅是扩展特定语言的技能。我想知道,对于一个渴望知识但缺乏方向的人,人们会给他什么样的建议。请随意跳到问题

背景:我在大学里只学过一门java计算机科学课程,但我计划主修计算机科学和电子计算机工程(ECE)。我的java课程相当初级。我们得到了一个框架,只是编辑/创建了一些方法和类来执行一个简单的任务。我们制作了Breakout的一个版本,并为一个简单的connect-four游戏创建了一个AI。虽然我对大O符号有点熟悉,但实际上我并没有在课堂上学习过它(我的下一节CS课将介绍这一点)。在我的ECE入门课程中,我们还在PBASIC中编程了BOE机器人,以在各种障碍课程中竞争。作为一名工科学生,我也被介绍到matlab,尽管我只在线性代数作业中使用过它。总之,我没有太多的编程背景,但我喜欢到目前为止我所做的一切,我正在寻找方法来建立一个更有价值的技能集

采取的步骤:在更加关注reddit的编程部分后,我找到了一个链接。今年夏天,我一直在努力解决这些问题(昨天完成了我的第42个解决方案),但我正在寻找更多的方向。我一直在读博客,读得太多了。我想学习一些关于php的知识,也许还想创建一个动态网页,但从根本上说,我想做我力所能及的任何事情来提高自己,为工作世界做好准备

问题:你能为我推荐什么方向?我应该学一门新语言吗?继续攻击欧拉计划?读一些关于编程的书?开始一个编码项目(我甚至不知道从哪里开始)?要等到学校吗?了解更多基本编程原则


我想有了所有的途径,我只是有点不知所措,我不想陷入一条对我的职业机会有害的道路。我也很不擅长做决定。非常感谢您的建议

作为程序员,只有一件事可以提高你的技能:编程

阅读有关编程的书籍就像阅读有关自行车的书籍一样。这不会让你变成一个骑自行车的人


编写一些你将要使用并对其有既得利益的东西。然后低下头去做——边走边读任何支持信息。

编程技能只是成功程序员的一小部分,IMHO。能够阅读说明书、提出问题并与他人互动以提取编程所需的信息也非常重要。注意你的“软”技能,它们将对你在商业环境中成为一名成功的程序员有很大帮助。

我看到一个有趣的网站链接,名为“可能会帮助你”。让你的技能快速发展的重要一点是为你在任何实际工作中可能遇到的实际问题编写代码

既然你已经知道编程的基本原理,并且显然有学习的欲望,我将开始一个宠物项目

没有什么比有一个相当有挑战性的宠物项目让我投入其中更能迫使我学习有关技术、语言或想法的大量知识了

我建议,就像rein提到的,选择一个你真正感兴趣的项目。另一方面,它会很快变得无聊,你也不知道你为什么要做它。我认为明智的做法是使这个项目相当不琐碎。我总是发现我在做的项目越不琐碎,我从中学到的东西就越多

另外,如果你住在校园里的学院/大学研究实验室附近,你几乎总是寻找暑期实习生以一种形式或形式编写代码。有些人甚至会付钱给你。我在高中和一些大学做了4-5年,这是一次很棒的学习经历

显然,参与开源项目是获得与其他开发人员合作经验的好方法。在上查看资料


我只想提醒你,如果你对一个项目非常感兴趣,并且你会坚持下去,那么你应该寻求帮助,并打扰它的核心开发人员。一般来说,致力于这些项目的开源开发人员很少。他们的时间对社区来说真的很宝贵,把时间浪费在一个夜以继日的人身上,再也见不到他们了,这是一种耻辱

除了选择一个有趣的项目并从头开始实施之外,阅读他人的代码对提高技能也很有价值。Scott Hanselman有一个关于阅读代码的好系列:

我建议您采取多管齐下的方法。阅读书籍只能让您走到这一步,因为它们不能为您提供从头开发应用程序的实践经验。编程现在更多的是关于编写代码;你必须能够设计应用程序,阅读文档,知道如何解决客户的需求,而客户不知道如何告诉你该写什么

如果你还在上大学,试着找一家开发公司实习。您将能够接触到已经拥有此经验的人员和资源。如果你因为某种原因不能进行实习,找一个开发人员做朋友。让一个知道自己在做什么的人从他们的想法中脱颖而出的影响是不可估量的

除了让自己周围都是有知识的人之外,你还应该自己编写一个应用程序。选择你感兴趣的东西,但同时尽量不要把它弄得太复杂,你不想因为写东西而让自己沮丧