Many people probably have this question when they first start learning a programming language: what development environment should I choose? Should I use the simplest Notepad, or a powerful tool like Visual Studio? Well, it depends on your situation. There’s no standard answer.

If you’re just starting to learn to program, then I suggest you use Notepad. You could even try “writing code by hand,” that is, writing your code on paper and then handing it to the compiler. For writing code in Notepad, I recommend Notepad++, because it has syntax highlighting and code folding, so it won’t make your eyes spin…. The reason I suggest using a plain text editor is that when you’re learning a language, you don’t know it very well yet. Developing programs in Notepad makes you more familiar with the language, because “Notepad has no syntax hints or auto-completion.”

Recommended Notepad programs:

  • vim
  • Notepad++
  • Notepad2
  • PSPad
P.S. Xiaobi kindly reminded me earlier that vim and Notepad++ also have auto-completion. It's just that Notepad++ has it turned off by default. Still, I think Notepad-style programs are better suited for beginners. One reason is familiarity. Another is that many people have come to equate VS with programming. If you search online, you'll find plenty of people who don't know that "you can actually write programs in Notepad." And some companies supposedly test handwritten code in interviews. If you're used to VS, you might not be able to write anything at all 0.0

But if you’re in a hurry to develop a program, or you already know a language very well, then you can use a full-featured IDE such as Visual Studio or Eclipse. These IDEs usually have auto-completion and syntax hints. For example, if a function name is very long, you may only need to type the first two characters, and the IDE will ask whether you mean that function and fill it in for you. They can also indent code automatically, and they have powerful debugging features. These features can speed up your development a lot. But the prerequisite is that “you are sure you’re familiar with the programming language.” Otherwise, the IDE’s syntax hints will make it very hard for you to remember full function names, and hard to really get to know the whole language.

Recommended IDEs: