• Stars
    star
    114
  • Rank 308,031 (Top 7 %)
  • Language
    Python
  • Created over 6 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Whiteboard Pairing

When doing this exercise as the interviewee, you should record yourself answering the interviewers question. This must be uploaded on youtube and the link is one of the components of your development journal. If you prefer, you may make the video private and invite your PM. This will be of great use when working with your career coach!

In order to get you guys more practice whiteboarding, we're going to have you pair up with a partner once a week and have you both swap between being an interviewer and an interviewee. This ensures that each student gets in at least one live whiteboard practice session a week.

This is how it's going to work. Everyone will be a assigned a problem. This will be the problem that you will pose to your interviewee when it's your turn to be interviewer. You're being assigned the problem at the beginning because it's very important that you get familiar with your assigned problem. In order to be an effective interviewer, you need to know the problem you're asking inside and out.

A working reference solution will be given to you, but you should figure out other ways to solve the problem because everyone thinks about problems differently. What's important here for you as an interviewer is be familiar with multiple approaches to solving your given problem, as well as the tradeoffs between working solutions. Your interviewee may very well come up with a solution to the problem that is very different from the reference solution or your own preferred solution, but that doesn't mean they are wrong. At that point, it will be your job as their interviewer to discuss with them the tradeoffs between their solution and yours.

