Don Knuth is writting an impressive book series called "The Art of Computer Programming" since the 1960s. In 1977 he created TeX, to produce high-quality documents independently of the current printing technology. In the 1980 Leslie Lamport built LaTeX on top, which provides a lot convenient macros. For producing text-heavy pdfs TeX is the tool, which sucks least.
Building LaTeX documents
On the lowest level there is pdftex for compiling tex files to pdfs. However, I strongly recommend to use a wrapper tool like rubber or latexmk.
Pure TeX or even LaTeX means a lot of work. There are lots of handy packages available.
Use KOMA script document classes, i.e. scrbook, scrreprt or scrartcl.
This provides more flexibility than for example article.
Always start with
The first line tells TeX,
that your document is encoded in utf-8,
so you can write
ä instead of
The second line specifies the font encoding in the pdf,
which in this case is Type-1.
The babel package is the common approach for different languages.
Other packages often build on top of it.
For example use the csquotes package and the
to get the correct quotation marks,
instead of writing them explicitly with
Links and References
Use the hyperref for references.
For example, it transforms the table of contents entries into hyperlinks.
It also provides the handy
and has various options for pdf-specific features.
Use TikZ to generate diagrams and other graphics. It is a more modern variant to Metapost.
Use biblatex. In contrast to bibtex, the formatting is done with LaTeX instead of a special programming language.
For special layout requirements consider fancyhdr, titlesec, setspace, and tocloft.
For columns use the multicol package.
As a text-based format TeX is suited for version control software like git or svn. Write at most one sentence per line or even only sentence fragments per line. This results in much nicer diffs, which means a better history. Commit often for a detailed history.