Home > Uncategorized > Tools developers use at their job

Tools developers use at their job

As mentioned in my earlier post, I am in the process of reflecting on my experience as a Java Developer. This time around, I compiled a list of tools I have used in my job.

  • Programming language, Java. A programming language is the first tool we learn when starting the career of a Software Developer. We need a way to interact with machines. Enough said, no?
  • Issue tracking, Jira. This is a tool that allows developers keep track of what they are working on. It allows users to describe a task, add comments to it, keep track of who is working on what, give approximate estimations about the time it will take to be finished (though this feature is rarely used because it does not work).
  • Source code version control, GIT, Mercurial, SVN. You will inevitably work in a team. That means, you will need to share code with others. This is where this tool comes in handy. However, even if you work alone on something, using one alternative of this tool is helpful. It will remember for you all versions of your files. (SVN is a legacy tool, GIT is my favorite though it is very similar to Mercurial. Also, GIT documentation is really cool.)
  • Build tools, Ant, Maven, Gradle. Ant is the oldest, and Gradle is a spaceship. Maven is very powerful and yet has a low barrier to entry. It manages your project’s dependencies (downloads jar files, puts them in a standard location in your operating system, and includes them in the build path of your project. Ain’t that cool?) Then, it can compile your code, run tests, and build output files (jar, war). It does more,  but this is what I used Maven for.
  • Integrated Development Environments, Eclipse, IntelliJ. Yes, you write code in your IDE. It has an editor and it’s own compiler which aids in giving you visual clues regarding any compile time error and eventual warnings. However, there is much more to an IDE than this. It usually includes a debugger, key shortcuts to various tasks, various views for when you are doing various tasks. It will also have plugins for your other tools like build tools and source code revision systems, so you can use them from within your IDE [right-click, get thing done, without switching your windows].
  • GREP. This is a Linux tool. It is highly unlikely to be used in development environment. But on deployment environments it comes in handy to filter text of interest in log files and such tasks. It pays dividends to be able to use it. One needs to get familiar well with what it can do, and then using its man page or online resources one will be able to use it well.
  • Less. This too is a Linux tool that you use to inspect the content of a file. It has search and navigation shortcuts. It is frequently used for viewing log files on deployment environments.
  • Vim. This is a Linux editor. One would use this when modifying a file on a remote Linux system. Something like changing a configuration value.
  • SSH clients, putty. One uses this to connect to a remote host. This is something you are more likely to learn after you start working and join a team. But I am putting it here just for the sake of completeness.
  • SoapUI. This is a tool for interacting with web services. It basically allows you to see the xml messages you receive from a SOAP based web service. When testing a REST web service that responds in json, you will see just that. It is a cool tool, with a lot of features. Basically, you use SoapUI to test your web services.
  • Research, forums and stackoverflow. Yes, these are a developer’s frequent go to friends. Getting info and advise online is mandatory. However, one MUST be able to evaluate what is good advise and what is not when advised online.
  • Continuous integration, Jenkins, Travis. Jenkins is cool. It is highly configurable and very generous with the information it makes available. Using this tool is often assigned to a quality assurance person, but in smaller teams, this is taken care of by developers. And Travis is anther CI tool. It does the same job and is highly popular amongst open source projects.

That’s it. This is the tools I remember having used in my role as a Java Developer. Right when I started this article, I noticed that there is in Quora a question about what tools developers use. That gives me heightened confidence that this article may be useful for someone.

Categories: Uncategorized
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: