When a beginner programmer starts writing their own code, one of the first choices they will have to make is “How will I write and run my code?”. Now there are a few options here, and in my opinion all but one are harmful to the learning experience.

Option 1: A Full-Fledged IDE

Depending on the language, the programmer might choose to use a big and bulky IDE such as IntelliJ IDEA and its derivatives. This will usually come with a built-in execution environment, debugger, intelligent auto-completion features, and so much more. Sounds pretty cool right? Yes – but these are crutches that a new programmer hasn’t earned yet. For example, having one button that compiles and runs your code is neat, but it abstracts away so much to the point of being harmful to one’s growth. Another case of this harm can be seen in using auto-completion. When a programmer is starting out, they should be mindful of every single line of code they write. Using software to write code for you will only create gaps in foundational knowledge.

Option 2: VS Code

I don’t consider VS code to be an IDE. It is a text editor that can be easily turned into an IDE through its wide library of extensions. The good part about this is it allows the programmer to pick and choose which tools fit their situation. If you don’t want to use intelligent autocompletion, you simply don’t install that language’s extension. The bad part about this is that most new programmers won’t know what they need or don’t need. There is a high chance they’ll end up installing a bunch of extensions and then we’re back to Option 1.

Option 3: A Simple Text Editor

Good examples of this are applications like Sublime Text, Atom, or Notepad++. I personally enjoy the simplicity of Sublime Text, and I use it daily for reading code. Text editors such as these are simple, uncomplicated, while also unforgiving. It’s up to you as the programmer to write correct code. The types of projects that beginners usually work on don’t require some big fancy IDE. A place to mindfully write code will do the job (which is to learn). Another benefit here is that these applications don’t include any hand-holding code execution tool. The programmer is forced to compile/run code using the command line, which is such a necessary skill that cannot be emphasized enough.

In Conclusion

When projects become a bit more complicated it is absolutely necessary to use Option 2 or 3. Almost every professional developer I have met uses some form of IDE and the tools they provide. But for a beginner, my advice is to focus on the fundamentals. Keep it simple, pay close attention to the code you are writing, and reject hand-holding early on.