While most of the time on a project is spent reading your and others’ code, the time you invest in writing code has to be as productive as possible. We all know that the tools don’t make the programmer, but they can help you increment your efficiency while building software. We’ll talk about code editors, IDEs, task organization dashboards, and other general use tools you may need to use now or in one of your future projects. Of course, some of the following software has a subscription cost, so consider this when choosing your toolset. Let’s get into these tools!

JetBrains IDEs

If you have spent some decent time in the industry, you probably have heard about JetBrains, the company behind Kotlin and some of the most used IDEs worldwide. Whether you code in Python or you’re good at designing websites with HTML, CSS, and JavaScript, you’ll find a fully loaded IDE for you. JetBrains IDEs have all the features you need to build any kind of software. For example, PyCharm (a favourite of mine) used for Python development includes almost everything you could ask for. Debugger, intelligent Python assistance, support for web and scientific frameworks, the ability to code in other technologies, you name it. Here’s a quick tutorial on the basics of PyCharm: Also, you can install plugins to supercharge the functionality of any of their IDEs. As an illustration, you can customize the style of your IDE by installing the Dracula theme, or if you love Vim shortcuts, but you want all the features of JetBrains IDE, you can get the IdeaVim plugin. As a final tip, if you’re not ready to pay for a full-featured JetBrains’s IDE, you can start with an educational IDE like PyCharm Edu or IntelliJ IDEA Edu (for Java and Kotlin development).

GitHub

GitHub is the most used platform for managing and Git repositories. It’s a freemium service that makes collaboration, development, automation, and deployment in software projects of any kind much easier. You may also know this site as a social network for developers. This is not that far from the truth. Most professional developers have a GitHub account in which they expose their best projects and inventions. The best part is that you can interact with other people by collaborating with their repos via pull requests or opening issues. It’s almost impossible to establish yourself in the industry without a good knowledge of Git and GitHub. Once you realize that creating software implies working with many people, this becomes much more evident. There are other services like GitHub, for instance, GitLab and Bitbucket. Of course, GitHub is the most popular, but the two mentioned are excellent options. Specially GitLab, which is a totally open-source project.

CMake

CMake is an open-source system-agnostic software used for building automation of programs written in C and Cxx (e.g., C++) languages. It’s been used for vastly known projects like KDE and MySQL and by companies like Netflix or HDF group. It uses scripts called CMakeLists to generate build files for a specific OS. It’s pretty easy to use and generates the build files outside the source code. CMake has extensive documentation for every version out there, as well as a big community. It’s often used along with popular IDEs like a JetBrains IDE: CLion, Visual Studio, Xcode, and Eclipse.

Vaadin

If you’re a Java developer who wants to build modern web applications, you’ll love Vaadin. It is an open-source platform that simplifies the process of creating web apps with Java by giving you all the components, frameworks, collaboration, and testing tools you’ll need. It even has a collaboration engine that helps you be more productive and take control of sensitive data. With Vaadin, you don’t need to build backend and frontend separately, making your workflow extremely effective. You can get started for free as this is an open-source project and upgrade if you need commercial features. If you want a quick walk-through, here’s the perfect video for you:

Eclipse IDEs

Eclipse is one of the most popular IDEs for Java development. It’s free, open-source, and available on Windows, macOS, and Linux. Although it’s most recognized for being a Java IDE, you can also download Eclipse C/C++, Javascript, and PHP IDEs. It’s has been around since 2001, so it’s a project you can always rely on. Eclipse is also an extensible IDE, which means you can install plugins to expand its functionality. It has excellent community support, and of course, deep documentation. Without a doubt, one of the most iconic IDEs of all time.

Lightrun

Lightrun is an observability platform that saves you hundreds of hours of debugging. Lightrun grants you 100% visibility in your code, even if you have a huge monolith application or a highly distributed one. It supports multiple languages, including Python, Java, Node.js, Scala, and Kotlin. You can integrate it into your IDE with the Ligthrun IDE plugin or Lighrun CLI. The best part is that it’s free for community and individual developers. Make sure to check out their plans now.

Docker

