Integrated Development Environments (IDEs) and text editors (for coding) can make programming much easier with syntax coloring and other helpful options. You might even want one of both if you'll be working with several languages and different types of projects. There are many excellent free programs, and some that are open source.
Integrated Development Environments
IDEs are applications that have utilities (such as a code editor, compiler, and a debugger) bundled together. They are designed to help you develop faster and more efficiently. They usually support development in several languages, and are cross platform.
Writing code in the integrated editor, you'll usually find syntax coloring, context-sensitive help, and some that even have "Intelligent Code Completion" such as Visual Studio's IntelliSense, and the integrated code completion in Eclipse. Text editors such as SciTE and Atom also have syntax coloring, but not all text editors have the range of helpful options a larger application like an IDE will offer.
Compiling your code into an executable or deploy-able application is often easier and faster with an IDE. Some debuggers highlight errors as you are writing your code. Checking for syntax errors is especially helpful if the IDE points you to the line number where the error is, and offers suggestions on how to fix it. Even if you are writing code that doesn't need to be compiled, an IDE can be helpful with editing and debugging.
Free IDEs
- Visual Studio: Microsoft's Visual Studio Community 2015 for Windows, Android, and iOS supports several languages including C#, F#, and C++. With this IDE you can build applications for Android, iOS, Windows, the web, and cloud services.
- Visual Studio Code: Free and open source, Visual Studio Code works on Windows, OSX, and Linux.
- MonoDevelop: MonoDevelop supports Linux, Windows, and Mac OS X. You can use it to create desktop and web applications using C#, F#, C/C++, and other languages.
- Eclipse: Primarily for Java, C/C++ and PHP, Eclipse can also be used for C# and other languages with a plug-in (such as Emonic).
Code Text Editors
Alternatively, a text editor can be used to write code. It is a good option for languages that don't need to be compiled, and for developing web applications. Simplicity and the small file size of a text editor application makes it a great choice for small projects, as well.
Atom
The open source option from GitHub, Atom works on OS X, Windows, and Linux. It has autocomplete, is extendable with packages, and has a lot of customization options.
SciTE
SciTE is a free Text Editor built with Scintilla (open source code editing component). You can use SciTE with Intel Win32, OS X, and Linux.
It supports a wide range of languages (over ninety!), and has a lot of extra options available such as using the output pane to run commands and compile code.