一个完整的新手学习 Java 需要多长时间? [关闭]
Posted
技术标签:
【中文标题】一个完整的新手学习 Java 需要多长时间? [关闭]【英文标题】:How Long Does it Take to Learn Java for a Complete Newbie? [closed] 【发布时间】:2009-05-14 17:26:34 【问题描述】:我完全没有编程经验,但需要学习 Java - 足以参加 J2ME 快速课程。我只有10周。我可以这样做吗?您对我可以使用的最佳资源有何建议?(目前使用 Sun 的 Java 教程)。
【问题讨论】:
你的编程背景是什么(经验和教育)? 有人建议可能需要 10 年 (norvig.com/21-days.html)!!如果你之前已经有相关的编程经验,我认为 10 周的时间来学习一门新语言是合理的。否则涉及的新概念太多。 我即将在 24 小时内完成 Java。 如果您以前是程序员,python、c++ 或任何遵循 OOPS 的编程语言,如果概念清晰,专家将需要大约 5 天时间。如果来自函数式编程,则可能需要 2 周,因为您需要学习 OOPS。如果新程序员花点时间 【参考方案1】:10 周?显然你可以在 24 小时内完成!
http://www.amazon.com/Sams-Teach-Yourself-Programming-Hours/dp/0672328445
编辑:
好的,所以只有 1 人觉得我的回答很有趣,但还不够有趣,无法投票。真正的问题是,您需要在 10 周内达到多高的水平?
如果你给自己买了一本好书(上面链接的那本书在亚马逊上有一些好评),那么在 10 周内你可能已经足够精通在 Java 中做一些有用的事情,但要成为专家则需要数年时间。花费 10 周到几年之间的任何时间都会使您从初学者变成专家。
哦,阅读Teach Yourself Programming in Ten Years。
【讨论】:
我不会投反对票,因为它太有趣了! +1 24 小时...奢侈!当我年轻的时候,我们会在上下学的路上创造新的语言。到学校 5 英里,返回 7 英里,双向上坡。 我们不被允许创造新的语言——当我们步行去学校时,我们必须在头脑中编写原始机器代码。在齐腰深的雪中。 我过去只有 1 和 0。有时我们只有 0。 +1 链接到“哦,阅读十年内自学编程”的链接。很棒的文章。【参考方案2】:好的,根据之前的一些答案,我预计会因此而被否决,但是,我认为您认为您可以在 10 周内自行学习如何在没有编程的情况下使用 Java 编程是一种妄想背景。除了某种神童之外,没有没有编程经验的人会在 10 周内学会使用 Java 或几乎任何语言进行编程。
为了清楚起见,从书中复制和运行 hello world 并不会使您成为程序员。见鬼,很可能需要几天才能在某些 IDE 中运行。
现在,您可以学习并有可能通过一些测试吗?也许吧,但这取决于测试的深度和格式。
如果我问我是否可以在 10 周内成为一名医生,我会因为这个问题而被嘲笑,所以我对那些表明有可能的答案感到有些惊讶。我现在可以在我女儿身上贴创可贴,但这几乎不能让我成为一名医学专家,这只是意味着我管理了他们版本的 hello world。
【讨论】:
their version of hello world
哈哈。喜欢这个。
这应该是公认的答案,因为它会提醒您(以便人们可以计划更好/替代路线)并且它解决了普通人会遇到的问题。所有“是”的答案都适用于任何问题(我能打败国际象棋大师吗?我能在组合数学中出名吗?)
我只是尝试运行“Hello World”并得到“Hell World”。忘记Java。我不适合这样做,我会尝试更简单的方法。【参考方案3】:
主要问题是您过去是否做过任何编程,因为这可能是主要工作。我怀疑如果你没有,你可以过得去,但不一定做得好。您表示您没有任何编程经验,因此这是您遇到最多问题并花费大部分时间的地方。 Java 不一定比其他类似语言学得更快或更慢。
Sun 的 Java 教程很棒,但不幸的是,编程是需要练习的事情之一,这取决于您的空闲时间。也需要经常停下来练习,而不是读了半本书。如果您投入了 10 周的全职时间 - 是的,对某些人来说是完全可行的。毕竟,大学生在一学年就成为合格的开发人员,他们学习其他不相关的课程。
我将专注于首先完全了解 Java,而不尝试 J2ME。然后就可以进行切换了。
此外,要意识到语言和标准库之间有很大的不同。重要的是学习语言。每个人都使用某些标准库调用并且对学习至关重要,但它们不是语言的一部分。但是,您永远不会真正了解整个库(尽管您会从经验中学习)。了解如何找到您正在寻找的功能比了解它是什么或在哪里找到它更重要。重要的是避免重新发明***。
另外,请意识到您最终可能只是一个合格的开发人员。经验需要时间,而且往往不能一蹴而就。
此外,即使您学会了编程,也会错过一些关键的 CS 通用知识,例如数据结构和算法。编程书籍很少教这些,您必须自己学习(例如,请参阅 TopCoder 教程)。
【讨论】:
只要掌握了面向对象编程的窍门,就可以轻松完成。仅此一项可能需要 2 到 3 周才能掌握。一旦你掌握了这些,并且掌握了一套不错的语法(或者至少对语言可以做什么有基本的了解),那么你就会顺利上路。首先了解是什么(这种语言能做什么),然后才尝试了解如何(它是如何做到的,我需要什么语法才能让它运行)。 @organiccat:我认为你高估了普通的初级程序员。我认为独自工作的人很难在这么长的时间内真正理解这些东西。理解你提到的“什么”是一个很大的概念。很多刚接触编程世界的人并不真正知道什么是可行的或不适合一种语言,根据我的经验,这需要一段时间才能适应。 @Beska:我想一般没有动力的初学者不会去 *** 来问这个问题 :) OP 似乎有足够的动力去学习。他似乎也对 J2ME 更感兴趣,它确实消除了某些问题(同时添加了其他问题) 嗯...嗯,我的意思是一般的有动力的初学者。你肯定是对的,积极主动会有所帮助,他提出了很好的问题并试图做正确的事情,但我认为这还不够,因为时间相对较短。当然,每个人都不一样,所以我想他可以成功,但我认为他会是例外而不是规则。话虽这么说,这不是一个通过失败的情况......无论如何,他会在某种程度上成功并在某种程度上失败......其中一些可能只是受制于我们所说的“成功”。 10 周听起来非常非常乐观,除非他非常聪明,对许多符号数学有很好的数学理解(每个人都在高中学习但很少人能记住的数学)并且每天工作 10 小时在它。更有可能在 10 周内,他将能够编写糟糕的 Java 代码来解决琐碎的问题。【参考方案4】:好的,这里有很多人说“是”和“是的,但会很难”,所以我会有所不同。
没有。
问题不是在 10 周内“学习 Java”,因为我认为到 10 周后,您将能够编写一些东西并知道如何解决一些简单的问题.
但这不会让您为 J2ME 快速课程做好准备。快速通道课程往往适用于在先决条件方面具有强大背景的人。您可能能够做很多事情,但是如果没有了解您正在做的事情的背景为什么,它看起来就像是一个很多半随机的东西要死记硬背,很快就会消失。
基本上,我认为这只是需要时间:时间让课程深入人心,时间去尝试和失败几次,然后为什么突然跳出来给你...
最终,我怀疑你可以通过它,但你最终不会非常精通。 (Uri 帖子的最后两段说明了一切。)
我不想完全沮丧,我绝对希望你做得很好并取得成功......但我不想赌钱。
(请理解,我从 Adam 不认识你……所以我根据我对我的经历以及与我共事过的人的经验发表声明……所以这不是对你不屑一顾……只是观察到这是你要吃的一顿非常大的饭。)
【讨论】:
你可以了解所有关于java的知识,但仍然不知道如何完美地使用每一位。很多人认为编程是一种语言,我不这么认为。【参考方案5】:第一次学习编程有点像学习一门外语。您将能够轻松地重新创建您所教的短语,但是您将缺乏对为什么这样做的上下文的理解,因此将无法有效地解决新问题。这只是需要时间。
如果你是初学者,我真的不推荐 Java。 Python 会更好(免责声明:Python 粉丝,但有充分的理由)。
但是,我认为初学者不会比Head First Java 做得更好
【讨论】:
最好的外语类比......即使我不是蟒蛇人。【参考方案6】:您遇到的主要问题是您是第一次使用 Java 学习编程,我认为 Java 不是最好的入门语言。
我想您正在处理一个工作项目,是这样吗?这种压力可能会使事情变得更糟。取决于项目的复杂程度,您可能会成功,但在没有背景知识的情况下在 10 周内学习 Java 是另一个问题。
【讨论】:
+1。我发现 Java 是我学过的所有语言中第二难的(仅次于 C++)。我认为大约 3 年之后我才变得擅长它。 在某种程度上你是对的,很难学。但好处是它迫使你学习(大部分)最佳实践规则。当我开始学习 CF 和 php 等脚本语言时,我不得不从头开始重新学习编程。对于任何有兴趣在以后成为一名认真的程序员的人,我更愿意建议 Java 的“艰难”之路,而不是脚本语言。如果你只是在做简单的编码,当然,只要坚持脚本。【参考方案7】:我在一所高中教 Java 编程,我们的课程为期 14 周。这段时间足以让学生在面向对象编程方面打下坚实的基础,但学生的经验不足以开发大型项目或任何过于复杂的东西。
许多学校使用 Lambert & Osbborne 的教科书:
Lambert, K. 和 Osborne, M. Java 基础知识:AP 考试的 AP 计算机科学基础知识。第三版。 2006. 汤姆森课程技术。
【讨论】:
【参考方案8】:我是一名计算机科学专业的学生,刚刚完成了我的第一门 Java 课程。我会说如果你努力学习 Java,10 周内就可以学会它。但你只会得到一个介绍!编程不仅仅是了解语言(API、语法等)..
有史以来最好的 Java 书籍:http://www.amazon.com/Introduction-Java-Programming-Comprehensive-Version/dp/0136012671/ref=sr_1_1?ie=UTF8&s=books&qid=1242328533&sr=8-1
【讨论】:
【参考方案9】:这取决于你想努力工作,但有可能。您将遇到的问题是您必须在学习 Java 的同时学习编程。这是两个非常不同的东西。编程就是知道如何读写逻辑,而 Java 是一种你编写它的语言。如果你有数学或物理背景,这会容易得多,因为你已经接触过这种方式的思考。
如果你没有关于 Java 入门的书籍,我会去买一本。
我还会拿起这本书Code(如果可能的话,我会尝试在几天内完成这本书,如果不是周末的话)。实际上,我会在 10 周内先完成这项工作,因为这将成为您编写 Java 所需知识的基础。
在 10 周的时间里,你将不得不每天晚上进行大量学习,以便在你去上课时掌握它的窍门。我最好的建议是,当你上课时,做很多笔记,不要指望什么都能理解。大部分扔给你的东西一开始可能会超出你的想象,你会忘记。没关系。课后如果结束,回去复习笔记等,直到它开始有意义。
【讨论】:
【参考方案10】:我对初学者的Java编程经验并不难学;但是,这实际上取决于您的面向对象编程技能如何。由于你说你没有编程经验,我想我推荐一个网站,http://www.exampledepot.com/,并输入任何 java 关键字,如 Swing、FileInputStream,它提供了很多可以应用到项目中的实际示例。
请买一本java书(Sams'java 6 in 24 hours)作为参考。它将在短时间内为您提供真正的 Java 基本技能。而且我相信您将有足够的时间在 10 周内了解 Java 和 J2ME。祝你好运。
老虎
【讨论】:
【参考方案11】:我不得不说,您在短短 10 周内完成了很多工作,我刚刚在印第安纳大学东南部完成了一个学期的 Java 编程,我认为我还没有开始接触表面。 Java 是一种非常严格的语言,如果您根本没有编程经验,它的语法很难掌握。我将提供这些建议,去 www.bluej.org 并在那里下载,Java 编译器据说是最容易使用的,大多数大学都在使用它。这也是,我们所学到的以及我现在所知道的,我可以说,他们是对的。 Java 是一种面向对象的语言,Bluej 让您对对象有很好的理解。他们还向您展示了如何设计、类、方法、数组、数组列表、哈希映射,所有这些都在这个站点上并且它是免费的。我希望这对您的挑战有所帮助并祝您好运。
【讨论】:
【参考方案12】:关于您需要多长时间成为编程专家,有不同的观点。我不打算添加它。 我建议如果您完全没有编程经验,请先学习 C。然后转移到Java。 以下站点非常适合学习java。 http://www.javapassion.com
【讨论】:
随着 Oracle 收购 Sun,Sang Shin 网站的主人不得不离职,他不得不将其转换为 jpassion.com/portal 付费服务。更多信息请访问:jpassion.com/…。【参考方案13】:可行,是的。但是你会错过很多编程背后的理论,所以即使你可能对这门语言足够了解,可以用它编写代码,你也不会知道如何很好地编程。我建议您在阅读时选择一些有关面向对象设计的初学者书籍。最好的(至少对我来说)一门新语言的教学和帮助工具是这样的教程和论坛(别忘了先用谷歌搜索,有很多初学者的问题都可以通过简单的搜索得到解答)。
祝你好运!
【讨论】:
【参考方案14】:您绝对可以在 10 周内很好地了解 Java,但如前所述,熟能生巧(或至少更好......)。几个起点:
Java API 将成为您的朋友: http://java.sun.com/j2se/1.5.0/docs/api/
Java 有很多内置功能,所以尽量不要复制它(字符串函数等等)。
此外,IDE 可能会使一些事情变得更复杂,但它也可以帮助您找到解决 API 的方法。 Eclipse 是一个很好的起点(而且它是免费的) http://www.eclipse.org/
希望能有所帮助..
【讨论】:
【参考方案15】:你能在十周内学会绘画、雕刻或绘画吗?任何人都可以学习敲击编程的按键,就像任何人都可以拿起画笔一样,但是需要时间和才能来培养发展的艺术性。帮自己一个忙,把时间和精力花在学习上,而不是填鸭式上。您通过齐心协力了解如何发展所学到的经验教训将比为满足某个任意日期而拼命学习要好得多。
【讨论】:
其实我十个星期就学会了画画。没有达到很高的水平,但足以让我诚实地说我可以做到,至少对于静物设置。不过,还有很多东西要学......【参考方案16】:我可以同情...曾经陷入过类似的困境,尽管我至少有一些背景。关于Head Fist Java,我同意@ShawnMilo。还推荐 Sams Teach Yourself Java in 21 Days,鉴于您说您没有编程背景,我强烈建议您查看 Matt Weisfeld 的 The Oject Oriented Thought Process。我也同意这个线程上所有的人的观点,他们说编程不仅仅是“简单地”学习一种语言(尤其是如果它是 Java)。话虽如此,祝你好运,神速。
PS 我会为幽默感 +1 @Patrick McDonald,但我没有足够的代表!
PPS 和@Robin 的另一个虚拟 +1。我想知道四个约克郡人什么时候会加入这个话题......
【讨论】:
【参考方案17】:对于java,你还需要学习如何使用IDE和设置你的环境,这样才能让java工作......
那么对于 J2ME,您需要了解有关嵌入式/移动系统的知识......
10 周的教程是可以的,但这也取决于你在 j2me 课程中要做什么......
我会先学习 j2me 教程(假设您至少了解变量函数和 OO)...
祝你好运……
【讨论】:
【参考方案18】:学习编程的最佳建议基本上是:编写大量程序。
Project Euler 包含许多非常适合此目的的问题,因为生成的程序在大小上易于管理,同时实际上允许您解决明确的问题。
http://projecteuler.net/index.php
【讨论】:
【参考方案19】:我与一些自学成才的程序员一起工作,他们阅读了诸如“在 0.01 天内学习 javascript”之类的内容。 thedailywtf.com 的每一天都值得分享。
此外,在面试中,你会被问到“你有多少 javascript 经验?”,你的回答是“0.01 天”。
祝你好运,但我希望我们的道路不会再过几年
【讨论】:
【参考方案20】:我不会说我“没有编程经验”,但在学习 J2ME 之前,我所做的大部分工作都是 10 多年前的汇编程序。
我跳过了学习“JAVA”并学习了 J2ME,这似乎是 java 的一个小子集。它足够小(如果你忽略扩展),它非常易于消化,并且在一本中等大小的书中很容易解释。从这个角度来看,它有点像汇编程序(需要了解的东西数量有限),尽管我确实需要了解 OOP。
我买了几本 J2ME 书籍,但我觉得最有帮助的一本是:Riggs 等人的“使用 Java 2 平台编程无线设备”。
我不记得具体花了我多长时间,但我很确定我在 12 周左右的时间里编写了可部署的代码(它是一个移动考勤表应用程序)。
【讨论】:
【参考方案21】:我没有编程背景,想学习 PHP。我花了大约 6 个月的时间在我的正常工作之外练习,以培养我的技能,足以为网站编写一些简单的应用程序。 Java 有点复杂...
【讨论】:
【参考方案22】:10 周?你疯了吗? Java API 非常庞大,更何况 Java EE 怎么可能在 10 周内完成呢?你可能会在几个月内完成其中的 5%。我会说至少需要一年的时间来为新手学习 Java 基础知识。我的意思是你不能仅仅阅读一个主题的一章然后认为你理解了它。您必须花费大量时间使用该概念或部分 API 以至少将其记入记忆中,别介意真正掌握它。
实际上,我会说至少需要 2 年或 3 年的编程才能达到行业入门级标准。那是你真正应用自己的时候。
【讨论】:
学习java搭建框架需要多长时间?【参考方案23】:我不明白你为什么不能这样做。我是一个爱读书的人,所以选择一本书并浏览它。设置一些小项目并完成它们。 10 周比我通常学习一门新语言的时间要长。
玩得开心,希望你能学到很多东西。
我会发布我学习 java 的书籍,但它们在家里,而我不在。
【讨论】:
【参考方案24】:正如其他人所说,如果你有计算机编程背景,10 周应该就足够了。
如果您是 Jeff Atwood,则接近 6-8 周。
【讨论】:
以上是关于一个完整的新手学习 Java 需要多长时间? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章