美国银行卡Payoneer注册奖励25美元

I'm putting together some practice interview questions for a friend
who lost his job. I thought it'd be useful to crowd-source some
questions from you, Dear Reader.

 

These questions should be more software design focused, less technical trivia like my previous two lists of interview questions:

   

Here's what I have so far.

 
      
  • What is SOLID?
  •    
  • Why is the Single Responsibility Principle important?
  •    
  • What is Inversion of Control? How does that relate to dependency injection?
  •    
  • How does a 3 tier application differ from a 2 tier one?
  •    
  • Why are interfaces important?
  •    
  • What is the Repository pattern? The Factory Pattern? Why are patterns important?
  •    
  • What are some examples of anti-patterns?
  •    
  • Who are the Gang of Four? Why should you care?
  •    
  • How do the MVP, MVC, and MVVM patterns relate? When are they appropriate?
  •    
  • Explain the concept of Separation of Concerns and it's pros and cons.
  •    
  • Name three primary attributes of object-oriented design. Describe what they mean and why they're important.
  •    
  • Describe a pattern that is NOT the Factory Pattern? How is it used and when?
  •    
  • You
    have just been put in charge of a legacy code project with
    maintainability problems. What kind of things would you look to improve
    to get the project on a stable footing?
  •    
  • Show me a portfolio of all the applications you worked on, and tell me how you contributed to design them.
  •    
  • What are some alternate ways to store data other than a relational database? Why would you do that, and what are the trade-offs?
  •    
  • Explain
    the concept of convention over configuration, and talk about an example
    of convention over configuration you have seen in the wild.
  •    
  • Explain the differences between stateless and stateful systems, and impacts of state on parallelism.
  •    
  • Discuss
    the differences between Mocks and Stubs/Fakes and where you might use
    them (answers aren't that important here, just the discussion that would
    ensue).
  •    
  • Discuss the concept of YAGNI and explain something you did recently that adhered to this practice.
  •    
  • Explain what is meant by a sandbox, why you would use one, and identify examples of sandboxes in the wild.
  •    
  • Concurrency
          
    • What's the difference between Locking and Lockless concurrency models?
    •      
    • What kinds of problems can you hit with locking model? And a lockless model?
    •      
    • What trade offs do you have for resource contention?
    •      
    • How might a task-based model differ from a threaded model?
    •      
    • What's the difference between asynchrony and concurrency?
    •   
  •        
  • Are you still writing code? Do you love it?
  •    
  • You've just been assigned to a project in a new technology how would you get started?
  •    
  • How does the addition of Service Orientation change systems? When is it appropriate to use?
 

Your thoughts? I'll add good questions from the comments throughout the day.


原文地址:
http://www.hanselman.com/blog/NewInterviewQuestionsForSeniorSoftwareEngineers.aspx
posted on 2011-02-21 23:34  Nic Pei  阅读(1278)  评论(0编辑  收藏  举报