A robust program need to handle signals. This is because signals are a way to deliver asynchronous events to the application.
The concept of a process is fundamental concept of a Linux system. Processes can spawn other processes, kill other processes, communicate with other processes and much more.