Advanced JavaScript Bootcamp

The Advanced JavaScript Bootcamp covers skills that modern JavaScript hiring managers expect from new-hires.

About Advanced JavaScript Bootcamp

11 Weeks

During this course, we will be developing an app to interface with github to allow us to search for and see different github users and display them on our web interface. By the time this course is done, we will have developed this app together which has consistent style, type-checking, linting, testing, and clean interfaces to a backend API. You will then take what you’ve learned and apply it to a project of your own devising (i.e. a capstone)

Diversity Scholarship and Alumni Discount Available


Module 1
React and the build process

Duration: 5 weeks

  • Week 1:
    Mob programming with React

    Will introduce the class to mob programming, and we're going to run through a live example of coding a React single-page app using ES6 and JSX with Chrome. We'll go through the design and development of an app together from scratch and the students will see the design and refactoring process together as we craft the app. They will be expected to reproduce the app on their own. We will start writing an application that interfaces with Github using "canned" data.

  • Week 2:
    Introducing the build

    We will show how our code doesn't work on old lousy browsers. We'll talk about node and the beautiful world of javascript on the command line and discuss how we can use babel to deal with browser incompatibility issues. We will introduce yeoman and webpack to put together a babel/jsx/uglification/concatenation build chain that works across browsers using node.

  • Week 3:
    Standards and documentation

    Good developers follow consistent styling and standards. Much of this stems from Crockford's JavaScript The Good Parts, but some of Crock's ideas are old or just plain wrong in an ES2015 world (yes, even the mighty Crockford, note that much of his writing was targeted at ES3). Let's talk about how we can adopt standards and style that works well with a team and how we can use jsdoc to document our code in a productive way. We will introduce jsdoc and eslint/standard as tools to help us out.

  • Week 4:
    Functional programming in JavaScript

    Stop using for loops. Stop it right now. If you can, stop using variable assignment. You'll be amazed at how wonderful functional programming is in JavaScript (hint: it's better than Python), and it has gotten so much better in ES 2015. Introduce lodash and work on exercises to convert nasty imperative loops into declarative functional goodness.

  • Week 5:

    So now you're a solid team player and you have strong, consistent code that follows rigorous standards with doc-blocks for every function and module. But why does this have to be so manual? Wouldn't it be nice if your computer helped you out a little more with this? Well, it can! Let's talk about TypeScript and Flowtype: two projects that introduce typing back into the lawless world of JavaScript. These are much modern implementations of typing than in old crappy languages (Java!); in fact this functionality is in Python, too, so it must be good!. We'll see how the typing system works in these two systems and we'll see the power that it gives us when refactoring. Let's convert our `.jsx` files to `.tsx` and see what happens when we try to refactor!

Module 2
Testing: Unit and End-to-end

Duration: 2 weeks

  • Week 1:
    E2E testing

    Introducing webdriverio and selenium to allow you to test your app at the highest level so that you can fire yourself from being the person who clicks on things and squints at each one of your pages to make sure it looks right. Let your computer do that! Bonus round is to do automated visual regression-testing. We will add e2e tests to our React app.

  • Week 2:
    Unit testing with Mocha/Chai

    You've got your top-level tests, and that's great, but when you're working on a new function, you need to be able to test that function in isolation and get rid of the DOM. We'll learn how to write tests for your code in isolation and to make sure that your tests are readable and non-brittle. Let's add unit-tests to our React app.

Module 3
Interfacing with the backend

Duration: 4 weeks

  • Week 1:
    Asynchronicity and Promises

    Interfacing with a backend is an asynchronous operation. We will discuss JavaScript's unique conventions about asynchronicity. Asynchronous operations in JavaScript can be done in a lot of different ways, but the current hotness is to use Promises. We will talk about why these are better than callbacks and how they can be composed. We will also talk about how they can be counter-intuitive.

  • Week 2:
    Fetch, REST

    We'll get into the latest http-request library, called fetch. We'll use it to interface with a Github API and we'll see how we use promises within React to update the UI when calls to the backend are resolved. Now we're finally going to interface our application with the actual online live github API!

  • Week 3:

    Now that we know how to interface with a well-formed and well-documented REST API, it would be nice if we could interface with one of our own. However, in today's cloud-service world, you usually don't need to build a backend to make an application. We'll talk about Firebase and we'll add a "note-taking" feature to our application which allows us to take notes on developers that we're stalking on Github.

  • Week 4:
    (BONUS Round) State management with immutable patterns

    We learned all about functional programming and asynchronous actions, but how does that translate into a React-based world? Introducing Redux. Manage all your state transitions through pure functions! Keep your entire state system in one immutable object! Funnel asynchronous actions through thunk functions! So much fun and crazy terminology!

Post Course/After Party

  • Capstone work

    Once the lecture section of the bootcamp is over, you will use everything you’ve learned to create a final capstone project of your own devising. Your instructor and TA will be available to help when you get stuck and for code review.

  • Demo Day

    Show off your hard work to your classmates, family and friends during demo day!

A few places our grads work