"Explain the difference between synchronous and asynchronous programming. When would you use each, and what trade-offs come with async code?"