Ask HN: What should I teach at a boot camp?

2 points by smt88 ↗ HN
I'm considering an offer to teach web-app development at a new boot camp. What concepts should something like that cover? (Length of course is somewhat flexible at the moment.)

I'm certain that "learning how to teach yourself to code" should be the top priority. No one is going to leave a boot camp with amazing skills, so they'll need to know how to get better in their spare time.

Is it realistic to get into unit tests, functional concepts, basic Linux administration, etc.? What have other people's experiences at boot camps been like (good and bad)?

13 comments

[ 3.2 ms ] story [ 46.0 ms ] thread
Focus on helping them to build stuff and answering their own questions. Yes that other stuff is important, but unrealistic in a bootcamp. They need to leave being able to build something.
> Focus on helping them to build stuff

I'm considering two options: 1) they all build the same app, or 2) they each build a different app, and we discuss individual's problems/solutions as a group.

My thinking with #2 is that it'll be more interesting and motivating, and we'll uncover more real-world scenarios that way.

What do you think?

Everyone building a different app is a good idea depending on how far along they are. But early on I would have them make the same or a similar app.
What research have you done on the pedagogy of computing?

What methods does that research suggest might be successful when applied to web programming?

What pedagogical methods might be difficult to apply?

How will likely demographics of the cohort influence pedagogical methods?

What has worked successfully for you when leading learners in the past?

I can't tell if this is sarcastic, so I'll just respond genuinely.

> What research have you done on the pedagogy of computing?

I haven't done research on the pedagogy of computing because I'm not teaching computing. I'm basically being asked to teach someone how to build a birdhouse, but it's marketed as "carpentry boot camp".

As far as Google has told me, there's been very little inquiry into the success or failure of CS education, outside of the attraction and retention of minorities. How do you even quantify a successful CS education? Income? Satisfaction? I wouldn't trust any metric that you could possibly quantify with the information that's reasonably available (grades, salaries, and surveys).

Even if this research were done, it wouldn't have been done specifically about web programming, which is just totally different from "computer science" in a lot of ways (mainly in how much abstraction there is between the programmer and the underlying system).

So this is my first real stab at doing research: asking people on HN how boot camps have gone for them, what has worked, and what hasn't.

The PLT group and particularly Matthias Felleisen have been engaged in computer pedagogy for several decades.

http://www.ccs.neu.edu/home/matthias/

Dr. Chuck is another person with an informed opinion.

http://www.dr-chuck.com/

That said, I wouldn't discount the experience and opinions of professional trainers such as Kathy Sierra or people like Zed 'The Hard Way' Shaw.

https://en.m.wikipedia.org/wiki/Kathy_Sierra

The drop dead serious point is pretending that web programming is a snowflake looks a bit like an excuse for less than rigorous research and a rather dismissive attitude toward professional pedagogical practice.

Of course that's not to suggest that hopping on the boot camp gravy train is not a better business decision the closer the investment in excellence aligns with the absolute minimum requirements of getting paid.

How much concern a teacher has over their students' successes is a matter of taste.

Good luck.

Thanks for the advice and links! I always appreciate when a stranger takes time to help me.

I'm going to check out the Felleisen stuff, but my concern is that it's so much more academic than anything I'll have time to do. The difference between what I'm doing and a college class is that I don't have time to lay groundwork. I can't explain how much of the underlying systems work, even though I think it's really important.

That might seem like I'm taking issue with the concept of a boot camp, but it's actually the opposite. I want to prove, at least to myself, that a boot camp can be truly valuable and provide long-term education value. That means teaching modeling, good habits, and good practices more than teaching how the stack works.

> pretending that web programming is a snowflake looks a bit like an excuse

I don't think I made my point clearly. Beginning web programming (at least in Ruby, Python, PHP, and Node) doesn't require an understanding of many underlying concepts that you'd need to know to write in, say, C. By the time you need to know how the compiler optimizes things, how memory is allocated, or when to fork vs. spawn, you're probably beyond the scope of a boot camp (and hopefully dealing with lots of traffic!)

