Exercise Thursday

Each Thursday we'll take a break from coding to practice technical interview questions. These questions will (primarily) revolve around the content we learned this week. Just like a real interview, some will be more technical than others.

In addition to learning how to implement the new concepts from this week, you need to become comfortable discussing them too, so you may accurately demonstrate and communicate your skills to potential employers in an interview.

Take turns answering the following questions with your partner:

Technical Interview Questions


  • At this point, you've likely had experience with both SQL databases, and non-SQL databases (like Firebase). Discuss their differences. Do you prefer one over the other? Why?
  • Walk through the process of dependency injection with your partner, as if you were explaining it to an interviewer. How does it work? Why is it special?
  • After answering the question above, walk through how Angular 2 in specific utilizes the dependency injection process.
  • Consider the following code snippet. Describe exactly what's happening here. Additionally, what can you tell, if anything, about the application this came from? What about its database?
...
export class ProductService {
  products: FirebaseListObservable<any[]>;

  constructor(private af: AngularFire) {
    this.products = af.list('/products');
  }

  saveProduct(newProduct: Product) {
    this.products.push(newProduct);
  }
...
  • Why might we use a dynamic segment in a URL? What does it contain, and why?
  • What is fat arrow notation? How does it affect scope? And the keyword this? Why is this functionality beneficial?
  • Describe the process by which components pass data down to one another. What tools need to be in place to do this?
  • Describe the process by which components pass actions upwards to one another? Again, what tools need to be in place to do this?
  • How do we decide when to make a new component?
  • What are services used for? Where can we place them? Do they have to pass data down, and actions up too?
  • Walk through the MVC (model-view-controller/component) design pattern with your partner again. What is a model? A view? How about a controller/component? What is each responsible for?
  • Now, describe how Angular 2 fits this MVC pattern.

Stories and Examples


Offering a tangible story or example that highlights your skills usually goes much further in an interview than simply telling your interviewer you're good at something. (ie: Telling a story about a time you tracked down a tricky bug versus simply saying "I'm good at problem-solving!").

As a guideline, here's the SHARE technique introduced previously. This is a recommended way to depict stories and examples to potential employers in an interview:

  • S: Describe a situation you faced relevant to the interviewer's question.
  • H: Outline the hinderances and challenges the situation presented.
  • A: Describe the action(s) you took in response.
  • R: Go over the results of your actions.
  • E: Then, evaluate what you've learned.

Using the SHARE outline, give an example of a time...

  • You had to give someone constructive feedback. What was the scenario? How did it go? How did you ensure it was constructive?
  • You helped reverse a negative situation at work, school, or in another group atmosphere. What was the issue? How did you help?
  • You had to face a rather overwhelming problem or hurdle. How did you work it out? What happened?
  • One of your decisions was challenged by a manager, instructor, or figure of authority. What was the situation? How did you react?

Like we've said before: If you come up with a story/example you feel good about; jot it down! It can be challenging to come up with examples that depict your soft skills in an interview on the spot. Having a few available to review before an interview could be a huge benefit to you later.