Design patterns and software design questions are an essential part of any programming interview, no matter whether you are going for a Java interview or a C# interview. In fact, programming and design skills complement each other quite well, people who are good programmers are often good designers as well as they know how to break a problem in to piece of code or software design but these skills just don’t come. You need to keep designing, programming both small-scale and large-scale systems, and keep learning from mistakes.