Image by flyspy123
In order to be able to work with as little restriction as possible a developer will need at least three tools:
- an IDE(Integrated Development Environment) is a text editor with debugging and compilation abilities for the program code.
- a version control system for being able to maintain current and historical versions of a program.
- a build automation tool for linking and compiling many different source code modules in the correct order without having to handle everything on the command line.
Which IDE to use is a matter of preference but the most commonly used one is Eclipse.
Eclipse is very modular which makes it very easy to adapt to suit your way of working by adding additional modules. By making use of superb code completion and quick fix tools integrated in the environment you will have very little trouble getting your code up and running in no time without having the hassel of searching for hours after spelling errors or packages in the wrong directory.
If you are just starting out programming, find your pre configured Eclipse suite here.
Version Control System
The only version control system you really need to learn how to use is Git. Almost everyone use it and if they don’t already, it’s about time they did. Git is easy to work with and very powerful when it comes to working with and switching between different branches of your project. Merging of files is almost seamless and easily done even if several developers work on the same files. Other benefits of Git is that it’s distributed so every developer has a backup of the entire project if the main system should malfunction in any way.
I would recommend using the free services of GitHub for your projects. GitHub is a Git repository web based hosting service that lets you share and work on projects with anyone in the world. It will also be a great place to show your code to potential employers if you ever want to get a job.
Build Automation Tool
Up until now I would have said there is no substitute for Maven as a build tool for your project, but there is a relatively new player out there called Gradle that does everything Maven does and then some.
Maven is powerful and easily handles multiple dependencies between projects superbly. It’s at this date by far the most used build automation tool with lots of active users. The biggest drawbacks of Maven is that it is not very good at handling conflicts betwen different libraries and also that it quite hard to write customized build scripts. This is not something you are likely to run into at the start of a projects but those tend to have a life of their own and can demand unexpected things after a while.
Gradle on the other hand uses Groovy for its domain specific language which makes the build scripts short and clear. It gives you great control of the build process but retains the power of handling dependencies that Maven has. It has gained an enormous momentum at a short amount of time so there are lots of folk out there to help answer any questions you might have.
As a new developer I would probably go for Gradle as my main build automation tool.
There you have your complete development suite: Gradle, Git and Eclipse.If you like it, spread it.