Simplest use-case:

It's a fancy outline mode in emacs.

(NB: You can use it easily in Windows, just go to the GNU Emacs home page and download the emacs binaries, I do this for work where we're a Windows shop.)

Simplest features, outlines:

* This is a headline
This is my content
** This is a subheading, it's been folded...

* This is a headline
This is my content
** This is a subheading, it's not folded
More content.

It's a plaintext markup format, akin to markdown but not the same rules.

Markup rules:

*bold*, /italic/, _underline_, =monospaced, good for code=

You can make enumerated lists or unenumerated lists:

* A heading
1. List item
2. Another item, folded...
* Another heading
- list item, no enumeration
- another item
- sub-item

NB: Emacs shorthand: C-(character) means press Ctrl+(character), C-(character)-(character) means press Crtl+character, continue holding control and press the next character (the characters are pressed in sequence, not simultaneous). M-(character) means, on windows, the Alt-key (left-alt specifically?).

Going fancier, let's make a TODO item!

* Project
** task
** Another task

On each heading, press C-t

* TODO Project
** TODO task
** TODO Another task

You finished task? C-t again

* TODO Project
** DONE task
** TODO Another task

You can do more configuration so it includes the time and day completed. You can change the workflow away from just <none>/TODO/DONE, as well. For code projects I have BUG/FEATURE/TRIAGE as well. TRIAGE indicates a possible error that's been discovered and its details are in the contents. BUG indicates that a bug has been identified and its details. FEATURE is a request and its details.

Check out their site (http://orgmode.org/) for a lot more details. It can do a ton of things. If you really want to get started, just treat it as an outliner to begin with. Start using additional features as you need them. Like emacs and vim, it's a tool that you can grow into.

At the top of all of my org files is at least this directive:

#+STARTUP: indent hideblocks content

indent means that the outline will look like:

* header 1
* subheader
content

Instead of:

* header 1
** subheader
content

It's cleaner, IMHO, and the second version is the actual file contents. It's strictly a change to the presentation.

hideblocks means that codeblocks and the like are hidden to begin with when I open the file:

#+begin_src c
void function(void);
#+end_src

becomes:

#+begin_src c...

content means it'll show all the headlines, with their contents folded up.

* H1
* H2...
* H3...
* H4

You can make schedules in it. Make checklists in it. Write code in it (literate programming). You can export it to LaTeX and HTML and other formats. You can tag headers

* Tagged header :work:broken-feature:

And search those tags. I'm not sure how much else to say, it's big. But read the site. Play with it. Realize you want to do something, google that task and org-mode and someone probably wrote a blog explaining how to do it in org-mode.

EDIT:

org-mode is included in the default emacs builds. You don't have to seek it out, though it does get updated independent of emacs. Emacs has been getting frequent updates the last few years, so you're usually not a major version behind if you just grab the emacs distribution and use its org-mode.

org-mode does sometimes create breaking changes in their formatting. But this has only bitten me once, and that was with a file I made in 2010 and reopened in 2014. The changes (forgot the details) needed to conform to the new formatting rules were not big. The biggest hit this last time I think was with the publishing directives and system.