What I’ve Learned Leading a Free Coding Camp for Three Years

2,339 reads

BizStream Academy is a free summer coding camp, hosted by the web development company I work for, BizStream. It runs three days a week, two hours a day and lasts for two weeks. We’re constantly iterating and evolving our curriculum, materials, marketing, session length, and website design. Last year we had one long eight week session. Some students dropped out or sat in the back and played Minecraft. We showed Treehouse videos in class. It was a terrible idea. Treehouse is great for independent learning, but not for showing in front of a class. The year before we used Codecademy. The year before that we had eight students. This year we had over 60 and we used Girl Develop It’s curriculum, heavily edited. Heavily. After our first 2 week session, we rewrote our entire JavaScript curriculum.

As we continue to improve, we’re constantly learning. We’re learning about our students, about teaching, and learning things about coding we didn’t even know ourselves. It’s a cliche, but it’s true: we’re learning just as much as our students.

People really want to learn this stuff

Sign-ups this year went through the roof. Our first session reached capacity after just a few days. We had to start a waiting list. We’ve never done much advertising. The Academy has a Facebook page. We mention it through BizStream’s Facebook and Twitter accounts. We bring it up at local industry events, and it was mentioned in the Grand Rapids Business Journal in 2014. Many of the students come from the nearby high school’s robotics team, which we sponsor as a company, or the school’s wrestling team, that BizStream’s owner coaches.

We ask people on our sign-up form how they heard about us, and it’s mostly word-of-mouth. Sometimes they come through search engines or hear about us at conferences. They want something like this, and they find us.

For the right person, I can see how BizStream Academy would be a dream come true. 12-year-old me, just getting on the internet and wanting to make a website of my own, would’ve given her eyeteeth for something like this instead of learning on my own from books and copying source code. Now that the web is a regular part of our lives, there’s even more interest, and it’s all ages. We have younger students who want to do this for a fun creative outlet. We have adults who are looking to change careers and think building for the web might be a solid possibility. We have seniors with some extra time on their hands now that they’ve retired who want to learn a new skill. The desire is all over the place.

Computer literacy needs to be a thing

At BizStream Academy we mostly teach beginning front-end development skills: HTML, basic CSS, and a little taste of JavaScript. We also give a tiny overview of how the internet works. (“A website is a folder of files, sitting on a server, displayed in your browser.”) We explain that a server is like your computer, but usually larger and more powerful, and only has one purpose: in our case, hosting a website. We know there’s more to it than that, but that’s all they need to know for the class, and it’s a starting point for learning more.

The problem is, many of them don’t understand the concept of files and folders. We’ll have them create a folder for their project and create an index.html file in that folder. Somehow the index.html file ends up in their Documents folder. Or they download images into their Downloads folder and don’t understand why they don’t appear on the web page. One session we found several students had index.html.docx files in their folders.

This problem particularly stumped us regarding our younger students. Aren’t these kids supposed to be technological wonders? What about all the memes where the tech savvy 3-year-old takes 2 minutes to bypass the iPad parental controls it took the hapless parent 2 hours to figure out how to setup?

We spoke to one student (she’s the daughter of a BizStream employee so we felt more comfortable asking) to see what might be going on. She offered a suggestion: Chromebooks. Her school provides students with Chromebooks, and she explained the folder structure works differently than the Windows machine she was using for Academy.

I’ve never used a Chromebook, so I don’t know how the folder structure works. I do think an understanding that computers are used to store files, and files live in folders, is an essential skill kids should be learning in school. Dare I say it? Yes, this is more important than learning to code. Most careers don’t require coding skills, but they do require computer literacy.

Abstract, inapplicable concepts are frustrating

In Session 1 this year we taught two classes of basic HTML and CSS before switching to JavaScript. I taught the first JavaScript class and went over variables, if statements, and functions. I’m happily teaching when a student has a question:

“How does this actually relate to our websites?”

