Skip to content ↓

teaching web.lab by Vincent H. '23

aka what i spent all of january on

some context: web.lab / 6.148 is a web development course offered every iap at mit. i took the class in 2020 and was an instructor in 2022; you can find our site here


spend dozens of hours reading through code examples, homework assignments, and lecture slides from web.lab 2021. identify every instance of outdated code and rewrite everything in terms of modern industry standards. redesign every lecture you’re assigned, adding motivation and examples and eliminating content you don’t think is useful

carry 40-pound boxes of food from mass ave to building 13 every day. every day meaning the first three days of web.lab, after which mit announces that classes are no longer allowed to serve food. you feel the strain in your back and arms as you waddle through the infinite, but then afterwards you feel joy simply from watching everyone eat lunch outside. maybe you could feel this happy every meal, if only you understood the work and care involved in delivering every bite of food to your doorstep?

discuss web.lab theme and swag ideas. film a weblab opening ceremony video that feels incredibly awkward live but becomes pretty watchable after the publicity chair edits it extensively. get a staff jacket with “TASTY” written on the back, which you’ve wanted for like two years. take the extra money from all the canceled lunch orders and use it to buy more class swag like bucket hats

formally learn about sockets and typescript and webpack for the first time, because you know questions will come up over and over in office hours. in theory you learned all of it two years ago when you were a student in web.lab 2020, but you never had to use this stuff so you have shaky foundations, and it feels great to finally write some code and understand everything that is going on

make your first piazza instructor note – it’s a snow day announcement. endorse an answer for the first time, and marvel at how this is the first time you’ve ever seen the green “An instructor (Vincent Huang) endorsed this answer” text appear. spend hours trying to snipe piazza questions and answer them as quickly as humanly possible. feel disappointment when the average piazza response time slips from 1 minute to 2 minutes to 3 minutes to 5 minutes over the four weeks of web.lab, even though obviously 5 minutes is still a pretty great response time

feel a lot of anxiety the night before your first lecture, since the largest class you’ve ever taught was around 15 students and web.lab has close to 400. look through your slides over and over even though you really don’t need to anymore, writing summaries in the speaker notes and the occasional “breathe. breathe. breathe.” to remind future-you to slow down in case they panic. the lecture goes well, so for your other two lectures you do a lot less anxiety-prep and those go well too

spend a lot of time with other web.lab staff, partially out of necessity but also because they’re pretty cool. notice that this is probably the first teaching environment you’ve been a part of where every staff member is extremely competent in the subject being taught. realize that this means, for once in your life, you don’t have to address a disproportionate amount of academic tasks, because everyone else is capable of handling them too

read through students’ project ideas and give feedback on idea quality. most of the proposals are unoriginal or infeasible, but occasionally you come across really wholesome or fresh ideas and feel inspired. meet the students in-person when they’ve finalized their project ideas and give them feedback on implementation details and potential difficulties, which is actually a lot of fun to think about

host lots of office hours for students to get project help. host extra office hours by yourself when one of the students complains that they can’t make any of the regular office hours. get to know the teams that show up to OH every day. convince the other instructors to make piazza posts where every instance of OH is replaced with owo

reflect with the other staff members on how web.lab is actually very simple. as in, the first time you learn it the course material feels overwhelming and all over the place, but once you see the big picture you realize that there are really only a single-digit number of concepts being taught, and everything else is just procedural knowledge for how to write code quickly. isn’t it a biological miracle how you can go from not understanding anything about web development to being able to teach it?

listen in on all the sponsor lectures. realize that three of the sponsor lecturers happen to be your friends and catch up with them afterwards. feel surprise but also nod in agreement when one of the sponsor lecturers mentions that they love web.lab because it’s one of the only large eecs-sponsored events where mit students are encouraged to work at tech startups rather than large companies

monitor 10-250 during lectures. walk over to students as soon as you see them raise their hands. accumulate 112 help queue tickets. run a hackathon, aka extended office hours, where you spend six hours helping students debug code without any breaks whatsoever; it is one of the strongest flow states you have ever entered and the level of focus is incredible

spend a day trying all the finished websites and grading them. a lot of the sites are quite polished and functional. seeing that leaves you impressed and very happy, because it means you did your job and successfully spread knowledge of web development. argue endlessly with the other staff while deciding on a list of 10 semifinalist projects. spend another five hours listening to semifinalist pitches and communicating with sponsor judges. start putting together the slides for the closing ceremony two hours before the ceremony. sigh out of relief and exhaustion when it finally ends


at some point during my first year at mit, i decided i wanted to help teach a class. there are lots of mit-affiliated teaching programs like gtl and esp, but most of them involve teaching high schoolers, and i wanted a chance to teach other mit students because i already had prior experience with teaching high schoolers. i thought my teaching opportunity would come from TAing for a class i did well in, but for various reasons (sometimes classes require you to grade or do other assistant work for a semester before TAing, other times i missed deadlines, etc) that never worked out and so i signed up to teach web.lab

the funny thing is that when i took web.lab as a student i did terribly. my team worked on a very boring website that barely met the requirements and i was generally confused throughout the course. it was only through working on other websites over the past year, like my personal site and hackmit project, that i gradually got enough reps in to understand how web development typically works. luckily the web.lab staff interview process doesn’t really look at your past web.lab performance and instead just asks you to prove your understanding of various web development concepts, so that ended up not being an issue

anyway, teaching ended up being somewhat more intense than i expected. over the ~24 days of iap during which web.lab was ongoing i counted at least 120 hours spent actively working on web.lab tasks, and i probably spent quite a bit of additional time thinking about web.lab in the background. it ended up being pretty much exactly the teaching experience i’d wanted out of mit though, so i’m very happy that i chose to pursue it :) 

the main thing i’m grateful to web.lab for is that it produced a rare instance of value alignment for me. by values i mean major life objectives like i want to do things that are fun and i want to do things i’m good at and i want to do things that help me learn subjects i care about and i want to do things that make the world a better place (in my opinion) and i want to do things with people i enjoy being around. it’s quite uncommon for a single activity to satisfy all of these objectives at once, and in general it’s probably unreasonable to expect anything to

for instance, most jobs i’ve worked check the “things i’m good at” and “things that help me learn” boxes, but didn’t necessarily check the other three; writing checks the first three boxes but fails the last two since i typically do it alone and don’t think my writing improves the world significantly; hanging out with people checks most boxes but usually doesn’t result in much learning or world improvement; and so on, you get the point

and i think teaching web.lab actually checked all the boxes? as in, i think teaching and coding are both fun activities that i’m good at, i became a more solid developer and instructor, i think spreading the joy of web development and empowering mit students to create whatever webapps they want improves the world in expectation, and i generally liked my co-instructors. the last time all these things coincided for me was probably in august when i was living in alaska before school started; i actually think this might be the first time the coincidence of desires has occurred for me while at mit

the really powerful thing about value alignment is that, when it occurs, you can throw your time and attention and energy into an activity without any hesitation because you know it will satisfy all your major needs. for instance, i didn’t need to claim 110 web.lab help queue tickets (the other staff members had around 70); i chose to because it left me meaningfully fulfilled in a way that no alternative activity would have done at the time. and while doing so, doubts like am i qualified to do this? or am i getting anything out of this? or is this helping anyone?, which are typically prevalent in my life, were nowhere to be found

i probably won’t teach web.lab again next year, just because i imagine there’ll be other experiences i want to try a year from now. but for most people, including me, these kinds of alignment moments are incredibly sparse, so i think it’s important to notice when they occur and appreciate them properly