Additionally, the working reference solution you've been provided with will be in JavaScript, but we don't want to limit interviewees to having to whiteboard in JavaScript. Some of them may wish to go with Python (or even C if they're really brave). You should be able to effectively act as their interviewer regardless of the language they choose to implement their solution in. This will give you the chance to discuss problems in multiple languages, or in pseudocode.

Tips on How to be a Good Interviewer

As an interviewer, you hold a lot of power in your hand over your interviewee. You can make life pretty straightforward (though this doesn't necessarily mean easy) for them, or you can absolutely ruin their day. It goes without saying that we're aiming for as much of the former as possible.

For the purposes of this whiteboard pairing exercise, your job as an interviewer is to set up your interviewee for success as much as you possibly can. While the question that you pose to your interviewee may itself be challenging, we want everything else to be lined up such that your interviewee has every chance of succeeding.

This means that your interviewee should not have to deal with vague instructions, unclear expectations, or the mind games of trying to guess "what does the interviewer actually want?". This is why it's of the utmost importance that you, the interviewer, review the instructions of your assigned problem and make sure that the instructions and expectations of the problem much as much sense as possible. If they don't, then they need to be cleared up. Better for you to figure these things out beforehand than for your interviewee to have to suffer through it in the moment.

Additionally, another very important function of interviewers is to provide constructive feedback to your interviewee. This is very important, since the whole point of this exercise is to get you all more comfortable and better prepared for whiteboarding in a real-world interview setting. Tell your interviewee what and how they could have done better. If they weren't able to solve your problem to completion, give them pointers on how to improve, for example, "When seeing a problem like this, your first thought should be to use this data structure because of x, y, and z."

Don't ever put your interviewee down. Everyone is here to learn. Don't forget that, and always try to be patient with your interviewee.

As you interview, mentally note things that you appreciated that the interviewee did, and things you think might not have reflected positively on them. (You don't have to share this information with them; if you do, make sure you do it in the nicest, most constructive way possible.) Remember these do's and don't's when you are the interviewee.

Tips on How to be a Good Interviewee

The goal of the interviewer is usually not to see if you can solve the problem (though is is the goal for some interviewers). The goal is generally to see how you think your way through a problem. This is to your benefit; if you don't know the answer, that's fine--just think your way though it.

But don't think just to yourself. Think aloud. The interviewer wants to see your thought processes. This benefits you a couple different ways:

  • It's easier to think about a problem when you're talking out loud.
  • The interviewer can tell if you're getting closer to the right track, and can offer you hints to guide you along.

When you are asked a whiteboarding question, step one is: understand the question. Pore over it, describing aloud what the question is asking. If something doesn't make sense, get clarification. If you don't understand the problem, the interviewer will note it, and you'll be extremely unlikely to be successful with the problem.

Keep Polya's Problem Solving Techniques in mind.

Barely any whiteboarding questions will have obvious answers. Don't get frustrated if you don't see the answer right away. Usually the problems have to be probed and broken down before any kind of answer becomes apparent. Frustration will prevent you from thinking clearly, and will leave a very negative impression on the interviewer.

Instead of being frustrated, look upon the problem as a curiosity that can be explored. Turn the problem over in your head and look at it from different angles. The problem itself is fascinating to look at, even if you can't see the answer.

If it helps, try to imagine that the interviewer is on your team, and that you're working collaboratively. Even if they aren't actually helping, this mindset can put you more at ease and allow you to think more clearly.

Finally, don't cheat. You'll only be cheating yourself. Here at LS, the goal is to get practice coming into a semi-stressful environment and being presented with a problem for which you don't know the answer, and have to think on your feet. If you practice the problem in advance, you'll lose out on that opportunity. There's no penalty at BloomTech if you don't get the answer. Use the time to practice solving difficult problems from a cold start.

A Note on Googling

Googling during a whiteboarding pairing session is not forbidden. That being said, Googling should be done within reason. Obviously don't allow your interviewee to just google a solution to the problem. However, checking MDN for a useful method is acceptable, as well as checking Wikipedia for a definition. Use your best judgment as an interviewer.

If the interviewee needs to know a function signature, one approach might be to look it up for them and provide it to them.

More Repositories

1

C-Web-Server

A simple webserver written in C
C
600
star
2

CS-Wiki

Lambda School CS Wiki
Makefile
418
star
3

Precourse

This repo contains the instruction material and assignments for Lambda School's pre-course program.
JavaScript
299
star
4

portfolio-website

A project to get you up and running with a portfolio site
294
star
5

Intro-Python-I

Introduction to Python basics
Python
95
star
6

Data-Structures

Python
70
star
7

Graphs

Graphs, BFS, DFS, connected components
Python
66
star
8

responsive-web-design-I

Responsive Web Design I project
HTML
65
star
9

module-challenge-intro-to-git

In this project you will be using the concepts learned in the Git for Web Development lesson to fork/clone/push/and submit a PR for each project during this sprint.
58
star
10

React-Insta-Clone

JavaScript
57
star
11

Algorithms

An introduction to algorithmic problem-solving and algorithmic paradigms.
Python
41
star
12

react-shopping-cart

JavaScript
36
star
13

Relational-Databases

Relational Database, PostgreSQL
JavaScript
34
star
14

applied-ux-guidelines

These are some simple guidelines to create better looking websites and apps.
32
star
15

Intro-to-C

A first introduction to the C programming language
C
31
star
16

React-Todo

HTML
30
star
17

React-Router-Movies

JavaScript
28
star
18

Intro-Django

Intro to Django
28
star
19

build-week-scaffolding-node

JavaScript
28
star
20

User-Interface

HTML
27
star
21

Blockchain

Python
26
star
22

LS-Web-Intro-I

25
star
23

Intro-Python-II

Second part of introduction to Python basics
Python
24
star
24

Computer-Architecture

Computer Architecture
Python
23
star
25

Peer-Code-Review-Checklist

22
star
26

ML-day_1

Day 1 of Lambda School's Machine Learning Mini Bootcamp
22
star
27

Sprint-Challenge-React-Wars

A project to assess one's capabilities within the react ecosystem
HTML
22
star
28

ML-Precourse

Welcome to the Lambda School Machine Learning program! This is the first of many coding assignments that will teach you modern Machine Learning.
Python
22
star
29

CS-Build-Week-1

Conway's Game of Life
20
star
30

java-resources

20
star
31

Secret-Gists

Save and read secure notes using GitHub gists
JavaScript
19
star
32

web-module-challenge-classes

An exercise for JS class syntax.
JavaScript
19
star
33

nasa-photo-of-the-day

HTML
18
star
34

node-auth1-project

Web Auth I Module Challenge
JavaScript
18
star
35

React-UI-Components

This is a project to be used by students to build out User Interfaces solely with functional components in ReactJS
HTML
18
star
36

C-Hash-Tables

Hash Tables
C
17
star
37

Sprint-Challenge--JavaScript

JavaScript
17
star
38

GitHub-Contribution-Graph

Procedural documentation for getting commits reflected in your GitHub profile Contribution Graph
17
star
39

Sorting

Python
17
star
40

Git-Flow-Practice

17
star
41

Rainbow

iOS 101 - Day 1 Project
16
star
42

web-module-challenge-css-layouts

Flexbox Challenge
HTML
16
star
43

Sprint-Challenge--User-Interface

This is the sprint challenge for the User Interface and Git sprint
HTML
16
star
44

github-usercard

Create a card based on the data coming back from the Github API.
CSS
16
star
45

front-end-project-week

This contains the assets and instruction for Front End Project Week
16
star
46

React-Components-Insta-Clone

Module Project for Composing React Components and Passing Data Via Props
JavaScript
16
star
47

The-C-Programming-Language

C
15
star
48

web-module-challenge-prototypes

An exercise for JS constructor functions.
JavaScript
15
star
49

Getting-Started

Documentation on setting up a basic development environment.
15
star
50

Processes

C
15
star
51

Sprint-Challenge--Intro-Python

Intro to Python Sprint Challenge
Python
15
star
52

DOM-I

JavaScript
14
star
53

Code-Review-Checklist

14
star
54

DS-Unit-1-Sprint-2-Statistics

Jupyter Notebook
13
star
55

Responsive-Web-Design-II

All things responsive: Devices, viewports, media queries, adaptive, fluid, and how to build them.
HTML
13
star
56

DS-Unit-4-Sprint-1-NLP

Jupyter Notebook
13
star
57

back-end-project-week

This repo contains the instructions for the backend project week
13
star
58

Sprint-Challenge-Applied-Javascript

CSS
12
star
59

Sprint-Challenge--Graphs

Sprint challenge for Graphs
Python
12
star
60

Arrays

Low level arrays in C
C
12
star
61

LambdaMUD-Project

Python
12
star
62

node-db2-project

Starter Code for Node DB 2 Project
JavaScript
12
star
63

DevOps-Deployment

This sprint describes strategies to deploying web and other software, plus a lesson in using GCP to build continuous deployment.
JavaScript
11
star
64

dark-mode

JavaScript
11
star
65

Redux-Counter

JavaScript
11
star
66

DS-Unit-3-Sprint-3-Productization-and-Cloud

Building a real deployed full-stack application, backed by Data Science
Python
11
star
67

Auth-Friends

JavaScript
11
star
68

Preprocessing-I

Preprocessing Module 1
CSS
11
star
69

java-starthere

Java
10
star
70

ios-git-setup

A good starting point for git for iOS students
Shell
10
star
71

node-api1-project

Project for Node API 1 Module
JavaScript
10
star
72

Pre-Course-Git-Fu

10
star
73

Static-Pages

Guide/comparison of ways to create and host static pages
10
star
74

Sprint-Challenge--Computer-Architecture

Assembly
10
star
75

Data-Structures-I

JavaScript
10
star
76

Sprint-Challenge--Algorithms

Python
10
star
77

CS1-Code-Challenges

A list of all the code challenges that the students of Lambda University will be doing.
JavaScript
10
star
78

React-Testing

Testing a React App using Jest and Enzyme
JavaScript
10
star
79

node-auth3-project

Web Auth III Module Challenge
10
star
80

React-Redux-App

10
star
81

JavaScript-I

JavaScript
10
star
82

java-springfoundation

HTML
9
star
83

web-module-challenge-array-methods-and-callbacks

JavaScript
9
star
84

web-module-challenge-arrays

JavaScript
9
star
85

node-api3-project

Starter Code for Node API 3 Afternoon Project
JavaScript
9
star
86

DS-Unit-2-Applied-Modeling

Jupyter Notebook
9
star
87

User-Interface-Project-Week

This repo contains the assets and instructions for User Interface Project Week
HTML
9
star
88

DOM-II

JavaScript
9
star
89

node-db1-project

Web DB I Module Challenge
JavaScript
9
star
90

Web-ReactSetup-Guided-Project

JavaScript
9
star
91

webapi-ii-challenge

Create, read, update, and delete posts with server-side JavaScript
JavaScript
9
star
92

node-api2-project

Project for Node API 2 Module
JavaScript
9
star
93

Sprint-Challenge-React-Smurfs

JavaScript
8
star
94

Sprint-Challenge-Advanced-React

Sprint Challenge - Advanced React (Web: Unit 3, Sprint 1)
JavaScript
8
star
95

Python-OOP-Toy

A short introduction to object-oriented-programming concepts in Python.
Python
8
star
96

Sprint-Challenge--Django-I

8
star
97

webapi-i-challenge

Web API I Module Challenge
JavaScript
8
star
98

Lambda-Hello

Introductions to the Lambda Community
Rich Text Format
8
star
99

Django-RPG

Python
8
star
100

Testing

Unit Testing JavaScript
JavaScript
8
star