Exercise Thursday

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

In addition to learning how to implement the new tools, technologies, and concepts, you want to become comfortable talking about them too, so you may accurately demonstrate and communicate these skills you've learned to potential employers in an interview. Not all interviewers will quiz you on vocabulary and concepts, as some of the questions below do. However, you should practice verbally articulating these topics in order to discuss them with confidence in an interview, regardless of the type of question that begins the discussion.

Take turns answering the questions below with your partner:

Technical Interview Questions

  • What is an overflow menu, and how might we decide which options belong in it?
  • What is an Android Pattern, and how can we utilize it to speed up our development process? What kind of development tasks can it make simpler?
  • Walk through the process of OAuth authentication with your "interviewer" in as much detail as you can. What process occurs to authenticate an account?
  • What makes OAuth so secure?
  • How do you decide what information should be stored locally in SharedPreferences, and what information should instead be saved to a database?
  • Describe at least three use cases for implementing an Intent.
  • During the Android Activity lifecycle, when is the onStop() method called?
  • What is the Android Manifest responsible for? What type of information would you find there?
  • When starting a new Android project, how do you determine which version of Android your application will run? What information do you need to take into account?
  • Is Firebase a relational database? Why or why not?
  • What is the difference between a Firebase listener, and a Firebase snapshot?
  • How can Event Listeners be used to manage an application's communication with its database? Describe an example.
  • In particular, what is a ValueEventListener? What capabilities does it have? When/where might we use one?
  • What is a SearchView widget? What SearchView functionality is built-in to the widget, and what functionality do we have to program ourselves?
  • What is an intent flag? What can they be used for? Describe a few examples.

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!").

Have you heard of the SHARE technique? It's a useful guideline for telling stories and giving examples that demonstrate your capabilities in an interview. It works like this:

  • 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 faced issues working with a partner or team. What did you do to resolve it? How did it work out?
  • You became incredibly frustrated with your code. What was the issue? What did you do? Would you have done anything differently?
  • You refactored really well. How did you do it? Why? What led you to refactor?

If you come up with a story or example you feel good about; jot it down somewhere! It's tough to come up with stories like this in an interview on the spot. Having a few tucked away to review before an interview will be a benefit later.