Coder Social home page Coder Social logo

shubhwip / pair-programming-exercises Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 0.0 832 KB

You can refer to this repository as collection of machine coding or pair programming exercises. The goal of this repository to provide some real life problems which can be solved in time bounded fashion with limited features to show your machine coding and pair programming capabilities. Many of these problems have been asked in interview rounds.

License: MIT License

Java 97.33% Dockerfile 2.26% Shell 0.41%
interview-preparation learning-exercise machine-coding pair-programming programming programming-exercises tech-interview tech-interviews technical-interviews

pair-programming-exercises's Introduction

Pair Programming Exercises

You can refer to this repository as collection of machine coding or pair programming exercises. The goal of this repository to provide some real life problems which can be solved in time bounded fashion with limited features to show your machine coding and pair programming capabilities. Many of these problems have been asked in interview rounds.

Structure

Each Subproject has a README.md file which details out the problem statement. There are few refactoring exercises as well with names starting from refactoring-exercise-*. Now there is a solution available in each of the subproject and it is written in java and related frameworks. keep in mind that it is not the best solution.

How to approach ?

  • Read the Problem statment
  • Start a timer for 2 hours and create a boiler plate project in your favourite language
  • Find a buddy if possible to pair program
  • Make some assumptions if needed and write them out
  • Write down the initial approach
  • Start with writing few simpler test cases
  • Start the implementation
  • Refactor and repeat

What happens afterwards ?

Now once your timer has stopped and you're done with something real in your hand. Go ahead and ask yourself below questions

  • How far this solution is away from production grade ?
  • Given more time, what could be done for better ?
  • Did you overengineer your solution by any chance ?
  • Were your initial assumptions wrong ? Keep in mind that there is nothing like best solution, you make some tradeoffs while designing a solution and nobody is expecting production grade solution in 1 or 2 hours. It is just a matter of convesation and driving discussion around important parts of your solution and all choices you made.

Best Practices

  • Use Design Patterns and SOLID Principles everywhere in your project
  • Add Logging and exception handling
  • Remove Verbosity as much as possible
  • Add Dockerfile to run your solution in isolation
  • Add README.md file and document everything
    • Prerequisites
    • Configuration
    • How to Run the Project
    • Design Decisions
    • Future Support
    • Footnotes
  • Make your work loosely coupled and highly cohesive
  • Care for thread safety

pair-programming-exercises's People

Contributors

shubhwip avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.