Markdown

I'm a big fan of simplicity. It's something I strive for every day. I feel it is incredibly important as a programmer. In a way, programming and development is the practice of simplifying. Simplifying usable interfaces. Simplifying for speed. Communicating complicated ideas in a way that is simple.

I had a favorite quote on a poster in my office by Charles Mingus. It went, "Making the simple complicated is commonplace; making the complicated simple, awesomely simple, that's creativity."

I set up this blog a couple years ago. It's using Ghost CMS, a modern Node.JS blogging system. And I think the Ghost team did an excellent job making the experience of managing a blog clean and simple.

One aspect in particular I like is their choice to use a markdown editor. In a more traditional content management or blogging system, a rich text editor is used. Rich text editors offer a word processing experience for managing content online. Most people have already used a word processor. Common word processor examples include Microsoft Word and Google docs, which are both very popular. So using a rich text editor to manage web content is a very natural transition.

The premise is simple. Highlight text, click a button or hot key combination and your content has style and structure without needing to know how to code. In practice, however, it's not so simple. And many developers, myself included, find working with rich text editors a challenge because it's imprecise. The translation from what you create to the markup that is generated can be messy because both the semantics and markup are abstracted. When looking at the rich text editor, what you just created may appear clean, but if you peak under the hood, you will find a mess of markup you never intended. That extra markup can hurt the design and your content's semantics. Often times, it is also really hard to remove.

This is why I love Markdown. You don't need to know how to code to use it and it's incredibly efficient.

Using a rich text editor, in order to bold something, most people will move their hand to their mouse, highlight the word or phrase, hit the bold icon or use a keyboard shortcut. In markdown, all you need to do is add shorthand around your text. Your hand never has to leave the keyboard. To italicize a phrase, you add one star (*) on either side. To bold another phrase, you add two stars (**). To create an unordered list, add a star at the beginning of each new line. To create an ordered list, instead add 1. 2. 3. etc at the beginning of a line. To add a link, put the words you want linked in brackets then put the actual link afterwards in parenthesis.

Print out a quick cheat sheet, hang it on your wall, and you're off and running. Not only will it make your content clean, concise and make a developer happy, it will also save you time.