Non Tech

  • Tell me about your career and about yourself.
  • What are you passionate about?
  • What Technology did they use?
  • What role did they play?
  • How do they get things done? When did they take a leadership role and get it done?
  • Tell me about the programming you do outside of work.
  • Describe a recent experience/project that you found enjoyable and demanding?
  • Was there a time, when you went that ‘extra mile’ and beat all expectations?
  • Describe a problem you discovered in your current job. How did you solve it?
  • Describe a situation where you had to adapt and manage change but were having problems. What did you do?

Technical

  • Do you fix bugs before writing new code?
  • What design patterns have you used (Dependency Injection, Façade and Factory)

  • What are some of the access levels for variables/methods

      Public variables, are variables that are visible to all classes.
      Private variables, are variables that are visible only to the class to which they belong.
      Protected variables, are variables that are visible only to the class to which they belong, and any subclasses.
          Should a subclass be able to write this member? Then protected else private
    
  • How is method overriding different from overloading?

      Overloading is when you define two methods with the same name, in the same class, distinguished by their signatures.
      Overloading is resolved at compile time.
      Overriding is when you redefine a method that has already been defined in a parent class (using the exact same signature).
      Overriding is resolved at runtime (based on the type of the implicit first parameter).
    
  • Can you inherit multiple interfaces?

      yes
    
  • What is the difference between const and static read-only?

      If a variable needs to have a fixed value, that may not be changed across the application's life, then it may be declared with the const keyword. The value assigned to a constant variable (using the const keyword) must be known at the time of compilation 
      The const keyword may not be used with an object of reference type.
      In case a reference type needs to be assigned a non-changeable value, it may be set as readonly 
    
  • What is an abstract class?

      Abstract classes allow you to provide default functionality for the subclasses 
      The abstract modifier can be used with classes, methods, properties, indexers, and events.
      Use the abstract modifier in a class declaration to indicate that a class is intended only to be a base class of other classes. 
      An abstract class cannot be instantiated.
      An abstract class may contain abstract methods and accessors.
    
  • What is the difference between an interface and abstract class?
  • Interface							Abstract class
    Cannot implement methods			Can implement methods
    Can only inherit from another Interface	Can inherit from a class and one or more interfaces
    Cannot contain fields				Can contain fields
    Can contain property definitions	Can implement a property
    Cannot contain constructors or destructors	Can contain constructors or destructors
    Can be inherited from by structures	Cannot be inherited from by structures
    Can support multiple inheritance	Cannot support multiple inheritance
    
  • When would you use an interface vs Abstract class?

      Abstract class answers “Is-A” 
      vs 
      Interface “Can-Do-this” 
      If multiple changes/added functionality use abstract class
      Provides common functionality to unrelated classes use interface (such as an analysis method for business rule engine)
    

Coding projects

  • PROJECT: Salary

      Alice is a manager of the sales team, her salary is 40000/year
      A sales associate Jon has a base salary of 30000/year and gets a 10% sales bonus at the end of the year.
      Design a system that lists employees and their pay for end of the year processing.     - User Story    As a business analyst I would like to view all employees with their salaries and sales bonus with a total compensation.
    
    • Acceptance Criteria: Screen that lists employee’s in a row, with their salaries, bonuses, and total compensation (sum of salary and bonus).