Which is the best IDE for Java Certification Exam Preparation?
Once installed, an Integrated Development Environment is so much fun to write your code in. Nice fonts and colors for keywords, auto-complete, auto-format, helpful hints, error highlighting, and, the best part is you don't have to use the command line for compiling and executing your programs. That is such a pain, right? In fact, you don't even have to compile the code explicitly. IDE compiles the code as you write it. All you have to do is just hit the right function key (for example, F6 for NetBeans) and run it! No need to worry about the classpath and stuff. Since most of them (such as the most popular Netbeans and Eclipse) are totally free, there is seems to be no reason to not use them.Well, if you are preparing for the entry level Java certification exams such as Java Foundations Certified Junior Associate (JFCJA), Oracle Certified Associate/Oracle Certified Professional Java Programmer (OCA OCP), then it is precisely these features of IDEs that may bring your score down or slow your learning.
Entry level Java certifications expect you to know certain fundamental Java language things by heart. This includes keywords, syntax rules, language rules, code structure, and familiarity with compilation and runtime error messages. Since IDEs make all these things so easy to get right, students tend to not capture their details in their minds. When you type the code manually in Notepad (as opposed to auto-completion), you learn the keywords and the syntax a lot faster and are also able to retain and recall them better during the exam. Similarly, when you type a command manually and read the compilation error messages on the command prompt a few times, things stick in your mind lot better. You will not forget them so easily.
The code that you will encounter in the exam is not color coded. It may not even be nicely formatted. If you are only used to seeing color coded, formatted code appearing in an IDE, you will have a really tough time identifying issues with the code in the exam. You are most certainly going to miss a few traps set up by the exam. It is no surprise that many experienced Java programmers fail the exam. There may be several reasons for that but this is one of them. Years of IDE use makes our minds skip over many details. It is difficult for students who use IDEs to differentiate between compilation errors and exceptions occuring at run time, which is extremely important to understand for a Java programmer.
Besides depriving the user of the basic mind training, IDEs present another serious issue for certification aspirants. The error messages and hints displayed by IDEs (remember the red squiggly lines under the code?) are not always the same as the error messages generated by javac and java commands on the command line. In fact, in many cases, an IDE may even be able to run the code in spite of an error being present in a part of the code. Over the years, we have responded to so many queries by students questioning our explanations based on what they see in their IDEs. Here are a few examples:
- IDE did not show error while using var incorrectly.
- User was unable to see the correct output while using IntelliJ IDEA.
- User was confused between compilation and execution errors due to use of an IDE.
- IDE showed no error in the code despite the code violating principles of overriding.
- IDE showed no error in the code despite the code violating principles of exception handling.
- IntelliJ IDE showed error even though @NonNull annotation was used correctly.
- Issue while learning modules - Intelliji IDEA IDE can't neither create simpleinterest directory.
- Additional warnings generated by Netbeans, which are not relevant for the exam.
- Compilation fails but IDE executes the program and generates an output anyway!
- Student unable to test out their understanding of package statements in IDE
- Student not getting expected output while using Ecplise IDE
The bottom line is, if you want to nail the Java certification exams, better get confortable with Notepad, the command line, and javac/java tools. If you really can't stand notepad, use Notepad++!