Pre-Mock Preparation & instructions

  1. You must be in the same zoom room as your peer.
  2. How to score the candidate (interviewee):
    1. For the non-technical conversation you’ll have the questions and guidelines on what should the candidate more or less talk about (it’s an open question so you expect from the candidate to be professional, focus on the question and not another unrelated topic).
    2. For the technical conversation part you’ll have for each question its correct answer and the candidate will either give the whole correct answer to get the whole point otherwise you give them 0.
    3. for the other exercises, the interviewee must have a working program with the correct output / answer to get the whole score on the task, otherwise 0.
  3. VERY IMPORTANT :
    1. Before starting the Mock Interview
      1. You as the interviewer must be logged in to use the google form to score the candidate.
      2. The candidate must give you their information that you’ll need to fill the google form such as :
        1. Intranet ID number
        2. Campus
        3. Name

Part 1: Non Technical Conversation (5 minutes)

  1. How do you stay updated with the latest developments in the tech industry ?
    1. The answer might be any of the following or similar to (non exhaustive list) :
      1. Subscribing to newsletters
      2. Following tech people on social media like X (twitter) or other platforms like medium…
      3. Reading books
      4. Watching, buying tutorials and so on…
  2. Can you describe a challenging situation you faced while learning programming and how you overcame it ?
    1. It can be a group project at Holberton and they overcame it by organizing their timeframe and by doing pair programming for example.
    2. It can be a personal project and they found the solution by asking on stackoverflow or another platform.
    3. It can be a difficulty understanding a technical concept and they managed to get it by doing whiteboarding during the PLD, etc…
  3. What do you enjoy the most in the software engineering field ?
    1. It’s a kind of an open question, the candidate must remain professional in their answer and stay focused on the topic and not talk about something else.

Part 2: Technical Conversation (15 minutes)

  1. What is a variadic function ?

    1. answer:
      1. A variadic function is a function that can take a variable number of arguments.
  2. What does a function pointer allow us to do ?

    1. answer: A function pointer allow us to:
      1. Call a function through a pointer.
      2. Pass a function as an argument to another.
  3. What is __str__ in Python ?

    1. Answer:
      1. It is a special method used to define a string representation of an object.
      2. It is called when you use the str() function or when you print an object.
      3. It returns a human-readable, of informal, string representation of an object.
  4. What is a class ?

    1. Answer:
      1. A class is a blueprint for creating objects (instances).
      2. It encapsulates data (attributes) and behaviors (methods) that objects of the class can have.
  5. Can you catch multiple exceptions in a single except block ?

    1. Answer:

      1. Yes, you can catch multiple exceptions using parentheses, example:
      try:
          # Some code
      except (TypeError, ValueError) as e:
          print(e)
      
  6. Are lists mutable or immutable in Python ?

    1. Answer:
      1. Lists are mutable, meaning their contents can be changed after creation.
  7. What happens if you try to modify an immutable object like a string for example ?

    1. Answer:
      1. You can't modify the original string. Any operation that seems to "modify" a string will actually return a new string.
  8. What is the primary idea behind Test-Driven Development (TDD) and its benefit ?

    1. Answer:
      1. TDD is a development approach where you write tests before writing the actual code.
      2. The cycle follows: write a failing test, write code to pass the test, then refactor.
      3. TDD ensures code is more reliable, helps catch bugs early, and leads to better structured and maintainable code.
  9. **What is the __dict_**_ method in Python ?

    1. Answer:
      1. The __dict__ attribute is a dictionary that contains all the writable attributes of an object. It shows the internal state of an object as key-value pairs.