As much swap as your RAM if you want to hibernate. Otherwise, it can be even
less (but I do not recommend 0).
Explanations:
If the system does not have swap and runs out of RAM, the kernel kills a
process. It may happen even if the system has a huge amount of RAM, e.g.,
after running for hours a program suffering from a memory leak triggered in
some special condition. The choice of the process to kill is rather
arbitrary: the kernel may not kill the faulty process.
If the system has swap and runs out of RAM, it becomes slow. Unbearably slow.
I measured: reading data on my SSD is about 50 times slower than on my RAM,
150 times if the data is on HDD. Nobody will have the patience to use such a
system until 16 GiB of swap are filled! Noticing that her system has become
slow, the user saves her work (she cannot in the previous situation, without
swap), maybe run 'top' (or another system monitor) to discover what process
eats up the memory resources, and chooses what program (probably that one) to
close to free some memory.