What Software Engineers Should Know
Software Engineering would be a more mature discipline if we had spent more time reading What Engineers Know and How They Know It: Analytical Studies from Aeronautical History rather than A Pattern Language: Towns, Buildings, Construction.