- Provide a world-class educational experience that turbo-charges and catalyzes students' lifelong career paths.
- Introduce students to a thriving community of networked individuals and foster a strong sense of community and fellowship amongst peers.
As a mentor you will be a key resource to the students during the class. You will assist the instructor, review code, answer questions, clarify concepts, and provide constructive feedback. Think of your role as a mentor combined with the concept of a personal trainer at a fitness facility. You're there to help and guide, but also to motivate and hold accountable.
Keep in mind, mentoring often only lasts a single cohort. Exceptional mentors are sometimes asked to stay longer and mentor (depending on future cohort needs), but we generally make the opportunity available to others. Please do not be offended if you only mentor a single cohort. We're very grateful for the help and wish outgoing mentors only the best in their future endeavors.
- Be proactive, empathetic, and engaged in each of your student's learning experiences and outcomes
- Know all of the curriculum and be prepared to answer questions related to the content
- Lead the class in toy problems and mini projects
- Work with your group to review projects
- Work with individual students and ensure that their progress is consistent and that they are being productive
One of the most visible, transparent, and hard-to-fake things you'll communicate to students is your own attitude. Students respond extremely well to patient, empathetic and enthusiastic mentors. Conversely, students don't respond well to impatient, arrogant, or bored mentors. Your attitude will greatly affect the experience of the student. Please treat every student with respect and with courtesy as you patiently work with them to help maximize their learning.
It is crucial that you be intimately familiar with the content covered during class. This means that you need to be at least a couple days ahead of the class in terms of reviewing projects, problems, lectures and any other materials. Be as prepared as you can be to answer questions related to the topic at hand.
Let's go over your duties in the context of a typical day in the Immersive class schedule:
- 9:00 Toy problem
- 9:30 Previous project review
- 10:00 Lecture
- 11:30 Mini Project
- 12:30 [Lunch]
- 1:30 Project
During the toy problem portion, you need to be ready to present the problem as well as walk students through the solution. If scheduled toy problems don't suit your mentor group on some particular day, please find one to use. Try this repo.
It's possible that you'll have some down time during lectures. This time is usually best spend reviewing upcoming curriculum and/or projects. It's very important that you stay at least a couple days ahead of students as you review the curriculum and complete the projects.
The number one priority for your day-to-day tasks is the Queue. The Queue will normally require the most attention during the afternoon project hours, but it is your responsibility to always be watching the Queue and make sure students aren't waiting too long to get a question answered.
Occasionally you will be asked to reteach content that the instructor has covered in a review setting. You should be prepared to review the lesson content with students. Discuss with your lead instructor how to best prepare for those opportunities.
During project time it is tempting to help students solve the specific problem that they are having. Resolve instead to help the student solve the underlying issues. Treat the disease, not the symptoms.
Mentors do not have a set schedule outside of class, however we ask that you join the Slack team and stay active in the channel relevant to your cohort.
Asking questions can help encourage, push, supplement, gauge, and set expecations. Here are some examples of questions you should consider asking frequently:
- How are you?
- How can I help?
- I want you try this one on your own; is it okay with you if I walk away?
- Can you explain to me what it is we just did?
- WHat are some ideas you have for how we could do this?
- What's the problem you're trying to solve?
- Do you want me to go over that again?
Student: I'd like to nominate M as Mentor Of The Year (if there is such a thing - and if there isn't, there should be) If by some stroke of luck I get to be chosen as a mentor I want to be just like him. (Seriously he's awesome)
Lead Instructor: That’s great feedback. Any particulars of why you feel he stands out? I’d love to know to help train up and improve all the mentors I work with
Student: Some mentors will come over and help you fix a line of code and be gone... M will ask you about what you are doing, make you at least give him an idea of what you think you are doing before he just gives out an answer. More instructor-like. and he seems to really understand (not just memorized) how logical code works from front to back. I know that the mentors are just recently graduated students and that level of understanding may not be available in all the mentors, but he sure seems to be there. Also in our morning meetings he takes our feedback, works on some code to help our understanding (literally anything we ask) and then we do a toy problem to keep our JavaScript skills going. He then has one or two of US step through how we got our solution. It really helps as I think that none of us in our group would be too shy to show our stuff to the group. I've had several opportunities to be a mentor/instructor and caring about the student's success should be the first and foremost concern of the mentor because a mentor by definition is a "trusted" advisor and trust is earned. It cannot be earned unless the student can tell you care about his success.
M is an amazing mentor who dedicates time to helping students truly understand the curriculum. M is an extraordinary teacher and developer. I really wish M could stay at DevMountain to help future students as well, because I know M has extremely impacted our learning experience at DevMountain.
More patience and less laziness.
Very good at getting you to figure out the answer yourself and explains things well.
M is awesome at meeting me at my level, finding exactly what's wrong with my code very quickly, and explaining just enough to get me moving in my code again.
M has a lot of knowledge and for me it is very difficult to comprehend all of it. He gets excited about his own things and gives a review of them and I feel drowned in the information on top of what we just learned and have not yet gotten comfortable with it.
A bit impatient. He has solid coding skills. I don't get the impression that he likes helping goobers.
Punctual, kind, humble, helpful, and positive.
I never felt that M cared to be a mentor. He had this attitude when dealing with questions that made you think he felt you were an idiot or something. He was disparaging and unhelpful. I don't doubt his knowledge.
M has been good helping me solve dumb syntax problems. My only complaint is that he seems in a hurry to finish helping you sometimes, unlike the other mentors. It may just be that he doesn't like me much, but that's the impression I get.
M is a great mentor. Often though he'll take off and play ping pong or what not, which is fine. I felt like he would get too comfortable and not want to help.
M should get help from other mentors if he doesn't know the answer. Sometimes he spends too much time on a problem. He has been a great help.
prepare more, challenge more, explain more
While M is always incredibly eager and willing to help me (which is much appreciated) he isn't the best at explaining things in my opinion. He can go off on tangents and digress, and get all worked up (just excited/animated) about things and get distracted from question at hand. Overall still a great help though.
He is very patient and helpful. He makes us feel comfortable asking questions.
He is always very helpful and willing to help if he is in the building even after hours. He is able to explain things in a manor I am able to understand. He talks at a level of my understanding of code and not as if I should know.
Sometimes he wants us to be independent a little too much, sometime I agree it is good. But other times I have exhausted my resources and knowledge, and really do need help to figure something out.
he's always super helpful and chill and gives us a chance to learn for ourselves when we need to and gives direct help when we need it
be careful not to belittle people. Sometimes we really don't have any idea.
M is da bomb! When he comes to help, he doesn't just give me the answer but rather push me in the right direction so I can learn and figure it out. He's patient and is always willing to help.
M is an absolute Rockstar! His coding skills are the best among all the mentors in my opinion. He is very patient and has a gentle personality. When you approach him with a problem, he pauses to think about it and comes up with a brilliant answer/suggestion. He even helped me with a problem after hours.
Doesn't seem to be as available as other mentors.
I really like M- he is intense, which is harder for some people to deal with, but his direct approach prevents confusion and he works very hard.
I feel that N sort of checked out of wanting to help and I overheard him one day talk about being tired of answering the same questions. While I feel that he has been a good resource, I have not felt that way lately and hesitate asking for help.
- Get email and name from Jeremy
- Get info into the spreadsheet
- Add student to https://codecard.io/a/groups
- Get in and add student to http://q.devmounta.in/#/adminDashboard
- Set up interviews
- Possible screen-sharing tools to use:
- https://madeye.io/ is a pair-programming/interviewing tool, hooks up easily to Google Hangouts.
- http://pharaoh.js.org
- http://plnkr.co/ has a collaboration feature.
- http://codeshare.io/ and http://kobra.io/ are basically the same thing.
- Possible screen-sharing tools to use:
- Be sure they're on Slack.
- Has the student finished the pre-course work?
- Extra (non-required) pre-course work?
- Does she understand it all?
- Git?
- If not:
- On a Mac, tell them to try running
git
. It'll prompt to install things.- They'll need the Xcode Command Line Tools installed anyway, so this is good.
- For more up-to-date versions: http://git-scm.com/download/mac
- Windows: go to http://git-scm.com/download/win ; it should start automatically.
- Linux distros usually come with Git. If they don't have it:
- Red Hat-based (Fedora, etc.):
sudo yum install git-all
- Debian-based (ubuntu, etc.):
sudo apt-get update && sudo apt-get install git-all
- Arch-based:
pacman -Syy
, thenpacman -S git
- Red Hat-based (Fedora, etc.):
- On a Mac, tell them to try running
- If not:
- Node?
- If they're on a Mac and they've installed it with Homebrew,
- Or if they're on Linux and installed it from their distro's repos:
- Tell them to
npm i -g n ; n latest ; npm i -g npm
because it will be outdated. - (They could also use
nvm
instead ofn
). - If they're on Windows and installed it with any third-party app, tell them to uninstall it and go to:
- https://nodejs.org/en/download/
- They could then use this, this or this.
- If, for whatever reason, they need more options: https://gist.github.com/isaacs/579814
- And to make things easier in the future:
sudo chown -R username /usr/local/
(no more need tosudo
everything).
- Mac users: get Homebrew.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- Does this student have an editor? No, Notepad is not an editor. Neither is the Mac Notes app.
- Possible options:
- https://www.sublimetext.com/
- http://atom.io/
- http://lighttable.com/
- https://macromates.com/ (Mac only)
- http://brackets.io/
- http://code.visualstudio.com/
- vim/Emacs (if they want it, they'll already have it)
- WebStorm/Eclipse/some other IDE (if they want it, they'll already have it)
- Possible options:
This is presented as a giant block of code, with questions as comments, and potential answers below them.
// Are you excited? Still planning on attending?
// (Yes, yes.)
// How're you doing on the prep work? Anything you've had
// trouble with? Anything you've been avoiding?
// (It's all done, I'm okay, not sure about object syntax, etc....)
///////////////////////////////////
// THE ACTUAL CODE INTERVIEW BIT //
///////////////////////////////////
// What is a variable? Can you create one?
var foo
let foo
const foo
// What is a string, and how do you create one?
var str = 'this is a string'
// What is an array, and how do you create one?
var arr = [1, 2, 3]
// What is an object, and how do you create one?
var obj = {
something : 'hi'
, anotherThing : false
}
// What is an operator? Can you show what some of them are?
// + - * / % = >= <= == === != !== || ! &&
// What kinds of operators are there?
// (expected: arithmetic, comparison, logical (&&, ||, !), assignment;
// bonus: typeof, bitwise (& | ^ ~ << >> >>>),
// ternary (conditional) (if this is true ? do this : otherwise do this)
// What do truthy and falsey mean? Any examples?
// truthiness and falsiness describe how something might be evaluated. for example:
if (2) {
return true
}
// returns 'true,' because all non-falsey values are true.
// What are the falsey values?
// false, 0 NaN, null, undefined, and '' (empty string)
// What is a function?
// A function is a piece of code that performs a task (routine, operation, procedure).
// How is that different from a method?
// A method is a function on an object.
// How does one declare a function?
// function declaration
function someFunc(){}
// or, with a function operator:
var someFunc = function(){}
// or:
const fn = () => 'foo'
// How does one invoke a function?
someFunc()
// How does one invoke a method?
obj.method()
// How would I access an element of an array?
foo[0], foo.length, foo.sort(), foo(bar), foo.indexOf('bar')
// How would I access a property of an object?
obj['key'], obj.key
// How would I write a for loop?
for (let i = 0; i > something; i--) {
// do stuff
}
// How about other types of loops? (Do we know any?) (bonus)
while (condition) {
// do stuff
}
do {
// stuff
} while (condition)
// What does an if statement look like? (bonus)
if (something) {
// do something
}
// How about an if...else if/if...else? (bonus)
if (stuff) {
// things
} else if (otherStuff) {
// other things
} else {
// do these things
}
// And a switch statement? (bonus)
switch (expression) {
case value1:
// executed when result of expression is value1
[break]
case value2:
// executed when result of expression is value2
[break]
...
case valueN:
// executed when result of expression is valueN
[break]
default:
// executed when none of the values match
[break]
}
- Review “pre-class” resources class.devmounta.in
- Be on time (9:00 AM)
- Participate during daily lecture (and mini-projects, if any)
- under “mini” at class.devmounta.in
- Work on afternoon project from 1:30-5:00pm
- under “project” at class.devmounta.in
- actively push project to github
- Finish daily assessments before the following morning
- assessments found on CodeCardio (log in w/ same email used on class.devmounta.in)
- actively retake assessments
- Keep up with the syllabus/schedule/projects (on class.devmounta.in)
-
www.slack.com - join channel (web-dm#) to communicate with your class
- We use Slack A LOT at DevMountain. It is the first form of contact used to communicate.
- They should also join:
- announce
- jobs
- relevant housing and location channels
-
If they're concerned about their success:
- Initially, they should talk to you.
- If they'd like, they can get in touch with Krissy Weekly on Slack @krissy or email krissy@devmounta.in.
-
If they're having personal issues that may interfere with their learning:
- You should be their first point of contact. They can also go to Krissy.
-
If they need to reach out to someone about housing questions or concerns:
- They should talk to Bri Rios @bri.rios on slack, or put their questions in the relevant housing channel.