How Long Does it Take to Learn Java for a Complete Newbie? [closed]
Asked Answered
O

24

26

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).

Outthink answered 14/5, 2009 at 17:26 Comment(4)
What's your programming background (experience and education)?Rhododendron
Some people suggest it could take 10 years (norvig.com/21-days.html)!! I think 10 weeks is reasonable for picking up a NEW language if you already have relevant previous programming experience. Otherwise there's too much new concepts involved.Jacobinism
I am about to finish Java in just 24 hours.Soinski
if you are previous programmer either, python, c++ or any programming language that follows OOPS then it will take around 5 days to an expert if the concepts are clear. if coming from functional programming it might take 2 weeks because you need to take OOPS. if New Programmer Take you timeRefrigeration
D
56

10 weeks? Apparently you can do it in 24 hours!

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?

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.

Oh and read Teach Yourself Programming in Ten Years.

Demilune answered 14/5, 2009 at 17:50 Comment(10)
I won't downvote this as it's so funny!Moonstruck
You could always upvote it ;) The -1 tells me that there is a sense of humor lacking in some of our fellow SOers.Demilune
Or maybe they're afraid that if you get upvoted, people will believe you. ;)Outfight
Ok. Funny enough for a vote. It's relevant as the 24h method is something that doesn't seem to die.Moonstruck
+1 24 hours...luxury! When I was young we would create new languages on the walk to and from school. 5 miles to school and 7 back, uphill both ways.Gerontology
We weren't allowed to create new languages--we had to code in raw machine code in our heads while we were walking to school. In waist-deep snow.Outfight
all I had was some brass disks and a fileLennalennard
I had a floppy disk, but I had to set each bit manually with a magnifying glass and a magnetized pin.Unbend
All I had back in my day were 1's and 0's. And sometimes we only had 0's.Halogenate
+1 for the link to "Oh and read Teach Yourself Programming in Ten Years." Great article.Freon
G
30

OK, based on some of the previous answers, I am expecting to get downvoted for this, but, I think you are delusional to think you can learn, on your own, how to program in Java in 10 weeks with no programming background. No person, with NO programming experience, other than some sort of prodigy, is going to learn to program in Java or almost any language in 10 weeks.

For clarity, copying and running hello world from a book does not make you a programmer. Hell, it will most likely take days just to get that working in some IDE.

Now, can you study and potentially pass some test? Maybe, but that depends on the depth and format of the test.

If I asked if I could become a doctor in 10 weeks, I would get laughed at for asking, so I am somewhat surprised at the answers that indicate that it is somewhat possible. I can stick a bandaid on my daughter now, but it hardly makes me a medical professional, it just means I managed their version of hello world.

Gerontology answered 14/5, 2009 at 18:37 Comment(3)
their version of hello world lol. Love this.Wireman
This should have been the accepted answer as it cautions you (so that one can plan better/alternate routes) and it addresses the question an average person would have. All the 'yes' answers can be applicable to any question (Can I beat a chess grandmaster? Can i ace combinatorial math?)Salol
I just tried to run "Hello World" and got "Hell World". Forget Java. I'm not cut out for this am going to try something easier.Diazine
A
24

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.

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.

I would focus on figuring out Java fully first without trying for J2ME. Then you can make the switch.

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 for then 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).

Acridine answered 14/5, 2009 at 17:31 Comment(5)
Easily done, once you get the hang of Object Oriented programming. That alone might take 2 to 3 weeks to grasp. Once you've got that, and a decent set of syntax (or at least the basic understanding of what the language can do) then you'll be well on your way. First understand the what (what can this language do), only then attempt to understand the how (how does it do it, what syntax do I need to make it go).Mcdougal
@organiccat: I think you're overestimating the average starting would-be-programmer. I think someone working on their own would be hard pressed to really grok these things in that amount of time. Understanding that "what" that you mention is a pretty big concept. A lot of people brand new to the programming world don't really have any idea of what is feasible or not for a language, and it takes a while for that to settle in, in my experience.Unbend
@Beska: I would like to guess that the average unmotivated starter would not go to StackOverflow to ask this question :) OP seems motivated enough to learn. He's also seeming more interested in J2ME, which does eliminate certain problems (while adding others)Acridine
Hmm...well, I meant the average motivated starter. You're definitely right in that being highly motivated will help, and he's asking good questions and trying to do the right thing, but I just don't think it will be enough, given the relatively short timeframe. Of course, everyone is different, so I guess he could pull it off, but I'm thinking he'd be the exception rather than the rule. That being said, this isn't a pass-fail situation...no matter what, he'll succeed to some degree and fail to some degree...some of this might just be subject to what we call "success."Unbend
10 weeks sounds really, really optimistic, unless he's very smart, has good mathematical understanding of lots of symbolic mathematics (the sort that everyone learns in high school but few people retain) and works 10 hours a day at it. More likely in 10 weeks he'll be able to write terrible Java code to solve trivial problems.Radiosensitive
U
16

