So you decided to start learning to code – and, since you’re reading this, sounds like you figured out that you’ll be needing to choose a code editor. If you’re at all like me – your first reflex was probably to run to Wikipedia. Big mistake, right? The article goes on for pages on end – and it makes absolutely no sense to a beginner. For me, that was when I decided to embark on a mission to unearth the best options available and to make sense of them all – and this post is the result of that effort.
In retrospect, it’s all relatively simple. Here are the basic facts about code editors:
First thing first: what are code editors?
Websites and apps are, underneath the hood, just lines of code (in fact – they’re just a bunch of 1s and 0s (we’ll have a more in depth look at that soon). For now, what’s important to know is that this code is usually written in code editors.
Code editors are programs that allow you to create, save and edit plain text files, stripping away any formatting. In fact, this is where they differ from your regular word processor – such as MS Word, for instance, which packs in a lot of code that is not visible to you (called metadata). Code editors that are used in coding all use plain text – and that is their main characteristic. However, in addition to this, most code editors offer additional features such as:
- syntax checking – highlighting errors as you type so you can fix them as you go
- powerful find and replace – allowing you to make changes in one go
- contextual code completion and / or suggestions – saving you time by auto-completing certain tags
- code snippets – sparing you the need to retype frequently used code
- jump to a certain line – preventing you from having to scroll through pages of code
- view your project’s files and directories – allowing you to quickly navigate through your code and managing it more effectively
- possibility to add a variety of extensions – that can facilitate your work once you use the tool proficiently
- and many more…
How do I choose a code editor?
Choosing your code editor is really a matter of personal preference – there’s no ‘one size fits all’ type of answer here. The questions you want to be asking yourself are:
Which operating system do will I be using?
While a significant majority of code editors now work cross platform, there are platform-specific tools as well – so you need this information to shortlist those that will work on your machine.
What programming languages do I expect to be working with?
What are my ‘must have’ and my ‘nice to have’ features?
This is something only you will know – as it’s a matter of personal choice. You might be the minimalist type who doesn’t care much for the ‘fluff’ some editors propose; or you might be so detail-oriented that you think you don’t need the code-correction features (oh, but do you!!!), Or, you might be the kind who likes to personalise your work space to suit your taste… So review my list of features above, and the description of the individual programs below – and one will surely start to ‘speak’ to you. And if that’s not the case, just install a couple and give them a try; you’ll know soon enough.
How autonomous am I in my use of software – will I be needing support?
There are those among us who prefer to read documentation, other who’d rather watch video tutorials; you might be the kind who needs one on one assistance or, on the flip side, the kind who needs absolutely nothing, who prefers to tinker until you have your answer. Different editors are supported in different ways – so keep this in mind as you make your decision.
What will I be using the code editor for?
Where will I be using the code editor?
If you have your own computer and only work on that one machine, the downloadable ones might bring more value to you. However, if you find you have to frequently switch back and forth between machines, or if you need to collaborate at a distance, give the online ones a think.
When you have the answers to these questions, look at the list below and choose the code editor that makes the most sense to you. If unsure, maybe shortlist 2 or 3, install them and try them out – you’ll soon be able to tell which is your best fit. Look for the one that makes you more efficient, or just feels most comfortable / more enjoyable to you.
As a word of caution – expect that your tastes (needs) to evolve as you progress – so stay flexible, and always be on the lookout for improvements. As you become more proficient in coding, your choice of editor / IDE will make a difference. Follow the publisher of your chosen editor online – either by visiting their website regularly, or by following them on the social networks so you can be aware of updates, bug fixes, new features etc. You can also use their forums to find answers, ask questions or even answer some; it’s never to early to get into the right habit of getting involved / contributing.
Below, I’ve compiled for you my top 5 favourite free code editors. I’ve picked for you:
in no particular order. I’ve tried all five and finally settled on Visual Studio Code – but really, all are equally good choices. Of course, there are plenty of other code editors out there – but as far as I could tell these are some of your best code editors when you start out and also your best bet as you progress. I hope you find the list helpful.
In three words: simple, flexible, practical
Price: free (opensource)
Works on: all platforms – iOS, Linux, Windows
Main features: Atom is fast to download and easy to install. It works cross platform – so you can use the same environment even if you switch machines. It’s highly customizable – it comes with several options so you can choose whichever works best for your eyes (and taste!). You can also customize keyboard shortcuts to enhance your productivity. Then there are features like split screen capability – allowing you to work on several files at a time; smart autocompletion – preventing errors; find and replace – in your file or across all your projects. Atom offers the possibility to extend its functionalities using easy to install packages (large ever-expanding library available). Finally, it’s connected to Git so you can keep track of changes in your code and, via the Teletype – you can even collaborate on your code in realtime.
Support: Comprehensive getting started guide, excellent community support (forum, Slack), countless good quality tutorials on Youtube.
In three words: lghtweight, powerful, modern
Price: free (opensource)
Works on: all – iOS, Linux, Windows
Main features: Like all the best editors these days, Brackets offers functionalities such as code completion and possibility to customize its environment to suit your preference, syntax highlighting and code hints – preventing errors and split screen – allowing you to work on multiple files at a time and the possibility to add a multitude of helpful extensions in a really simple, straightforward manner. Its main features, though, are the live preview – allowing you to see your changes instantly in the browser (Chrome) and the quick editor giving you the possibility to edit different, connected files without actually switching between them and without cluttering your working space with unnecessary panels and icons.
Support: Troubleshooting section on website; quite a few tutorials available on Youtube.
In three words: versatile, lightweight, extensible|
Price: free (opensource)
Works on: Windows
Main features: Notepad++ offers a variety of modern functionalities that coders have come to expect such as syntax highlighting, some autocompletion to avoid errors, supports multiple languages so you don’t need to switch to another editor if you diversify your skills. Moreover, some of its key features are the code folding – the possibility to collapse parts of your code when you don’t need to see it), document map and multiple cursors – allowing you to more easily navigate through your code as well as column mode editing which gives you the possibility to edit several items at once. Its user interface is also fully customizable. Finally, it allows the use of macros (you can record frequent actions which can save you time since you won’t need to repeat the same process over and over again).
Support: Excellent support on their site, including a very active community / chat + several other resources online (Youtube tutorials, cheatsheets etc.
In three words: lightweight, fast, stable
Price: Not really free – but still worth mentioning here since the developers offer a trial version that you can practically extend…. indefinitely; however, if you use it and find it useful it’s probably a nice gesture to support it.
Works on: iOS, Windows, Linux
Main features: Sublime is great: fast download and easy installation, easy navigation with GoToAnything, plus a very powerful search. One of its most appreciated features is the multiple selection and multiple cursors allowing for multiple simultaneous changes – saving you time. It also offers the possibility to edit files side by side, or edit two locations in one file with split editing. Like most other editors on my list, it offers powerful auto-completion, syntax highlighting and the possibility to customize… everything, including by adding a variety of plugins. Finally, Sublime supports several programming languages and includes a mini-map – facilitating your navigation and code-folding, the possibility to collapse segments of code you don’t need to work on, to facilitate focus and efficiency.
Support: Dynamic forum, excellent documentation; a wealth of quality tutorials on Youtube.
In three words: clean, fast, comfortable
Price: free, open-source (despite being proprietary)
Main features: Easy to download and install. One of its key features: IntelliSense – a smarter autocomplete and syntax highlighting. In addition to that, it caters for easy debugging and integration with Git that helps you keep track of changes and versions. It is extensible and customizable – you can edit the theme, keyboard according to your preferences and it supports many programming languages. Other valuable features are the quick file navigation, the possibility to do side by side editing, the bracket matching (that highlights pairs of brackets as soon as your cursor is on one of them) and, finally, their code snippets (templates that make it easy to repeat code patterns).
Support: Excellent support for beginners and advanced users alike, good documentation, community, FAQ.
Online code editors
In addition to the editors you can download and make your own, you can also use similar online services. The provide, for the most part, all the features you will need in your learning – but in the long run, you’re better of with one of the above. However, the online editors will come in extremely handy if ever you wish to share or ask for feedback on a snippet of code or otherwise collaborate on code. Here are some options that I played with and thought are the most beginner-friendly:
So there you have it. We’ve looked at what code editors are, reviewed some of your local and online options; we also looked at some of the key features to look out for and explored some the questions you can ask yourself when deciding on a code editor to get started with.
If you’ve decided, or have been using one for a while – I’d love to hear about your favourite editor; is it on my list? Do you prefer a different one? Drop a line below to let me know.