Getting professional: know your tools

As a software engineer, one of your main responsibilities is building software. This means writing software, hacking code, program or however you name it.
To write software you need several essential tools. The first (obvious) is the programming language like Java, Swift, Go, JavaScript, C…
The second and often undervalued tool is also very important: it’s the IDE.

Integrated Development Environment (IDE)

The IDE is not only a text editor. The I in IDE stands for integrated which means that all necessary steps (or as many as possible) within the software development process are integrated into your IDE. A good IDE should contain at least formatting and refactoring features, support for your used version control system (VCS), support for your build tools and your application environment (like an application container/server) and maybe also an integration for your Continuous Integration server.

Editor + terminal vs. IDE

Some engineers may think it’s faster to do everything with an editor and terminal. That’s sometimes true. But if you work in a default environment where you get good support from your IDE it’s a good idea to use the IDE features instead of switching from editor to terminal and typing long commands. IDEs don’t support everything, so it’s not always possible. But I prefer to use an IDE feature as often as possible to be more productive.
Coming back to the main responsibility of an engineer: building software. As they get paid for it, they are also responsible for writing software in the best amount of time and quality. As soon as you master your IDE you get an increase in your productivity compared to an editor and terminal usage (if you use supported workflows from your IDE). You will get the best productivity increase with the refactoring tools, but the other features like VCS support are also helping a lot. So don’t stop with learning only about refactoring.
Before you get this productivity increase you need to learn the features of your IDE as well as the shortcuts to reach them. This time investment will pay out in your professional career as a software engineer very soon, especially when you have a carrier for 30 years or more.

How to learn an IDE

There are different levels of mastering an IDE. And every person is a different type of learner, so it will most likely make sense to adjust this. But I would start learning a new IDE with the following path:

  1. I learn about the features of the IDE.
  • How can I build my software within the IDE?
  • How can I run my tests within the IDE?
  • How is the code completion working?
  • How can I checkout and commit code within the IDE?
  1. I learn about the code refactoring features
  • How can I reformat the code?
  • How can I rename a method?
  • How can I change method signatures?
  • How can I create boilerplate code?
  1. I try to master the IDE
  • How can I get documentation within the IDE?
  • How can I reach the features with shortcuts even faster?
  • Are there other cool features I should know?

Shortcuts

Shortcuts are already mentioned in the >How to learn an IDE< section, but this is so important that I like to end the post with this: learn your IDE shortcuts. Or change them to shortcuts you know. They will increase your speed of editing code and work within your IDE dramatically. Especially when you use your IDE without a mouse or a trackpad you will be able to work more focused on your code.

Know your tools - know your shortcuts

To be a professional software engineer this is super important.