一个完整的新手学习Java需要多长时间?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/864640/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How Long Does it Take to Learn Java for a Complete Newbie?
提问by
I have absolutely no programming experience but need to learn Java - enough to take a J2ME fasttrack course. I only have 10 weeks. Can I do this? What's your advice about the best resources I can use ?(currently using Sun's Java Tutorials).
我完全没有编程经验,但需要学习 Java - 足以参加 J2ME 快速课程。我只有10周。我可以这样做吗?您对我可以使用的最佳资源有何建议?(目前使用 Sun 的 Java 教程)。
回答by Uri
The main question is whether you've done any programming in the past since that may be the main effort. I would suspect that if you had not, you could get by but not necessarily do well. You indicate that you didn't have any programming experience, so this is where you are going to have most problems and spend most of your time. Java would not necessarily be faster or slower to learn than other similar languages.
主要问题是您过去是否做过任何编程,因为这可能是主要工作。我怀疑如果你没有,你可以过得去,但不一定做得很好。您表示您没有任何编程经验,因此这是您遇到最多问题并花费大部分时间的地方。Java 不一定比其他类似的语言学得更快或更慢。
Sun's Java tutorials are great, but unfortunately programming is one of the things where practice is necessary, and that depends on your free time. It's also necessary to stop and practice frequently rather than after reading half a book. If you devoted 10 weeks full time to it - yes, it's quite doable for some people. After all, college students become passable developers in one academic year where they take other unrelated courses.
Sun 的 Java 教程很棒,但不幸的是,编程是需要练习的事情之一,这取决于您的空闲时间。还要经常停下来练习,而不是读了半本书。如果你全职投入 10 周时间 - 是的,这对某些人来说是完全可行的。毕竟,大学生在学习其他不相关的课程的一学年内成为合格的开发人员。
I would focus on figuring out Java fully first without trying for J2ME. Then you can make the switch.
我将专注于首先完全弄清楚 Java,而不尝试 J2ME。然后就可以进行切换了。
In addition, realize that there's a big difference between the language and the standard library. The important thing is to learn the language. There are certain standard library calls that everyone uses and are critical to learn, but they're not part of the language. However, you'll never really know the entire library (Though you'll learn from exprience). It's more important to learn how to find the functionality that you're looking forthen to know exactly what it is or where to find it. The important thing is to avoid reinventing the wheel.
此外,要意识到语言和标准库之间存在很大差异。重要的是学习语言。每个人都使用某些标准库调用并且对学习至关重要,但它们不是语言的一部分。但是,您永远不会真正了解整个库(尽管您将从经验中学习)。更重要的是了解如何找到您正在寻找的功能,然后确切地知道它是什么或在哪里可以找到它。重要的是避免重新发明轮子。
Also, realize that you may only be a passable developer at the end. Experience takes time and often can't be hastened.
另外,要意识到您最终可能只是一个合格的开发人员。经验是需要时间的,而且往往是不能加速的。
In addition, even if you learn to program you will miss some of the critical general CS knowledge like data structures and algorithms. Programming books rarely teach that, you will have to learn that yourself (see, for example, the TopCoder tutorials).
此外,即使你学会了编程,你也会错过一些关键的通用 CS 知识,比如数据结构和算法。编程书籍很少教导这一点,您必须自己学习(例如,参见 TopCoder 教程)。
回答by Primetime
I don't see why you couldn't do it. I am a book person, so pick a book and run through it. Set up some small projects and finish them. 10 weeks is longer then I usually get to learn a new language.
我不明白你为什么不能这样做。我是一个爱读书的人,所以挑一本书并阅读它。设置一些小项目并完成它们。10 周比我通常学习一门新语言要长。
Have fun and hope you learn a lot.
玩得开心,希望你能学到很多东西。
I would post the books I learned java with but they are at home and I ain't.
我会发布我用来学习 Java 的书籍,但它们在家里,而我不在。
回答by kemiller2002
It depends on how hard you want to work, but yes it's possible. The problem you are going to have is that you have to learn to program along with learning java. These are two very different things. Programming is knowing how to read and write logic and Java is a language you write it in. If you have a math or physics background, this is going to be a lot easier, as you are already exposed to thinking in such a manner.
这取决于你想工作的努力程度,但这是可能的。您将遇到的问题是,您必须在学习 Java 的同时学习编程。这是两件非常不同的事情。编程就是知道如何读写逻辑,而 Java 是一种用于编写逻辑的语言。如果您有数学或物理背景,这将容易得多,因为您已经接触到了这种思考方式。
If you don't have books on beginning Java I would go buy one of those.
如果你没有关于 Java 入门的书,我会去买一本。
I would also pick up the book Code(I would try and get through this in a few days, if not over the weekend if possible). Actually with 10 weeks I would do this first as it will be a foundation for what you'll need to know to program Java.
我也会拿起这本书代码(如果可能的话,我会尝试在几天内完成它,如果不是在周末)。实际上,在 10 周内,我会先做这件事,因为它将为您编写 Java 程序所需的知识打下基础。
With 10 weeks, you are going to have to pretty much study every night to get the hang of it by the time you go to class. My best advice is that when you take the class, take lots of notes, and don't expect to understand everything. Most of what gets thrown at you there will probably go over your head at first and you'll forget. That's ok. After the class if over, go back and review the notes etc until it starts to make sense.
在 10 周的时间里,你几乎每晚都必须学习才能在上课时掌握它的窍门。我最好的建议是,当你上课时,做大量笔记,不要期望能理解所有内容。大多数扔给你的东西一开始可能会超过你的头脑,你会忘记。没关系。课后如果结束,回去复习笔记等,直到它开始有意义。
回答by Fry
Doable, yes. But you'd missing out on a lot of theory behind programming so even though you may know the language well enough to code in it, you won't know how to program well. I'd suggest picking up a few beginner's books on object oriented design while you're at it. The best (for me at least) teaching and helping tools for a new language are tutorials and forums like this (don't forget to google first though, there are a lot of beginner questions answered with a simple search).
可行,是的。但是你会错过很多编程背后的理论,所以即使你可能对这门语言足够了解,可以用它来编写代码,但你不会知道如何很好地编程。我建议您在学习时拿起一些关于面向对象设计的初学者书籍。最好的(至少对我来说)一门新语言的教学和帮助工具是这样的教程和论坛(但不要忘记先谷歌,通过简单的搜索可以回答很多初学者的问题)。
Good luck!
祝你好运!
回答by ivmos
The main problem you're having is that you're learning programming for the first time with Java and I think Java isn't the best language to start.
您遇到的主要问题是您是第一次使用 Java 学习编程,我认为 Java 不是最好的入门语言。
I suppose that you're addressing a work project, Is this the case? That pressure might make things worse. Depending on how complex the project is you might success but learning Java in 10 weeks without background knowledge is another issue.
我想你正在处理一个工作项目,是这样吗?这种压力可能会使事情变得更糟。根据项目的复杂程度,您可能会成功,但在没有背景知识的情况下在 10 周内学习 Java 是另一个问题。
回答by newfie_coder
You can definitely get a good understanding of Java in 10 weeks, but as mentioned before, practice makes perfect (or at least better...). A couple of starting places:
你绝对可以在 10 周内对 Java 有一个很好的理解,但正如前面提到的,熟能生巧(或者至少更好......)。几个起点:
The Java API will be your friend: http://java.sun.com/j2se/1.5.0/docs/api/
Java API 将成为您的朋友:http: //java.sun.com/j2se/1.5.0/docs/api/
Java has a lot of built-in functionality so try not to duplicate it (String functions and whatnot).
Java 有很多内置功能,所以尽量不要复制它(字符串函数等等)。
Also, an IDE might make some things a little more complicated, but it'll also help you find your way around the API. Eclipse is a good place to start (and it's free) http://www.eclipse.org/
此外,IDE 可能会使某些事情变得更复杂一些,但它也会帮助您找到解决 API 的方法。Eclipse 是一个很好的起点(而且是免费的) http://www.eclipse.org/
Hope that helps a little..
希望有点帮助..
回答by Wayne Hartman
Can you learn to draw, sculpt, or paint in ten weeks? Anyone can learn to punch the keys to program, just as anyone can pick up a brush, but it takes time and talent to cultivate the artistry to develop. Do yourself a favor and put the time and effort in to learning, not cramming. The lessons you learn by a concerted effort to know how to developwill serve you much better than binging on it to meet some arbitrary date.
你能在十周内学会绘画、雕刻或绘画吗?任何人都可以学习到的按键一拳计划,就像任何人都可以拿起画笔,但这需要时间和人才培养的技艺发展。帮自己一个忙,把时间和精力放在学习上,而不是死记硬背。你通过共同努力学习如何发展所学到的教训,比为了满足某个随意的日期而埋头苦干要好得多。
回答by Patrick McDonald
10 weeks? Apparently you can do it in 24 hours!
10周?显然你可以在 24 小时内完成!
http://www.amazon.com/Sams-Teach-Yourself-Programming-Hours/dp/0672328445
http://www.amazon.com/Sams-Teach-Yourself-Programming-Hours/dp/0672328445
EDIT:
编辑:
Okay, so only 1 person found my answer amusing, but not amusing enough to upvote. The real question is how good do you need to be in 10 weeks?
好的,所以只有 1 个人觉得我的回答很有趣,但不够有趣,无法点赞。真正的问题是你需要在 10 周内达到多好?
If you get yourself a good book (the one linked above has some good reviews on Amazon), then in 10 weeks you might be proficient enough to do something useful in Java, but it takes years to become expert. Any time spent between 10 weeks and several years will move you from beginner towards expert.
如果你给自己买了一本好书(上面链接的那本书在亚马逊上有一些很好的评论),那么在 10 周内你可能会足够熟练地用 Java 做一些有用的事情,但要成为专家需要几年的时间。任何花费在 10 周到几年之间的时间都会使您从初学者变成专家。
Oh and read Teach Yourself Programming in Ten Years.
哦,阅读十年后自学编程。
回答by ShawnMilo
Learning to program for the first time is kind of like learning a foreign language. You will easily be able to recreate the phrases you are taught, but you will lack the understanding of the context for why it is done that way, and will thus be unable to solve new problems effectively. It simply takes time.
第一次学习编程有点像学习一门外语。您将能够轻松地重新创建您所教的短语,但是您将缺乏对为什么这样做的上下文的理解,因此将无法有效地解决新问题。这只是需要时间。
If you're a first-time programmer, I really can't recommend Java. Python would be much better (disclaimer: Python fan-boy, but for good reasons).
如果你是初学者,我真的不推荐 Java。Python 会好得多(免责声明:Python 粉丝,但有充分的理由)。
However, I don't think a beginner could do much better than Head First Java
但是,我认为初学者不会比Head First Java做得更好
回答by avstrallen
I can sympathise... having once been in a similar predicament, though I did at least have some background. I concur with @ShawnMilo regarding Head Fist Java. Also recommend Sams Teach Yourself Java in 21 Daysand, given that you say you have no programming background, I strongly urge you to look at The Oject Oriented Thought Processby Matt Weisfeld. I also concur with all the people on this thread who say that there's WAY more to programming than 'simply' learning one language (especially if it's Java). Having said that, good luck and god speed.
我可以同情......曾经处于类似的困境,尽管我至少有一些背景。我同意@ShawnMilo 关于Head Fist Java 的看法。还推荐 Sams Teach Yourself Java in 21 Days,鉴于你说你没有编程背景,我强烈建议你看看Matt Weisfeld 的The Oject Oriented Thought Process。我也同意这个线程上的所有人的看法,他们说编程不仅仅是“简单地”学习一种语言(特别是如果它是 Java)。话虽如此,祝你好运和上帝的速度。
PS I'd +1 @Patrick McDonald for sense of humour, but I don't have enough rep!
PS我会+1@Patrick McDonald以获得幽默感,但我没有足够的代表!
PPS And another virtual +1 for @Robin. I was wondering when the Four Yorkshiremen would get in on this thread...
PPS 和@Robin 的另一个虚拟 +1。我想知道四个约克郡人什么时候会加入这个话题......