The core of the problem isn't that I'd be teaching web programming. It's that I have very limited time, and while not much of the concepts are complex, there's too much to cover in even a year of classes.

> dismissive attitude > hopping on the boot camp gravy train > matter of taste

Since I do appreciate your advice, I'll give you some.

You seem to enjoy helping people on HN, just like I do. That's what motivates me to teach: I love helping people, especially to do something I think they'll enjoy (and can make them more financially stable).

On HN especially, I often perceive two motivations for helping: to genuinely share knowledge and experience, or to feel superior. Sometimes these are intermixed a bit, of course.

If your goal is truly to share your knowledge and experience, then you shouldn't taint it with the implied judgments, presumptions, and condescension that I've highlighted above. If your goal is, instead, to feel superior, then I hope this is fulfilling you in whatever way you're not intrinsically fulfilled.

And, on a related note, I'm not going to study anything Zed Shaw says about anything because his online persona is repugnant. It may be my own bias, but I don't trust the suggestions of a teacher who acts like a spiteful child on the internet and takes pleasure in verbally attacking others. I've never heard of a great teacher who behaved that way -- in fact, my great teachers have all been incredibly patient, kind, and magnanimous.

I have far more interest in helping the students than for helping you find excuses not to approach teaching as a profession in itself, and I get the sense if I mentioned Maria Montessori or John Dewey the response would be, "But they weren't teaching web programming at a boot camp."

Learning about pedagogy will help you prepare a better curriculum. That will serve your students better than the alternative.

Don't get me wrong, there's nothing wrong with someone just being in it for the money. But my interest is not in helping people rationalize what is fully legal but ethically slides down slope towards a make-a-buck-scam. And that's what comes to mind when I see "bootcamp" these days to a first approximation.

Sure, I think there are some reasonably good bootcamps. I don't think they correlate with hiring people with no training experience and little interest in developing knowledge in the pedagogical practice. Maybe you will make this one exceed my naive expectations. At least that's my hope.

Zed Shaw has a strong background in the pedagogy of situations where people die from mistakes. He takes teaching seriously in accord with that experience. That leads to some admirable traits and some that are less so. Being rude doesn't make someone wrong, though sometimes it just makes someone a dick.

I now understand the motivation behind your tone, and I think it's very noble. If this boot camp isn't valuable to the students, it would violate my own ethics to do it.

My original question wasn't about how to teach, but about what to teach.

As for the "how", your points are all well taken, and I will give Shaw's work a look after all. It can't hurt.

I come from a family of professional teachers and have no intention of diluting the meaning of teaching. At the same time, the people who join boot camps are obviously looking for something less time-consuming than a full degree program, while still valuable. I know I can provide that (and have taught web languages before).

The what of teaching is the curriculum. Zed Shaw's skill is in developing curricula. That comes from a careful attention to the how, not the what. Hence the multiple curricula. His interview on Hanselminutes is a great place to start: http://hanselminutes.com/407/learning-code-the-hard-way-with...

I'm not suggesting Zed Shaw as the end all and be all. Kathy Sierra's approach is an alternative (though requiring more effort to implement): http://www.objectsbydesign.com/books/KathySierra.html

In the end, the focus shouldn't be on teaching what you know, but the relevant part of what you will know after rigorous preparation. The big question isn't about whether the students will all work on a standardized project or one of their own choosing. The big question is what specific knowledge, skill and ability that project must reflect.

It sounds like you're really trying to ignite in your students a passion for this topic (so that their new passion will drive further inquiry on their part).

To achieve that, I think you should just teach whatever you're really passionate about. Show the students what it's like when you get to do what you love; your genuine interest in whatever-that-topic-is will shine through to the students, and hopefully show them the way.

You're not gonna prepare them for a career in a few weeks; I don't think that's a healthy goal; but you can inspire them! Shoot for that!

That's great advice! Thank you.
I recommend teaching them web app security (CRSF, SQL injection, etc).