Exercise Thursday

Chances are, you're likely attending Epicodus because you're planning to begin a new career in the tech industry. We're so glad to help you on your journey! After your time with us, you'll begin applying and interviewing for positions. Usually, in addition to standard interview questions about your work experience, career goals, and education, applicants in the tech industry are also asked to answer technical questions.

For many, these technical interviews are the most stressful part of the job-hunting process. Coding can be challenging enough, but being prompted to explain and demonstrate complex concepts in front of potential employers is tough. The key is to begin practicing ahead of time, to ensure you're ready for the real thing before you even schedule the interview!

Each Thursday, we'll take a small break from coding to practice technical 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.

Technical Interview Questions


  • Talk through the following method line by line with your partner. What is happening here?
  public void save() {
    try(Connection con = DB.sql2o.open()) {
      String sql = "INSERT INTO Categories(name) VALUES (:name)";
      this.id = (int) con.createQuery(sql, true)
        .addParameter("name", this.name)
        .executeUpdate()
        .getKey();
    }
  }
  • Discuss the difference between POST and GET. When do we use a POST route, when a GET?
  • Walk through each of the following types of HTTP requests, describe what they do, and when you would use each:
    • PATCH
    • POST
    • GET
    • DELETE
  • Walk through each of the following types of standard database relationships, describe what they do, and when you would use each:
    • One-to-One
    • One-to-Many
    • Many-to-Many
  • In a one-to-many relationship, why does the "many" contain the ID value of the "one" it belongs to? Why not the other way around? What do you think?
  • What is typecasting? When does it come in handy?
  • How often should you typecast? Why?
  • When is it appropriate to @Override built-in methods? What functionality does this offer?
  • Why does the == operator not always recognize that two things are equal in Java? How do we work around this?
  • Why don't the member variables of classes contain an m prefix when they're saved to databases?
  • How can we locate a specific object or database entry in an SQL database? What does this SQL query look like? Construct one for your partner using a whiteboard, scratch paper, or directly in an Atom text editor.
  • Why is it important that the ID value of objects in our application match the ID of that information's entry in our database?
  • How can we ensure the ID value of objects in our application match the ID of that information's entry in our database?
  • In a one-to-many relationship, how do we associate a new object with its parent object in the database?
  • When would we use a post() route in Spark as opposed to a get() route?
  • Why don't we use delete() or put() routes in Spark? What is limiting us?
  • What do user stories offer? Why would a development team use them during the course of creating a new software product?
  • What information does a user story contain? What general format does it take?
  • Talk about a project you created recently that you're proud of. What skills does it demonstrate? What challenges did you face during the course of development?
  • What are you looking forward to learning most?
  • Describe a challenge you faced in a group or partner project, and explain what you did to resolve this issue.