This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I've been learning for a bit now and experimented with some IDEs (I found I like Eclipse the best) but in the spirit of learning I decided to go with Notepad. Then I started going nuts with no syntax highlighting, and found a notepad replacement that has syntax highlighting and a few other nifty things built into it for coding (line numbers, bracket match highlighting)and was wondering if you guys thought it is cheating.
The program is Notepad++.
The very existence of flamethrowers proves that at some time, some where, some place, someone once said to themselves "I'd really like to set those people on fire over there, but I just can't get close enough".
There are other great programs that will do this, too.
One of the popular ones is Textpad. I think there's also a Notepad2?
And of course there's always vi / vim / gvim that will do syntax highlighting for you.
There definitely are advantages to IDE's, especially for navigation between different source files, easily finding definitions of variables, classes, or methods, etc.
Unfortunately, though, for somebody who's just learning, there are details that the IDE hides from you (like class path, and other compiling issues), and as soon as that beginner needs to start deploying outside of the IDE, they suddenly discover that they have no idea how to do it.
For this reason, a lot of us recommend using notepad / textpad / vim / etc to begin to learn to write java.
Once you understand how to compile and run programs, though, an IDE is invaluable. Some of the more popular ones are Eclipse, NetBeans, and JBuilder, among others.
Yeah Adam is right, learn how to compile and run programs without the IDE, specially try to understand things like classpath, path and various command line options which come with JAVAC and JAVA. Also try to compile files which are part of a package from command line. Once you are comfortable then you can start using a IDE. Hope this helps [ January 15, 2007: Message edited by: Amit Rampurkar ]