I can’t stress enough how important it is to learn and use Docker for big projects. Numbers say it all. Over 13 million developers are currently using this software engineering tool, and you should do so. But what is Docker then? Docker is an open-source containerization platform that packages the application and dependencies inside a “container.” The containers are lightweight executable packages that include all the dependencies required to run an application. This with the idea of making your app work in any environment, whether in your local machine, your teammate’s computer, or in a production environment. We have a complete guide on Docker for beginners, so if you’re curious, check it out! It has an enterprise edition, but most of the time, you’ll be using the Community Edition, most known as the “do it yourself” edition. Why not begin with the Docker installation right away?

Jenkins

Jenkins is the most flexible, powerful, and open-source automation server. It’s used to build and test your software projects without going through the painful manual work. It offers a simple way to set up a CI/CD environment, with tons of features and customization. Jenkins is such an amazing but, frankly, complex tool. I recommend starting with the documentation since it’s a well-explained resource.

Buddy

If you don’t want to waste a lot of time learning to use Jenkins, Buddy is the perfect tool for you. With Buddy, you don’t need to be an expert in DevOps to quickly set up a CI/CD environment. It easily integrates with your favorite Git and deploys platforms. You have access to extensive yet digestible documentation explaining how to set up the most common tech stacks in a few minutes. Set up an account for as little as for free, and get to know your new favorite CI/CD tool.

Decompiler

Decompiler is a simple tool that lets you decompile binaries into what previously were a few lines of code. Here I have a simple “Hello World” file in Java: I will compile this file into a bytecode version of the program. Now I have a HelloWorld.class file in my current directory. I’m going to drop it into the Decompiler and see what I get. Within a couple of seconds, I got the code from the original file.

Jira

Jira is a powerful work management tool for software engineering projects. It lets your team have a unique workflow for shipping software. Jira integrates perfectly with other Atlassian products, so if you’re already a user of BitBucket, you should consider using this tool. For teams smaller than 10 people, you can use Jira free.

Wrapping up

In this article, you’ve seen some of the most used software engineering tools. Remember that the tools don’t make the developer, but extra help will always elevate our workflow. And if time and efficiency are your main priorities, why don’t you take a look at these Workflow automation tools? Keep on coding! 👨‍💻

11 Software Engineering Tools to Know as a Programmer - 9411 Software Engineering Tools to Know as a Programmer - 8511 Software Engineering Tools to Know as a Programmer - 1611 Software Engineering Tools to Know as a Programmer - 9811 Software Engineering Tools to Know as a Programmer - 2111 Software Engineering Tools to Know as a Programmer - 9411 Software Engineering Tools to Know as a Programmer - 5211 Software Engineering Tools to Know as a Programmer - 4311 Software Engineering Tools to Know as a Programmer - 7711 Software Engineering Tools to Know as a Programmer - 4011 Software Engineering Tools to Know as a Programmer - 6611 Software Engineering Tools to Know as a Programmer - 5911 Software Engineering Tools to Know as a Programmer - 6111 Software Engineering Tools to Know as a Programmer - 4411 Software Engineering Tools to Know as a Programmer - 8011 Software Engineering Tools to Know as a Programmer - 4011 Software Engineering Tools to Know as a Programmer - 8411 Software Engineering Tools to Know as a Programmer - 6511 Software Engineering Tools to Know as a Programmer - 4611 Software Engineering Tools to Know as a Programmer - 5911 Software Engineering Tools to Know as a Programmer - 4711 Software Engineering Tools to Know as a Programmer - 5311 Software Engineering Tools to Know as a Programmer - 1011 Software Engineering Tools to Know as a Programmer - 5811 Software Engineering Tools to Know as a Programmer - 3011 Software Engineering Tools to Know as a Programmer - 511 Software Engineering Tools to Know as a Programmer - 6311 Software Engineering Tools to Know as a Programmer - 9411 Software Engineering Tools to Know as a Programmer - 4611 Software Engineering Tools to Know as a Programmer - 8511 Software Engineering Tools to Know as a Programmer - 4111 Software Engineering Tools to Know as a Programmer - 3411 Software Engineering Tools to Know as a Programmer - 9411 Software Engineering Tools to Know as a Programmer - 8411 Software Engineering Tools to Know as a Programmer - 6611 Software Engineering Tools to Know as a Programmer - 1111 Software Engineering Tools to Know as a Programmer - 89