There are approximately the same number of differing opinions on this as there are programmers!
Crucially, it depends on which language you are working in - and on which operating system.
The answers are different for graphics programming versus (say) banking software. Different for Java and for C++. Different for Windows, Linux, MacOS, Android or iOS. And different just because of personal preferences.
For me: I’m a bit old-school: Linux, csh, make, gnu c++, gdb, vi/emacs…this will almost certainly not be your preference!