Okay, there are a lot of people here saying, "yes" and "yes, but it will be hard" so I'll differ.

No.

The problem isn't "learning Java" in 10 weeks, because I think that by the time 10 weeks is up, you'll be able to program some things and have an idea of what to do to solve some simple things.

But that won't make you ready for a J2ME fast track course. Fast track courses tend to be for people that have a strong background in the prerequisites. You might be able to do many of the things as you are going along, but without the background to understand the why of what you're doing, it will seem like a lot of semi-random things to memorize by rote, and will likely quickly vanish.

Basically, I think it just takes time: time to let lessons sink in, time to experiment and fail a few times so that the why suddenly jumps out at you...

Ultimately, I suspect that you could get through it, but that you would not end up being very proficent at all. (the final two paragraphs of Uri's post say it all.)

I don't want to be a complete downer, and I definitely hope you do well and succeed...but I would hate to bet money on it.

(Understand, I don't know you from Adam...so I'm making statements based on my experience with how it was for me, and people I've worked with...so this isn't a slight against you...just an observation that this is a very big meal you're setting down to eat.)

Unbend answered 14/5, 2009 at 18:17 Comment(1)
you can know all about java and still dont know how to use each bit perfectly. Many people think programming is about a language, i dont think so.Ludlow
E
7

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).

However, I don't think a beginner could do much better than Head First Java

Emboss answered 14/5, 2009 at 18:0 Comment(1)
The best analogy with the foreign language...even if i'm not a python guy.Honshu
S
4

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.

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.

Selfridge answered 14/5, 2009 at 17:38 Comment(2)
+1. I found Java the second hardest (after C++) of all the languages I've learned. I think it was about 3 years before I got any good at it.Triphibious
In a way you are right, it is hard to learn. But the advantage is that it forces you to learn (mostly) best practice rules. I had to re-learn programming from the ground up when I started on scripting languages like CF and PHP. I would FAR more suggest the "hard" road of Java than scripting languages for anyone who is interested in becoming a serious programmer later in life. If you're just doing light coding, sure, just stick to the scripts.Mcdougal
S
4

I teach Java Programming at a high school, and our course runs 14 weeks. This is enough time to give students a solid foundation in object oriented programming, but students are not experienced enough to develop and large projects or anything too complicated.

Many schools use the textbook by Lambert & Osbborne:

Lambert, K. & Osborne, M. Fundamentals of Java: AP Computer Science Essentials for the AP Exam. 3rd ed. 2006. Thomson Course Technology.

Sprague answered 30/7, 2009 at 18:14 Comment(0)
B
3

I'm computer science student who just finished my first Java course.. I'd say it's possible to learn Java on 10 weeks if you hard work on it. But you'll only get an intro! Programming is much more than just knowing the language (API, syntax etc)..

Best Java book ever: http://www.amazon.com/Introduction-Java-Programming-Comprehensive-Version/dp/0136012671/ref=sr_1_1?ie=UTF8&s=books&qid=1242328533&sr=8-1

Braunite answered 14/5, 2009 at 19:15 Comment(0)
D
2

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.

If you don't have books on beginning Java I would go buy one of those.

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.

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.

Devilish answered 14/5, 2009 at 17:32 Comment(0)
R
2

My experience in Java programming for beginner is not difficult to learn; however it is really depended on how your object-oriented programming skills are. As you posed that you had no programming experience , I guess that I recommend a web site, http://www.exampledepot.com/ , and type any java keyword such as Swing, FileInputStream, it provides a lot of practical examples that you can apply into a project.

Please, buy a java book (Sams'java 6 in 24 hours) as reference. It will give you really basic skills for java within a short time. and I sure you will have enough time to learn about the java and J2ME within 10 weeks. Good Luck.

Tiger

Raguelragweed answered 15/5, 2009 at 1:53 Comment(0)
C
2

I have to say that you are taking on a lot in just 10 weeks, I just finished a semester of Java programming at Indiana University Southeast, and I don't think I have begun to scratch the surface yet. Java is a very strict language in that its syntax is very tough to get a handle on if you have no programming experience at all. I will offer these pieces of advice go to www.bluej.org and down load there, Java compiler it is said to be the easiest to work with and that most college's use this. It is also, what we learned on and from what I know now I can say, they are right. Java is an object oriented language, and Bluej gives you a great understanding of objects. They also show you how to design, classes, methods, array, array list, hash maps, all of that is on this site and it is free. I hope this helps and good luck with your challange.

Condolence answered 16/5, 2009 at 16:16 Comment(0)
S
2

There are different schools of thought regarding how much time you need to become expert in programming. I'm not going to add to it. I suggest if you have absolutely no programming experience, learn C first. Then move to Java. The following site is very good for learning java. http://www.javapassion.com

Soche answered 30/7, 2009 at 18:7 Comment(1)
As Oracle bought Sun the host of the site Sang Shin had to leave the job and he had to convert it to jpassion.com/portal a paid service. More on it at:jpassion.com/….Soche
O
1

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!

Oxytocic answered 14/5, 2009 at 17:36 Comment(0)
T
1

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:

The Java API will be your friend: 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).

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/

Hope that helps a little..

Trio answered 14/5, 2009 at 17:40 Comment(0)
T
1

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 develop will serve you much better than binging on it to meet some arbitrary date.

Trixie answered 14/5, 2009 at 17:41 Comment(1)
Actually, I did learn to draw in ten weeks. Not to a really high level, but enough that I can honestly say that I can do it, at least for still life set-ups. LOTS left to learn, though....Antihelix
P
1

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 Days and, given that you say you have no programming background, I strongly urge you to look at The Oject Oriented Thought Process by 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.

PS I'd +1 @Patrick McDonald for sense of humour, but I don't have enough rep!

PPS And another virtual +1 for @Robin. I was wondering when the Four Yorkshiremen would get in on this thread...

Paisley answered 14/5, 2009 at 18:16 Comment(0)
H
1

For java, you also need to learn how to use an IDE and setup your environment and this kind of this to make java works...

Then for J2ME, you'll need to know things about embedded/mobile systems....

10 weeks with the tutorials would be ok but it also depends on what you're going to do in your j2me course...

I would go head first in a j2me tutorial (assuming you know a minimum concerning variables functions and OO)...

good luck...

Honshu answered 14/5, 2009 at 21:20 Comment(0)
T
1

The best advice for learning to program is basically: write a lot of programs.

Project Euler contains lots of problems well suited for this purpose, as the resulting programs are manageable in size while actually allowing you to solve an explicit problem.

http://projecteuler.net/index.php

Toothsome answered 14/5, 2009 at 21:34 Comment(0)
I
1

I worked with some self-taught programmers who read stuff like "learn javascript in 0.01 days". Everyday was worth it's share of thedailywtf.com.

Besides, at a job inteview you get asked "how much javascript experience do you have?", your answer "0.01 days".

so good luck but I hope our path won't cross before a few more years

Ingrain answered 14/5, 2009 at 21:53 Comment(0)
A
1

I wouldn't say I had "no programming experience" but prior to learning J2ME, most of what I'd done was in assembler more than 10 years prior.

I skipped learning "JAVA" and learned J2ME, which appears to be a small subset of java. It's small enough (if you ignore the extensions) that it's very digestable and easily explained in a moderately sized book. From that standpoint, it was a little bit like assembler (somewhat limited amount of stuff to know) although I did need to learn about OOP.

I bought a few J2ME books, but the one I found most helpful was: "Programming Wireless Devices with the Java 2 Platform" by Riggs, et al.

I don't recall exactly how long it took me, but I'm pretty sure I was writting deployable code (it was a mobile time sheet application) in 12 weeks or so.

Autarchy answered 20/5, 2009 at 19:27 Comment(0)
S
1

10 weeks? Are you crazy? the Java API is massive not to mention Java EE how could possibly get through that in 10 weeks? you could maybe get through 5% of that in a couple of months. I'd say it would take at least a year to lean Java fundamentals for a newbie. I mean you can't just read a chapter on a subject and then think you understand it. You have to spend a good deal of time using that concept or part the API to at least commit it to memory never mind actually have a good grasp of it.

Realistically I'd say at least 2 maybe three years of programming to reach industry entry level standard. And that's if you really apply yourself.

Steepen answered 31/3, 2011 at 18:45 Comment(1)
How long take studying for building framework with java?Batish
K
1

I had no programming background and wanted to learn PHP. It took me about 6 months practicing beside my normal job to develop my skills enough to write some simple applications for a website. Java is a bit more complex...

Klara answered 10/1, 2012 at 7:44 Comment(0)
V
0

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.

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.

Vietnam answered 14/5, 2009 at 17:31 Comment(0)
R
0

As others have mentioned, 10 weeks ought to be enough if you have a computer programming background.

Closer to 6-8 weeks, if you're Jeff Atwood.

Rodrique answered 15/5, 2009 at 1:59 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.