Editors: Choose, discover, extend
Tags: tooling, beginners, codenewbie, productivity
Published: 2020-11-06 10:15:43

[Disclaimer: I'm not a senior dev with 35 years of editor-hopping experience. Any decision you may take is your responsibility]
I intend this to be a short first read to give new or intermediate devs the big picture as I see it. 

The editor is a very important tool to us devs. Taking the time to familiarise with it, understand and improve it is always worth it. 
Even a ridiculously hard to install plugin that would take a day to configure and boost your productivity by a measly 1% would pay for itself in just 4 months. And most improvements takes just minutes to make and can total to an important **multiplier** (i'm talking x1.5 to x5 here) to your efficiency.


# Choose

Those are questions you should ask yourself if/when choosing or changing editors

1. **Know yourself**: Can you afford to take the time it takes if the learning curve is steep? Something keyboard-driven, if you are touch typist ? Personal preference between terminal / GUI ?

2. **Know your machine**:  a potato laptop may not be able to smoothly run a heavy GUI IDE; or maybe your multi-monitor setup won't play nice with this terminal-based editor.

3. **Know your work**: only one language?  (even in the foreseeable future?). Mandatory functionality your boss ask you to have that's not available everywhere ? Work on remote server / SSH / exclusively in terminal ? 

# Discover

Modern editors / IDEs are not just one tool. Sometimes they are a new language in themselves (vim verbs/motions), or more often come with a new set of commands, shortcuts and a large ecosystem of plugins.

1. **Try out**: the new editor you might switch to. Blog posts about which one is better always conclude it depends on you. 

2. **Actively discover**: practice, look a few tutorials. Look for plugin 'best of's, stores and catalogues, and ask your peers for advice.

3. **Passively discover**: get tools up (like android studio startup tip, or a similar vim-tips plugin) to passively deliver tips. Update your tools often. Save blog/reddit posts for when you have time to try them out.

# Extend

In 2020, you can expect from your editor/IDE to deliver **top-notch** functions of the following categories. If you currently don't have one, unless you are sure you don't need it, it may be time to look into it.

- **syntax coloration**: basic but 100% necessary
- **code completion**: simple integrated autocompletion is often superseded by tools providing LSP support or that have an AI backend
- **linting**: it parses your code and shows basic (or sometimes more intricated) syntax errors
- **'intellisense' / project integration**: provides go-to-definition, type hint, documentation peek
- **interactive run/debug**: you should be able, in 2020, to send your code or even a part of if to an interpreter (send-to-REPL, interactive window), or debug (integrated debugging) without leaving your editor & recompiling+running everything.
- **file management**: jump between or browse through different files
- **Git / [VCS](https://en.wikipedia.org/wiki/Version_control) integration**: a nice to have if you use extensively git or another VCS


That's it! Thanks for reading!