Scott Hanselman提出的進階軟體工程師應該懂的問題

來源:互聯網
上載者:User

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:

 

      

  • What Great .NET Developers Ought To Know (More .NET Interview Questions)
  •    

  • ASP.NET Interview Questions (7 years ago, can you believe it?)

 

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.