Discussion Locked

Your Advice

0 helpful
21 replies
Closed to new repliesThis discussion is closed. It stays readable, but it takes no new replies.

Hi Guys,

I am interested in learning Java and i would appreciate your advice on the best way to learn Java?

Kind Regards

J

21 replies

by kelvin lin

You have three choices -

1. Enroll in a basic Java course or get a personal tutor to teach u Java.

2. Read some books for beginners lik Java for Dummies, Teach yourself Java in 24 hours and so on.

3. Last one is the most affordable way, just google around for the Java tutorials and download simple Java sourcecodes and try to learn & understanding how they work.

by kumar.siva

Try a small worked example first without trying to understand anything. Getting a FUZZY idea first is one way of getting introduced to a new topic. See how it works and then plan your systematic approach to learn. Browse the web for a good example. Java Applets also help to maintain interest in Java.

by pez

Originally released by IBM as an eductaion tool for learning programming in general and Java in particular, Robocode is now open source: http://robocode.sourceforge.net/

It's an excellent Java learning environment. The tast is easy to define and it is fun! We run a WikiWiki trying to collect and share Robocode knowledge. RoboWiki, http://robowiki.net/ It's a bit unorganized, but use the search engine and the fact that you can ask questions easily on the wiki to find vast amounts of Robocode info.

by robaii

There is a method of self study and it is not hard if you look in the right place. Go to www.course.com.Find a book with student downloads that will also give you practical experience as you read.I recommend Java Programming by Farrell.

by wllmnf

I would recommend Bruce Eckel's "Thinking in Java". It's written very well and everything is explained in detail. Another advantage is that the book starts with a thorough foundation before moving to GUIs.
You can even download the book from www.bruceeckel.com.

by vijay.nama

Yes, one should not stick to one book.
As there are many void spread topics in Java one should go through some number of books.
O'Rielly books on pirticular topics can give sound knowledge of over all Java.
It's good to follow documentations

by johnnysacks

Excellent foundation and principles. I've seen others and am eternally grateful to have found 'Thinking In Java' first. The on-line version was included in (I think) Sybase Power-J (wow, that goes back a ways!)

by jashburn

I would break it into two parts that should be learned in parallel:

1. Java language (syntax, API, etc.)
2. *True* Object-oriented programming (OOP) and object-oriented design (OOD)

My main problem with just attending a course or picking up a Java book to learn it is they usually don't teach you proper OOP and OOD. E.g., what good is it to understand Java inheritance without knowing how to properly use it (based on my bitter experience with maintaining code with an inheritance tree from hell, etc.).

Hence, I'd suggest you do the following:

