Depends on the area of their expertise. I wouldn't expect an embedded C developer to know much about design patterns. If we are talking about a Java or .NET developer, they should be familiar with design patterns, and especially how to not get too carried away with them.
Post Made Community Wiki