Building shared libraries, advantages and disadvantages of code sharing, dynamic linking, and creating reusable code components for multiple programs.