1. Start by reading up a tutorial or an introductory book (Sun's Java Tutorial, http://java.sun.com/docs/books/tutorial/ , is a good start.)

2. Once you're comfortable with the Java syntax (but not necessarily be very familiar with the Java APIs), pick up a design-oriented book such as Craig Larman's "Applying UML and Patterns" while continuing with above tutorial/book.

2a. You should also start reading up on design principles such as the The Open-Closed Principle and The Liskov Substitution Principle, which embody good OOD practices on a small scale.

3. Once you have a good grasp of the Java language and OOD, you can move on to design patterns such as the Gang of Four's patterns (Strategy Pattern, Command Pattern, etc.), which teach you good OOD on a larger scale.

Learning Java APIs such as the Collections, Swing, Applets, etc., is a continuing thing as you can always look up the Java API Specs whenever you need to use them. Once you have a good OOD foundation, you'll really appreciate the APIs are designed, and even spot the implementation of design patterns there (e.g., the Decorator pattern in the I/O streams API).

Hth.

by nicruzer

I strongly agree with jashburn's post, "Build a Strong Foundation."

I would tack on the need for practical experience. Many of the books/tuturials encourage you to write out the sample code given and test it yourself. They also provide sources from which you can cut/paste the code to bypass "all that typing." However, I have found that actually typing out all of the source code is a good way to solidify learning syntax. If you miss a terminating semicolon or brackets around a group of statements inside an "if" block, the code may compile or run improperly. This forces you to analyze what you may have done wrongly. You can then use the packaged source code to run a compare against what you've written to help you discover what you may have incorrectly typed. This discovery is essential to solidifying your learning experience. When everything works properly, begin to experiment with the existing code. Change one thing at a time and test it out to see if it delivers the expected results. Once you're comfortable with what you've learned, design and build your own system based on the the material you've just processed.

Also, if you approach your learning in small bites, you will remember more things. Unless you're in a groove and really focused, I recommend intentionally limiting your learning intervals to 10-15 minutes at a time. Take a break (get up for a drink of water or something) and come back to it for another chunk of time. Your ability to remember more details increases dramatically with this approach.

by nigel

I tried weekend courses, cbt, books, online tutorials but I only made real progress when I took the UK Open University Network Programming with Java course: 6 months of self study with tutor support.

by avinesan

Just wanna add to that list. Learn how java operates in an environment.Then you're set. Besides you can apply these tips to learning any programming language.

by derejegetaneh

find a book called "The essence of Java programming" by Glenn Rowe!

You don't need any other additional either book or teacher!

by rsalcedo

The answer to this question may depend on what type of programming experience you have.

I was a C programmer, and personally I found Peter Van Der Linden's "Just Java" to be excellent. It was actually readable without putting you to sleep. It explained things in a way that a programmer can understand. In other words, it was not designed to teach you how to program, but how to program in Java. It assumed that you already knew your way around code.

That was way back in the days of Java 1.1 though. I know that the book has been updated for 1.5, but I have not read the updated version http://www.bookpool.com/sm/0131482114

by awolfe_ii

My employer has a monstrous Java setup in which we work. I
feel that I don't know a good way to organize a desktop system
to manage a Java environment -- classpaths, multiple sets of
JARs, and such.

I'm sure john.t would also like to know.

IDEs are reasonable but they hide so much, I always feel like I'm
lacking a level of understanding and control by not knowing how
to make Java stuff work on the command line, what with
environment variables, multiple JVMs, and such. (I also want my
desktop webserver to run a JSP engine for that matter.)

How do people organize Java setups?

-- ADW

by gabriela2

but always I got confused when worked with IDEs.
My feeling is that they controll me and no vice versa. The best way is to use notepad as editor and command line for c/r. This way you'll know that if it doesn't work it has to be a mistake in your code.
Environment setting is tricky but after a while you'll understand the ideea.
For me, the hardest part to understand was: type conversion and interfaces. I didn't find a book or an article to make me feel these things from the begining.
I also think that a course would be the best think that one who wants to leard Java can do for himself(because you can ask questions which may be are trivial for somebody else but it is a problem of complex concept perception and our inner reprezentation of them).

by alvarocervantes

To me IDEs, specially TogetherJ, are excellent tools for doing the work and reusing your work (and using patterns). However, there are two ways of learning: from general to particular and from particular to general. Some people couls understand a concept of a botton from drwaing the GUI first (visually), and then learn the code. For some other ones, they see their properties first and may be never see the look. For some people seeing abstractions is easy, for some other people seeing specific items is their thing. So I recomend IDEs for people who can see abstractions (classes and objects interacting to accomplish a task), but the ones who like to see working things (functions in C) coding at promt interface is fine. If some one wwant to learn both at the same time, a book called Java Java Java shows the UML (Unified Modelling Language) representation of objects and code at the same time; this way you learn OOD Java structure and UML at the same time.

by asyari

hi guyz do anyone knows of any website which give free java codes, any kind will do as long as as it is .java

thanks

by satur9

I use Borland JBuilder 2005, because I can seriously customise the environment, projects, JDK/JRE and libaries used in projects, the highlighting support, browsers, wizards and project templates make hard stuff trivial e.g. refactoring code, searching for classes in my code and in the libraries, running and debugging code, making runnable jars.

I've looked at Eclipse 3.1 and NetBeans 4.1, but they seem much less polished and lack many feature, even with plugins.

by kkurnia

I found that Bruce Eckel's book, Thinking in Java is a good start. I actually read that book after I know Java, and it clarifies a lot of things for me and I think if I had that book before I knew Java, that would be a great help.

I feel the hardest part in learning OO language is not the syntax, but the OO mindset itself. When we have the OO mindset, syntax should be much easier to be pick up.

And of coures, at the end is to write code as much as possible. there are plenty of examples on the net, as well as Sun Java wesite itself.

This discussion is closed to new replies.