The students have been using their skills to build a simple website. Suddenly we’re doing a bunch of console.logging and they don’t see the point. Fair enough. I explain that these are basic building blocks of a language that lets you do things like build mega menus and slideshows and annoying pop-up email subscription forms. Blank stares. This ends with me walking through creating a button that when clicked reveals some hidden text on the page, all in vanilla JavaScript.

But that student who asked the question? She had a point. It’s hard to see how these abstract concepts relate to the HTML and CSS learned earlier. It’s hard to see how a programming language can relate to anything. This was why I wrote my FastCompany piece a few years ago: it’s hard to learn to code when code feels so abstract and different. It’s hard to see how basic things like variables and functions can actually build something useful.

In the end, we scrapped basic vanilla JavaScript and went for jQuery. It was a hard decision for me, but in the end it made sense: it’s so much easier to add something cool to a website quickly with jQuery than teach enough JavaScript to get to that same point. We have them jump straight in with the Owl Carousel plugin. Within the two hour class they have a working image slider on their site and many are itching to do more. I find it funny that we’re basically teaching JavaScript object syntax to students who don’t know what a variable is, but it works. If this sparks interest, we can point students to resources like Codecademy for learning the basics.

Teaching is really, really hard

Before teaching at BizStream Academy, my mental image of how it would go looked like this: I’m standing up in front of the students, who are all listening attentively and laughing at all my jokes. They follow the code examples and instructions perfectly, and upon observing their working code in action, exclaim: “Wow, this is so cool!”

Every school teacher everywhere is on the floor laughing right now.

Here are some of the things I didn’t anticipate:

So many different skill levels: some students have already made websites while others view their computers as light-up mystery boxes with a bunch of lettered buttons on them.

Trying to explain how to do something on a Mac while working in Windows.

Someone’s working on a problem that isn’t really relevant but you want to help them figure it out, and that ends up taking over half the class.

Students who don’t show up and then expect to not be hopelessly behind.

No one uploading their work to their Google Drive folder. Ever. Despite countless reminders.

Younger students who don’t really want to be there, but their parents are dropping them off every day. So instead they sit in the back and play Minecraft.

Trying to explain that no, jQuery can’t break your keyboard.

I’ve yet to have someone explain to me the appeal of Minecraft. One of the other Academy mentors plays the game, and I just don’t get it. It looks terrible and it makes me feel old. Minecraft aside (athough Minecraft is partially responsible), teaching even a two hour academy class is exhausting. I’m convinced that teaching is the hardest job on the planet, and some people choose to do that every day as their career. Can we please treat teachers better, pay them more, and offer them some free quality therapy? I think they deserve it.

Pointing people in the right direction can jumpstart a new career path

BizStream hasn’t hired people straight out of BizStream Academy, but we have hired people who have gone through the Academy and used it as a starting off point for learning more and eventually getting the skills needed to work for a web development company. While we’ve focused the curriculum at a high school level, many adult students have gone through the program looking for a career change. For some, it’s been a success. Eight former students have gone on to find employment in the tech industry, and those are only the ones we know about.

Any company can do this

I keep hearing about this “lack of talent” in tech and I think, why not develop that talent? Sure, we’re not hiring our 14-year-old graduates, and a summer program isn’t going to spit out a senior developer with 8 years of experience, but it’s a start. If some of those 14-year-olds discover from the Academy that they love coding and keep learning, they’re priming themselves for success down the road. And many junior developers, particularly those passionate enough to take classes and code on their own and devour every morsel of knowledge available, eventually become senior developers. Look at your community. Is there an opening for something like this?

If you think this is a fit for your community and organization, remember it’s okay to start small. You don’t need a fancy classroom, you can start with a few students in a conference room. Our first session in 2012 had only 8 students. Take a look at our constantly evolving curriculum or Girl Develop It. Have students go through Codecadmy or Free Code Camp. You’ll be surprised and delighted by how much fun you’ll have, how valuable it is for the students, and how much you’ll learn in the process.

Tags