Text editor > IDE

Thesis

If you are just learning programming, you should use a text editor and invoke compilers directly instead of using a development environment where building a project means clicking the Big Green Button.

Why #1

The Big Green Button has many secrets. A person who has only ever used some sort of IDE1 usually has no idea what happens when they press that green button. I mean, yes, it is clear that the code gets built and app starts. But how? What does the IDE do to build and run the project? Is this some sort of magic?

Meanwhile, a person who uses a text editor and compiler directly, understands perfectly well what needs to be done to build their project2. They do not delegate that task to the development environment. In a sense, they own that magic.

And that is the point. The beauty is in understanding what happens behind the scenes. Understanding how a compiler works helps you solve more complicated problems during the build, helps you understand the programming language better, and makes you a better developer.

Why #2

Flexibility. Out of the box, most text editors have nothing except the tools for, well, text editing. Like Notepad. Everything else is in your hands. You can add the features you actually need. This kind of flexibility lets you create an editor that fits your needs much better and will most likely run faster than an IDE, especially on weaker hardware.

A notice

I do not think that everyone should avoid IDEs. I don't doubt that there are some cases where IDEs are just much nicer to work with. I also think there is nothing wrong with using an IDE if you already know how to work without one. The idea is that you should first learn how to get by without an IDE, and after that the choice is yours.

Conclusion

Okay. So... What should you actually do?

I recommend trying out Visual Studio Code. It is probably the most popular, versatile, and easy-to-use text editor. To work in it, you only need to install an extension for the programming language you need.

IDE — Integrated Development Environment — large application with a huge number of features for writing code and god knows what else. The most prominent examples are Visual Studio, PyCharm, or IDEA.

By understanding I mean the ability to compile a project yourself in the terminal: either directly with the compiler or by using a build system like Make or CMake.