As a newer Java self-study student, I've adhered to the recommendation to use Notepad for a while until I understand all of the intimacies of writing Java code. I'm past that point and was curious about IDEs and if I should continue to avoid them.
I tried NetBeans only cause it loads with Java and didn't like it. I've heard good things about Eclipse and might try that.
Can anybody give some insights into using an IDE and how I might both benefit and suffer in my learning Java?
note: my only real desire to move toward an IDE is that it incorporates small shortcuts that make certain things a little more effecient. I don't want a crutch, but rather just a tool.
As long as you understand the basics of the language, I don't think an IDE really hinders your learning of Java. In the real world, there are very few things you do manually. IMO, it is in your best interest to learn how to use the features an IDE provides that facilitates development and makes you more productive. As for choice of IDE, I love Eclipse.
It sounds like you are approching this from exactly the right perspective. Personally I love eclipse. There is also IntellaJ that many people like. I agree with Junilu in that if you understand the language an IDE is not a hinderance. I would go so far as to say it's a necessity, especially when debugging. I don't think which tool you pick is as important as your ability to use it. Here are some things I find great in eclipse. Many, if not all, should be in most quality IDE's.
While writing: 1) Code completion, method generation, automatic comments. This removes much of the tedious work and removes typo errors.
2) Error reporting. Basically you get any compiler errors pointed out while you type. This usually helps me to not forget a closing ) and such.
3) Object Overviews. Various displays that let you see the methods, object hierarchy and other things in a more compact way.
4) Navigation. Much faster navigation between classes, resources, ect. For example in elipse if you hold down the ctrl key and click on a method call or object it will open that method or object for you (provided you have the source).
While Debugging: (This is where I think IDE's really shine) 1) Basic line by line walkthrough, breakpoints, and varibal display.
2) Eclipse allows for various conditional breakpoints based on value change, conditional expressions, ect. I'm sure most other IDE's do also.
3) On the fly value assignment. Rather than trying to reproduce some bugs I find the ability to change the value of a variable, while running/debugging, to get to certain code areas very useful. With eclipse you can even edit code during a debug without having to restart to some extent.
4) The ability to inspect and navigate through all the variables that are in scope allows you to get a good understanding of the system state without a hundred println statements. I haven't written a println statement for debugging in a very long time.
There are other advantages, but you do need to spend some time learning the tool you choose. I've been using eclipse for a couple years and still am learning things. Well to be fair new things keep being added, I can't wait till eclipse 3.1 gets released so I can start using it at work, has a new feature that I can really use.
P.S. CVS integration, Database integration, plugins for just about anything.