Both BBCode and Markdown are markup languages. ("Markdown" is a play on "markup language".)
BBCode was used on old internet message boards. You'd write something like [b]text[/b] to get bolded text, [i]text[/i] for italics, [img] to embed images, etc. BBCode tags (like [b]) mirrored simple HTML tags usually: since message board posters weren't really trusted, allowing regular HTML was out of the question.
Markdown is a newer markup language that was intended to be easier to read and write. Instead of [i]text[/i], you write
*text*
which is actually one of the few formatting options HN recognizes [0]: text. Bold is double stars, links are this [link text](url) format, images are , etc.