Scott Hanselman提出的高级软件工程师应该懂的问题


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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值