How to Design a Good API and Why it Matters
If there’s anybody who knows good API design, it’s Joshua Bloch. When I started with C#, the thing I missed most about Java was the collections API. The one in C# feels as if they started half-implementing Bloch’s design, and then just gave up.