All Projects → SpazDude → Interview

SpazDude / Interview

Licence: other
Code completion and code review for identifying C# candidates

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to Interview

Interview
Code completion and code review for identifying C# candidates
Stars: ✭ 13 (-40.91%)
Mutual labels:  review, developer, interview-questions
Leetcode Sol Res
Clean, Understandable Solutions and Resources for LeetCode Online Judge Algorithm Problems.
Stars: ✭ 1,647 (+7386.36%)
Mutual labels:  review, interview-questions
FAANG-Coding-Interview-Questions
A curated List of Coding Questions Asked in FAANG Interviews
Stars: ✭ 1,195 (+5331.82%)
Mutual labels:  interview-questions
tecnologia-telegram-brasil
a maior lista de grupos de tecnologia no telegram
Stars: ✭ 26 (+18.18%)
Mutual labels:  developer
CVparser
CVparser is software for parsing or extracting data out of CV/resumes.
Stars: ✭ 28 (+27.27%)
Mutual labels:  candidate
rview
A Gerrit client application for Android
Stars: ✭ 62 (+181.82%)
Mutual labels:  review
ctci-go
Cracking the Coding Interview in Go
Stars: ✭ 31 (+40.91%)
Mutual labels:  interview-questions
Grokking-the-Coding-Interview-Patterns-for-Coding-Questions
Grokking the Coding Interview: Patterns for Coding Questions Alternative
Stars: ✭ 374 (+1600%)
Mutual labels:  interview-questions
CodingInterview
Leetcode解题、剑指offer第二版💪💪💪⛷😀
Stars: ✭ 28 (+27.27%)
Mutual labels:  interview-questions
betterdocs
📚 Web version of https://github.com/khusnetdinov/ruby.fundamental repo - Fundamental programming with ruby examples and references. It covers threads, SOLID principles, design patterns, data structures, algorithms. Books for reading.
Stars: ✭ 25 (+13.64%)
Mutual labels:  interview-questions
interview-prep
🤼 An aggregate of technical interview questions and testimonies.
Stars: ✭ 17 (-22.73%)
Mutual labels:  interview-questions
hackertab.dev
Hackertab turns your New Tab page into a geeky one that keeps you as a developer updated with the best tools, news, jobs and events.
Stars: ✭ 229 (+940.91%)
Mutual labels:  developer
CRACK JS INTERVIEWS
CRACK JS INTERVIEW
Stars: ✭ 33 (+50%)
Mutual labels:  interview-questions
android-interview
The comprehensive Android interview questions and study guide
Stars: ✭ 13 (-40.91%)
Mutual labels:  interview-questions
LSTM-sentiment-analysis
LSTM sentiment analysis. Please look at my another repo for SVM and Naive algorithem
Stars: ✭ 19 (-13.64%)
Mutual labels:  review
nepali-devblogs
Collection of blogs/publications by Nepali devs.
Stars: ✭ 30 (+36.36%)
Mutual labels:  developer
metasfresh-documentation
Docs and Manuals for Devs, Users, Admins
Stars: ✭ 22 (+0%)
Mutual labels:  developer
golang-interview
⁉️ Вопросы для собеседования по Go
Stars: ✭ 52 (+136.36%)
Mutual labels:  interview-questions
face-recognition
얼굴 인식에 대한 기술 동향 및 관련 모델 자료
Stars: ✭ 38 (+72.73%)
Mutual labels:  review
chappe
🧑‍💻 Developer Docs builder. Write guides in Markdown and references in API Blueprint. Comes with a built-in search engine.
Stars: ✭ 132 (+500%)
Mutual labels:  developer

Administering the Interview

###30 minutes, 50 possible points


Before beginning, make sure they understand that you assume from their resume that they are proficient in .NET, C#, SOLID design principles, unit testing, and at least one IoC Container

Scenario: A junior programmer created the following application, it needs to be finished and code reviewed.

  1. Show the candidate ReverseEvenNumberGenerator and its unit test They may not change the for loop
    • (5 points) Have them finish the class so that the unit tests pass
    • (2 points) Single if-then-else statement
    • (2 points) don't concatenate strings to produce the result (string builder or string.Join)
    • (1 point) No extraneous lists or processing
    • (1 point) Style & readability
  2. Have them perform a code review on Class1
    • (2 points) Identifies "SetRange" method as Sequential Coupling issue (must call as dependency initializer)
    • (2 points) Recommends Constructor Injection
    • (2 points) name the class something meaningful
    • (2 points) Recommends putting the range elements into another class
    • (2 points) Justifies another class because it can be injected by IoC container whereas integer primitives cannot.
    • (2 points) Recognizes extraneous loop in Generate Output based on putting items in a list and calling string.join
  3. Show them OddNumberGenerator and the Extensions file.
    • Ask them how they would apply the provided interface and introduce a second implementation
      • (2 points) Make the class non-static
      • (2 points) Remove the "this" keyword from each method
      • (2 points) Remove the "static" keyword from each method
      • (2 points) Change the existing calls to be made from an instance of the object
    • Ask them what they would need to change to make the library a pluggable dependency
      • (2 points) Register the desired class in the IoC container & provide as dependency
  4. Add the FizzBuzzGenerator to the program
    • Show them the program wrapper (program.cs)
    • Show them the FizzBuzzGenerator class, ask them what they need to do to add FizzBuzzGenerator functionality to the application and suggest improvements
      • (4 points) The switch statement used to create different classes is a code smell because it requrires changing every time a new class is registered or removed from IoC
      • (2 points) They suggest refactoring the switch statment using either an array of IGenerateOutput, or named registrations
    • Based on the different Generator classes dependency injection methods, describe how these classes would be registered using their IoC of choice, and suggest improvements
      • (2 points) Factory Methods and Create registrations are a code smell that means the classes themselves should be refactored
      • (2 points) Registrations should be performed by convention or automatically
  5. Ask them to finish the code review by commenting on the unit tests
    • (1 point) Split tests into classes to mirror the classes being tested and common test setup conditions "When..."
    • (1 point) Rename test methods to follow a "Should..."
    • (2 points) Use a stub rather than private class
    • (2 points) Missing unit tests for FizzBuzzGenerator
    • (2 points) Missing unit tests for Range
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].