I helped lead a RailsBridge workshop for women learning front-end development this Saturday. They provided a basic curriculum for those really new to it all, but in our section, everyone was familar with the ins and outs of basic HTML and CSS. We decided to focus on Javascript.

Learning web development was easier 5 years ago. You learned jQuery, and you were basically caught up on the front end. Now, the prevailing mindset seems to be you must learn jQuery, but then un-learn all its imperative principles to move forward and build a declarative, scalable web-app. (One student made a point that her Dev Bootcamp introduced them to scripting with javascript, without introducing jQuery at all - but she was here because she didn’t know what to do with it.)

Ultimately, we sketched out our own curriculum on the fly. We created a calendar in static HTML, styled it with custom CSS and then Bootstrap, brought in jQuery to add some dynamic behavior, and then began work on making the table generation dynamic. Then students pushed their work to GitHub.

Realizations

After the workshop was over, highlights and shortcomings were addressed, realizations made, and parallels to school education found.

Breaking up by “experience”

Groups were initially broken up by general skill level. In a workshop covering 3 languages, this doesn’t really make sense, particularly at the higher levels where mastery between languages varies further. We split our group halfway through to let more advanced students work on something else.

Everyone learns their own way

Not a new idea, but it was clear that some students like to work on their own, some need more help, some want to watch, some want to understand every step, etc.

Sharing is important

This includes collaboration between students, and sharing work on GitHub so that students have something tangible after the workshop is over. The principles of git should be tied into project, not an afterthought tacked on at the end.

Interests outside the curriculum

Across all the classes, there were interests not addressed in the workshop, including:

  • Responsive Design
  • Creating a blog
  • Learning a abstraction language (e.g. HAML, SCSS)

Live coding

When students are trying to copy your code as your type it, it’s impossible to make quick changes without tripping someone up. Ideally, students would always be able to refer to some master code.

The Solution

We decided ultimately it made more sense to offer several mini-projects of varying difficulty.

Each exists as a GitHub project, with different tags mirroring steps in the project, so that students can download individual steps of the workshop.

Each project need not take the whole day, so students can focus on a specific language or goal, jump around, and have more control over the content they study.

This flow also introduces them to the fundamentals behind git, or any other collaborative workflow.

While there is a bit more overhead upfront, the curricula are always accessible, students are more able to interact as they prefer, and likely fewer facilitators are needed.

The principles espoused in our new envisioning of the curriculum, I thought, mirror several of those in online education - personalization, modularization, selective specialization, etc.

An example of one of these walkthroughs forthcoming!