I've just started learning another language, so I'm reminded of what it's like to be a beginner.
It sure seems that Java has a distinct advantage in terms of resources for beginners: The JavaRanch forums are unmatched from what I've seen elsewhere on the web (especially compared to those for other languages), the Java API provides impressive documentation, there are great online resources like Sun's Java Tutorials, and there are excellent books available like Head First Java.
My advice is to invest in a good introductory book, and carefully work through it, writing lots of code along the way. Unfortunately, when I started Java, the Head First book was not yet available. After a couple of false starts, I discovered Thinking in Java, which was my primary text. But now that Head First is here, I definitely recommend that for beginners.
While you're learning, take advantage of these forums! There are lots of people here ready and willing to help.
"We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummer sscce.org
Waria, I think you are going to get two sets of replies: people who learned Java coming from another language and people who starting programming in Java.
I studied Pascal and C++ in high school. My college offered "intro to programming" in Java. Since I didn't want to sit through "intro to programming" a third time, I took a test to place out of it. I took this test spring of senior year. Which is interesting because I hardly knew any Java at that point. (I read through some lecture notes downloaded from the Internet.) The summer between high school and college, I actually learned Java. I read a few books including "Thinking in Java" and practiced writing code in Java.
yeah i know its not saying much but im reading the head first book and its very useful... it makes you interact and its really sticking to me.... ive only worked with ruby before and in the short time ive been reading it i feel like i can do more with it than i can with the language i knew before
I'm working my way through the Head First Java book too and it feels like I know more about Java than the other languages I used before. I find the support for beginners in Java out ranks any other language by miles!!
I learned Java ten years ago (in 1998). I just went to the bookstore and got a book, which I still have. I wouldn't recommend that book now (it has a star on the front with the text "Covers Java 1.0!"). I wasn't new to programming when I started with Java; I knew C++ pretty well and had been using it professionally for a few years (now I've forgotten most of C++ because I've been programming in Java since about 1999).
As already said above, there are lots of good online tutorials and books.
I learn java about 2 years ago, when the first time I learned Java, I used the book titled Deitel Java How To Program 6th Edition. This is how I learn : -Read the book carefully. -Write the code by myself even there is a source code in the book's CD. -Study every line in the code. -Do the exercises in that book.
I also learn Java everyday to spent my free time, buy many java books and study it from the beginning. The result of my effort is that I got 2 Java certifications (SCJA and SCJP) and 2 jobs relating to Java in just 2 years.
Hope this help. Keep studying. Studying is the best part of my life
For me, I was an OS/2 Presentation Manager developer who got called onto a development project for an airline ticketing kiosk project. The project was targeted for Java as it needed to be cross-platform. That said, we got books and read, we were given some classes in Java Bootcamp style, and we attended local JUG meetings. Over the years, more books, more meetings and more training...
One suggestion I would offer that I do not see in previous posts is this: Learn to love your debugger! I know many advocate coding initially using a text editor only but when I was learning Java I found that, not only was it important to write your own code, but it was often very helpful to step thru the code line-by-line and watch what happens. The debugger is the reason I don't have even more posts on JavaRanch. Often, by stepping thru the code, I could understand the reason a piece of code behaved the way it did. Fast forward to today and I still live in the debugger. I release very little code that I have not stepped thru line-by-line to ensure it works the way I intend it to.
I agree that debugging the code and stepping through it explains a lot. But I wont recommend it for beginners. At beginner level, one must understand program flow and language semantics by writing code and getting expected results. Once these things are clear debugging can be used for a better insight.
I had a background in Assembler, Fortran, C, Basic, etc, so I am not a newbie. Java was my first OO language and it really confused me. I read many books but still had lots and lots of questions. I really wasn't getting it until I read 'Head First Java'.
My recommendation is to buy this book. Make sure you read it before any other book. The authors have put in a lot of effort into explaining the concepts that typically confuse newbies. It was also the first technical book that I read all the way through. It is well written, well illustrated and fun to read. I can't recommend it too highly.
Once you've become familiar with Java, your next stop should be 'Head First Design Patterns'.
I have a long background in assembler, C, and a little FORTRAN from years in real-time flight simulation. I also took a beginning course in C++ at a local Jr College but that course stopped RIGHT BEFORE they introduced classes.
I started last year, intending to learn as soon as possible but willing to take time to let it sink in. The book that really started the "ride" was the traditional K & B 5.0. I started learning the basic syntax of the language and that came pretty easily. I was able to comprehend the basic function and use of objects but, being a long-standing procedural programmer, the object oriented paradigm escaped me for a long time. My coding examples tending to look like I was forcing an object oriented language to BE procedural.
I traveled off in search of good explanations of the basic object oriented "characteristics" (inheritance, polymorphism, composition,... ) just trying to understand the idea of "what they were" first. Then I found a book that I have enjoyed having, Java Objects (Jacquie Barker). It starts with a brush up on Java, then goes through a simplified presentation of basic object oriented analysis and design). Coupled WITH that, I was working a contract job where I got to "tear in" to an existing Java page display manager program. There is no better way to learn that to pick someone else's design apart looking for problems. You develop a real eye for what looks right and what doesn't, why certain choices were made, and what choices might have been better.
Recently I have decided that I have hidden from "design patterns" long enough. I'm too old to believe that they are magic, but I can see that they could certainly suggest structuring that might be of assistance in object oriented design, but, alas, I have never understood what they were. I am really enjoying reading "Head First Design Patterns" right now. They take practical (if not comical) examples of programming situations and DRAG you in the direction of specific patterns that they intend to teach. The way it is written it just seems so clear as you go from step to step WHY you end up with that particular pattern in that particular case.
I have more books on Servlets, JSP, Hibernate, and Spring and I will get to them all in good time.
I came back to add one more thing: I think that a valuable part of learning also is to come here to the forums at JavaRanch and "jump in" and truy to answer a few questions that you think that you can handle. You never learn quite so well until you try to teach to someone else. One of two things happen: your answer is correct? Fine! You learn that you are grabbing the concepts and feel more confidence going forward. your answer is wrong? Fine! You have an opportunity to learn where the holes are in your knowledge, correct them, and build the confidence to go forward. It is a "win-win". Add to that, I have yet personally to run into anyone who got "nasty" about an answer of mine that was later proven to be wrong. It is more like everyone really is trying to help "nurture" the whole gang along in the right direction. It's a neat place. [ August 22, 2008: Message edited by: Bob Ruth ]
SCJP - 86% - June 11, 2009
Joined: Oct 13, 2005
Originally posted by Bob Ruth: . . . I have yet personally to run into anyone who got "nasty" about an answer of mine that was later proven to be wrong.
That is what we bartenders try to prevent. Nice to hear we are being successful.
Hi i came from commercial background. And before learning java i knew c quite well and c++ only theoritically. And when starting learning java i was quite well at sea, as this thing was so different from c especially the character handling part. I really was able to grasp so little in the class room. But then i gradually started learning it from various books like Learn java in 24 hours and in 1 month!! But though those type of books were of no help still got to know the basics from them and then i used Java complete reference and Head First Java and Core Java from hortsman....To be frank now a day i have a library of java books and still i learn so much from them but i am yet to become an expert. Life is a learning still.........
.....For Every Problem There Is a Solution.....
I started in Java after taking an extension course for work after doing five years of programming in Perl. The Core Java books were used in the course. I did pick up a copy of Head First Java, but I didn't really care for the format. Now, after about two years, I think I've gotten myself to a pretty good level of competency. Right now, I'm learning Hiberrnate, and will eventually get to servlets and JSPs. One thing I do wish Java had is something like CPAN.
In my experience, the best way to learn Java is to get a degree from a computer science & engineering related university program. Then you can look forward to a well paid job and a fulfilling career. I'm not saying you cannot have that without a university degree but a higher education definately will tilt the Wheel of Fortune in your favour.
I started with Java in January this year and am glad to say that it is now my language of choice,so much so that am already a SCJP preparing for the SCJD :cool .I however still see myself as a beginner as there is a lot i have to learn still. .I went for a few courses(about three) which gave me a lot of foundation and am now yearning for a job that will give me an opportunity to apply my Java knowledge as my current job does not need my Java knowledge.The best way to familiarise yourself with the languae in my opinion is to WRITE as much code as you can as opposed to just reading about how things work because that way you get to learn more.