Welcome to V School!

Student Outcomes

  • We turned down a number of people because they likely didn't have the aptitude to learn to code. While the popular phrase these days is "everyone can code", that doesn't mean everyone will get good enough at it to get a job. And that's what you're here for.
  • We have a skills tree that outlines exactly what skills you should be walking away from V School with. The full list of student outcomes can be found here.
    • In short, you'll be learning about static web sites, web applications, principles of programming, version control, databases, HTTP and APIs, troubleshooting/debugging, deployment, project management, and problem solving skills. We'll also be spending time with preparing you for your new career in development, including resume workshops, applying for jobs, practicing for technical interviews, optimizing your linked in, etc.

Student Expectations

  • We're not about to spoon feed you information. Your outcome depends entirely on what you put into the course. If you don't understand something, don't chalk it up to poor instruction - ask for clarification. Spend extra time with the mentors, the instructor, the TAs, with Google, etc.
  • Ask questions! During class, before class, after class, there's never a bad time to ask questions, and there are no dumb questions.

Our Philosophy

  • We focus on the most productive skill sets.
    • We're not cramming in a CS degree into 12 weeks.
  • We focus on optimizing retention rates.
    • Lecture is terrible without immediate application, repetition, and understanding of context
  • We teach you "how to fish."
    • Focus on learning to problem solve and do our own debugging.
    • Try to figure it out for yourself, then ask for help

Day-to-Day

  • Daily warmups
    • To help engage your brain, review past lessons, challenge you to think critically and solve problems
  • Lecture time
    • For introducing new information
  • Topical exercises (which accompany most lectures)
    • For reinforcing the information learned during lecture time
  • Project work time
    • Longer-term projects are used to pass off levels of the skills tree (kind of like earning a merit badge). Think of these like "final exams" for each level of the skills tree.
      • Projects are passed/badges are earned by completing each project according to the criteria set forth for that project.
      • Criteria can include peer/instructor code review, automated unit tests, project demonstration, or just a visual inspection/"smoke test" of the site or application.
  • Interspersed tech interview practices, code reviews, app demonstrations, career prep time, review sessions, etc.

Note taking

Taking notes is key to getting the information you're learning to sink in. Good note taking is a critical skill when it comes to learning new things. Many people will try to take notes on every single word that is said in class, while others will neglect to take any notes at all. Neither of these techniques are going to make note-taking a worthwhile pursuit. Instead, there is a kind of "golden zone" in between. Here are some pointers so that note-taking is actually worth your time and effort:

1. Find a consistent note-taking system. Sometimes students will just take notes wherever comes to mind first. Before they know it, they have no organized way of reviewing their notes, as some are taken in the Mac Notes app, others on a physical note pad, others in a voice memo of practically every word taught in class, the comment of a program, a text editor that isn't used for coding, the url bar of a new browser window, etc. (Yes, we've actually seen all of these used by students before)

Our recommendation is to use Evernote. You can create as many notebooks as you want, as many notes inside those notebooks as you want, and tag each note with as many tags as you want. It also accepts photos, voice memos, clippings of web pages, etc. It'll even use OCR on the photos you submit and allow you to search through hand-written notes. (Although we wouldn't recommend doing this too often. It's great for stealing someone's written recipes though).

Whatever method you choose, just use it consistently. It'll make your note-taking life lots easier.

2. Don't take notes on every single thing you learn. It's tempting to want to write down everything you don't already know, but at V School we're going to be building on past material so much that you'll be naturally repeating most of what you learn.

Instead, learn to recognize which things you find particularly challenging to understand, and then takes notes in a "teaching" sort of way. In other words, write your notes as if you were teaching the concept to someone new to the concept. Teaching a principle is one of the very best ways to grasp it conceptually and practically, so this will make your note-taking much more worthwhile.

3. Take notes even when you learn something on your own.
Many students will go in to "note-taking mode" while a lesson is being taught, but then not take notes as they learn things from their own online research/personal study/natural discovery. You'll have a number of epiphanies while programming at V School, and those epiphanies can leave your memory as readily as they came in. Whenever you figure out the solution to a particularly difficult problem, write a quick note about what you did to solve it. Even if that note is just a link to the Stack Overflow post that helped you finally understand something or fix something, it's better than having to start from square one the next time you run in to that same problem.