Skip to content

Commit

Permalink
Merge branch 'gh-pages' into zf-linked-lists
Browse files Browse the repository at this point in the history
  • Loading branch information
zoefarrell authored Dec 5, 2023
2 parents 50b3524 + 64b5369 commit 4a922e4
Show file tree
Hide file tree
Showing 5 changed files with 220 additions and 1 deletion.
1 change: 1 addition & 0 deletions module6/freethrows/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Keep revisiting this page - we may add more opportunities for practice as we go!
### Programming Fundamentals

* [Edabit](https://edabit.com/challenges) - Work through all the c# challenges, starting with 'Very Easy' and steadily increasing in difficulty.
* [Advent of Code](https://adventofcode.com/) - Help some friendly elves in their mission!

### OOP Practice

Expand Down
4 changes: 3 additions & 1 deletion module6/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ In Module 6, students will begin to dive into the skills and mindsets necessary
* Zoe Farrell

## Curriculum
[Mock Interviews](./interviews)

[Intermission Work](./intermission/)

Expand All @@ -25,8 +26,9 @@ In Module 6, students will begin to dive into the skills and mindsets necessary
* [Job Tracking Intro - Teal](./lessons/Week1/JobTrackingIntro)
* [Job Hunt Hustle Intro](./lessons/Week1/JobHuntHustle)
* [Asking Questions in an Interview](./lessons/Week1/AskingQuestionsInAnInterview)
* [Intro to CS](./cstopics)
* [Tools For After An Interview](./lessons/Week1/ToolsForAfterAnInterview)
* [Intro to CS](./cstopics)

### Week 2
* [Revisiting the Graceful Exit](./lessons/Week2/RevisitingTheGracefulExit)
* [Linked Lists - CS Topic - Data Structure](./lessons/Week2/LinkedLists)
24 changes: 24 additions & 0 deletions module6/interviews/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
layout: page
title: Mock Interviews
---

During Mod 6, your weekly assessments will be in the form of Mock Interviews.

Each interview will be 30 minutes long and consist of both technical and non-technical questions. Instead of receiving a score, you will be "offered a job" or "invited to re-apply" . Regardless of outcome, you will be provided with feedback for improving your interviewing skills!

Each week, we will be focusing on a particular PD theme, and we want to see you demonstrate that theme in your interview:
* Week 1: Asking Questions
* Week 2: Graceful Exit
* Week 3: STAR and Concrete Examples
* Week 4: Talking While Coding
* Week 5: Planning

In order to be "offered a job" you must demostrate the following:
* Strong technical knowledge - answer most of the technical questions correctly.
* Ability to exit tough questions - you must demostrate graceful exiting of any question that you don't know the answer to.
* Ability to use examples to illustrate your answers - examples should be relevent and **specific**.

<section class='instructor-notes' markdown='1'>
The questions for each week can be found [HERE](./questions-4545)
</section>
72 changes: 72 additions & 0 deletions module6/interviews/questions-4545.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
layout: page
title: Interview Questions
---

You can ask these questions in any order. There are some questions each week that we know students will not be able to answer - this is by design to see how they exit a tough situation. Keep track on notes on [this tracker](https://docs.google.com/spreadsheets/d/1eMtwW-06Wv0YAdAnZVm5k8_VFNKEKzQeq24kGxMTHbQ/edit?usp=sharing), please!


## Week 1
* Describe the 4 Pillars of OOP
* What is HTTP and give a brief definition?
* Explain Routing in .NET Core MVC?
* What happens if implemented interfaces have conflicting method names? For example, what would happen if class A implements from IB and IC, and each class has a method `DoThing()`.
* What is an enum in C#?
* Difference between the Equality Operator (==) and Equals() Method in C#
* Describe your background. How did you get to where you are now? Why coding?
* Describe your strengths. How have you seen these in practice as a developer?
* Describe a time when you received feedback that you were surprised by. What did you do with that feedback?
* Tell me about a successful presentation you gave and why you think it was a hit.
* What questions do you have for me?


## Week 2
* What is MVC?
* Explain as much as you can about RESTful APIs
* What are properties in C#?
* What are the different data types in JavaScript?
* What are the Different Ways a Method can be Overloaded?
* What is Bundling and Minification in MVC?
* Describe your background. How did you get to where you are now? Why coding?
* Tell me about a time you had a disagreement with a colleague and how you resolved it.
* Tell me how you solve a problem.
* Describe your time at Turing. What worked for you? What didn’t work for you? What was the structure of the program?

## Week 3
* What are three tools or strategies you use to prevent shipping unstable code to production?
* What experience do you have working with SQL?
* What are the types of Joins in SQL?
* What is LINQ in C#?
* What is Database First Approach in MVC using Entity Framework?
* What are Cast() and Convert() Functions in SQL Server?
* Describe your background. How did you get to where you are now? Why coding?
* What aspects of software development do you find the most challenging?
* Describe an example of how you have handled a stressful situation
* Tell me about a time you failed. How did you deal with the situation?


TODO: Update so that students can demonstrate Talking While Coding
## Week 4
* Describe Object Oriented Programming.
* What are the benefits of using a version control system like Git?
* What is IEnumerable<> in C#?
* What are tags and attributes in HTML?
* What is the difference between a struct and a class in C#?
* What is the difference between a statically typed or a dynamically typed language?
* Describe your background. How did you get to where you are now? Why coding?
* Describe your coding experience and why you wish to continue?
* What is your approach to working on a team?
* What is one weakness you're trying to improve?

TODO: Update so that students can demonstrate Planning
## Week 5
* What does it mean to compile code?
* What does API stand for and how do you define it?
* What are the common HTTP Verbs?
* What are the Filters in MVC?
* What is recursion?
* What is the difference between Interface and Abstract Class in C#?
* Describe your background. How did you get to where you are now? Why coding?
* Give me an example of a time you were able to be creative with your work. What was exciting or difficult about it?
* How do you familiarize yourself with a codebase you haven’t worked in before?
* Explain one of the most difficult code problems you’ve had to solve, either on your own authored code, or in contributing to someone else’s.
120 changes: 120 additions & 0 deletions module6/lessons/Week2/RevisitingTheGracefulExit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
---
layout: page
title: Revisiting the Art of the Graceful Exit
---

## Learning Goals
* Revisit strategies for a graceful exit
* Strengthen your ability to respond to questions you don't know the answer to

## Warm Up
Think back to a time in an interview setting when were asked a question you didn't know the answer to.

* How do you feel?
* Regardless of how you answered in that moment, how do you wish you'd responded to the question?

## Purpose of an Interview
We've talked about the purpose of an interview quite a few times at this point, but it's important to keep revisiting this topic because it's easy to get sucked into the idea that an interviewer is only interviewing for technical competency.

<section class="call-to-action" markdown="1">

Take a few minutes to think on these two questions, then you will discuss your thoughts with a partner and finally your instructor will call on folks to share their thoughts with the class.

What is the job of an interviewer?

What personal qualities would you like the interviewer to walk away knowing about you?

</section>

<aside class="instructor-notes" markdown="1">
<p><strong>Instructor Note</strong><br>
We are hoping students leave the conversation thinking something like this:

Of course they are asking you some knowledge-based questions to see what you know and what you don’t know, but more importantly, they are trying to figure out what it would be like working with you.

What type of person are you? What are you like working with teams? How much direction, supervision, and assistance will you need?

When answering interview questions, you are providing the interviewer with lots of insight and information about the personal qualities you will bring to their team. </p>
</aside>

## Graceful Exit Strategies

#### Clarifying Questions
Interview question: “Can you give me some examples of how you might optimize an application?” Response: “By optimizing an application, do you mean making it faster?”

What qualities is the interviewee displaying when they ask questions like this?

#### Pivot
Response: “I’m not familiar with that concept, but it reminds me of ____ . Could I talk a bit about that instead?”

What qualities is this interviewee displaying?

## Students Demonstrate Graceless Interview Answers

You're going to practice graceful exits in a few minutes, but first, let's practice graceless exits! This way you will have a chance to see what it feels like as an interviewer to receive a graceless answer.

Here's how this works, your instructor will start by drawing a random student for the first interviewee. Then they will ask a technical interview question and the first student will give a graceless response. Then that first student becomes the interviewer. The instructor will draw a second random student. The first student will ask a technical interview question and the second student will give a graceless response.

This will continue until everyone has a chance to ask and answer ending with the last student drawn asking a question of their instructor.

When gracelessly answering, your answers might be a short response like "I don't know", pivoting without permission, making something up, or something else! Feel free to be creative!

Feel free to use any short technical question or select from the following:

* What is the difference between an Array and a List?
* In as much detail as possible, describe the Request/Response Cycle.
* What does MVC stand for?
* What are a few benefits of automated testing?

As you are listening to graceless responses, reflect on these questions:
1. How does is feel from the interviewer's perspective to receive a graceless response?
2. What does this answer tell you about the interviewee? What qualities does it convey?

## Breakout Room Practice

Today we're going to do our breakout room practice in groups of 3 or 4.

Each person will rotate between being the interviewer, the interviewee, and the observer (for groups of 4 there will be 2 observers).

As the interviewee, answer to the best of your abilities - these questions are especially hard so you will have the opportunity to practice a graceful exit!

After the interviewee answers, the interviewer can give kind and actionable feedback, again referring to the questions above about what additional information the answer tells you about the candidate. The observer is not responsible for asking questions, answering questions, or giving feedback. They can focus on learning from observing how someone else tackles hard questions.

### Questions

<section class="answer" markdown="1">
### Interview 1

* Describe the accessibility modifier “protected internal”
* How does exception handling work in asynchronous code?
* What is the Race condition in C#?
</section>

<section class="answer" markdown="1">
### Interview 2

* What are the various ways that a method can be overloaded?
* List down the most commonly used types of exceptions in .NET
* What are some ways that regular expressions can be used in validation?
</section>

<section class="answer" markdown="1">
### Interview 3

* What information can you provide regarding the XSD file in C#?
* What can you tell me about the tuple data structure in C#?
* What is the difference between a Struct and a Class?
</section>

<section class="answer" markdown="1">
### Interview 4 (if needed for a group of 4)

* What does it mean to compile code?
* Explain how the concept of dependency injection can be used in middleware.
* What is recursion?
</section>

## Reflection
In a notebook, write down your reflection on the following question:

What are your biggest takeaways from this lesson?

0 comments on commit 4a922e4

Please sign in to comment.