050 RR Hungry Academy with Jeff Casimir

by Charles Max Wood on April 13, 2012

Panel

Discussion

  • Steve Klabnik
  • Experts frequently forget the novice perspective
  • Pragmatic Thinking and Learning
  • the Dreyfus Model
  • Teaching is a skill
  • Teaching is about empathy
  • “Why don’t you move your legs faster?!”
  • Open yourself up to Feedback
  • Live teaching can (to a certain extent) never be replaced
  • A book cannot anticipate every learning direction
  • Jumpstart Lab
  • Hungry Academy
  • You can teach someone everything they’d learn in a decent Computer Science program in 6 months.
  • Computer Science should prepare you for what you’ll specialize in when you get out into the workforce.
  • Assembler
  • Pareto’s Principle
  • Matt Yoho
  • CodeNow
  • Hungry Academy application process
  • LSAT
  • How do people respond to coaching?
  • The class started March 6
  • They’re not working on commercial projects.
  • Students get paid to be at Hungry Academy
  • 16 of 24 were identified as non-developers
  • 6 of 24 have a traditional Computer Science background
  • Be deliberate about how you structure your teams
  • The country is transitioning to an information economy
  • What does it take to get people from the low income areas to something like Hungry Academy?
  • We need an ignition for minorities to get into programming
  • Maslow’s Hierarchy
  • RailsBridge
  • A small group over a long time rather than a large group over a short time.
  • LAYC
  • LivingSocial
  • CodeAcademy
  • HackerSchool
  • DevBootcamp
  • Ruby
  • Ruby on Rails
  • Donors Choose
  • BigData
  • iPad
  • Javascript frontends
  • What are the prerequisites for Hungry Academy?
    • You have to have drive
  • Diversity
  • DRb

Picks

Transcript

CHUCK: Does it involve lightning and a brain transplant?

*laughter*

JAMES: Yes!

JOSH: No. But it does involve a fight ***.

CHUCK: [This podcast is sponsored by New Relic.  To track and optimize your application’s performance, to go rubygogues.com/newrelic]

[This podcast is also sponsored by railsthemes.com. Have an app your mother could love? Check our railstheme.com. They’re also giving out some pretty cool swag at RailsConf. So find them, get some and thank them for sponsoring Ruby Rogues.]

Hey everybody and welcome Episode 50 of the Ruby Rogue podcast. That’s right, we’ve done 50 of this. This week on our panel, we have Avdi Grimm.

AVDI: Hello, hello.

CHUCK: We also have James Edward Gray.

JAMES: Hey everybody.

CHUCK: Josh Susser.

JOSH: Good morning.

CHUCK: And I’m Charles Max Wood from teachmethecode.com. We also have a guest Rogue, that’s Jeff Casimir.

JEFF: Hello.

CHUCK: Jeff do you want to introduce yourself really quickly for the people who don’t know who you are?

JEFF: Sure, my name is Jeff Casimir. I’m from DC. Right now I‘m the lead instructor of Hungry Academy. I also run a small training company called Jumpstart Lab. Run around the word teaching Ruby on Rails classes.

CHUCK: Cool.

JAMES: You don’t take a plane?

JEFF: Ah you know, occasionally, but you got to stay in shape so.

CHUCK: I was talking to Steve Klabnik who’s also been on the show incidentally and I didn’t know that he is working for you so…

JEFF: Yeah, Steve is working on teaching specially, co-teaching some of the larger classes, so it’s really nice to have two teachers in the room. Get a little bit more of a dialogue. Also, I love that Steve knows a lot more than I do about pretty much everything. So when I get some really hard question I can just defer to Steve and then he has to answer.

CHUCK: So you don’t have to be an expert in order to teach?

JEFF: I think it’s actually a disadvantage to be a true expert to teach because it’s very easy to forget the novice perspective. And that’s really where I think where you see most programmers go wrong when try and teach somebody to program. Frequently, what I see in blog post and so forth, people get the idea they’re going to show someone how to program. They know that setting up the environment for instance is a big pain in the ass. And so they will walk detail by detail through setting up the environment and then go “Okay now do programming” and you’re like “Uuuuhhh?”.

JAMES: Hey this is cool. We are only like 10 seconds in and this is topic I love and then…

CHUCK: James, just go do programming.

JAMES: You’re right, go do programming. There’s actually a really good coverage on this in Pragmatic Thinking and Learning.

CHUCK: Mm-hmm.

JAMES: The Andy Hunt book. He talks about that Dreyfus Model of Skill Acquisition and it is actually a reason that experts make bad teachers and that’s because they’re so far ahead of you on the Dreyfus Model right and ideally, you want to learn from some someone who’s just one or two steps above you on the Dreyfus Model because…

JOSH: That’s one good option James. We’ll finish what you’re going to say.

JAMES: Oh I was going to say is that the reasoning given in the book is that one or two levels above you, they’re still close enough to the problems you’re encountering that they, they had those fairly recently and they can remember what that’s like and frame things in those terms, but they are have the level or two above you so they can, you know, help you up the ladder basically.

JOSH: I think that’s a common thing and that people who are closer to you on that scale, you know, have a natural connection to your say, perspective and state of mind so they can access that more easily. But I think like many things, being an instructor teaching stuff is a skill that can be learned and you can learn how to communicate with people who are not as advanced as you are pretty effectively. And some of the best co-instructors that I had in college where they are absolute masters of their field, but you know, I got to learn computer graphics from James Blinn, who, you know, built up the voyager formulations way back when and he was the top of this field, but he was also, an incredibly talented instructor and was able to describe things and ways that were accessible to, you know, college freshman so.

JEFF: I think what you’re saying is that, the skill of teaching is really about empathy and an experienced teacher like that even if they do have a wide gap between their skill level and the skill of their teaching can adequately empathize kind of down to their level and their understanding. The trouble is that when you only have content expertise and don’t have the experience of teaching or in this case, empathizing deeply skill, that is hard to remember. My favorite analogy is I know on a geek podcast, it’s probably bad to make a sports analogy, but a friend of mine is a great runner and he said when he was in middle school he didn’t understand like when he would always win a race. He would look at the other kids and say like “Why don’t you just move your legs faster”, you know and that’s, essentially I think, the expert problem of like you look at people you’re like “what, just do programming”, you know, obviously.

JAMES: I’ll ask you guys to explain that sport to me later.

CHUCK: Yeah, one thing that I’ve seen here is some along the line like Josh was saying is that a lot of the people even in our community who are kind of out there with some expertise, you know.  I’m going to use an example of Peter Cooper, you know. He does his Ruby Reloaded and he’s done a quite a bit of research on Ruby and the language and stuff, but he opens himself up to feedback and is able to then figure what it is that people aren’t getting out of his course that they should be. In that sense, then he’s able to make sure that he covers in enough depth and with enough clarity that make sure that people are getting it because, he may not always know exactly what people want to learn and he may not always know how to explain that to them, but if they’re giving him feedback, “I did not quite understand this” or “I wanted to hear more about that” then he’s able to actually tailor the course so that it works for the students that are coming in. I think that’s really important is to get that, that level of feedback. So it’s not just a one-way communication. You’re disseminating knowledge from your brain to this other brains, but getting it back so that you can learn to be a better communicator as you’re sharing the knowledge.

JAMES: Right.

JEFF: Yeah, I think that’s true and its part of why, I think the life teaching can, (to a certain extent) never be replaced. You know what Peter is doing with his class, you know, where it’s online or what we’re doing here with our in-person classes, that ability to react to feedback on the fly is essential for really kind of optimizing the learning process. A book cannot anticipate all the directions that different learners are going to struggle. The same with podcast.  The same with, you know, videos, online and so forth. You just can’t differentiate when you have fixed content.

CHUCK: All right, I’ll quit, see you guys.

JAMES: So this is two shares in a row where we talk about a how it’s all about common communication, I’m not going to stop listening to the show.

JOSH: I don’t know people seem to like the last one.

CHUCK: Yeah.

JAMES: Oh yeah, good point. All right, so Jeff tell us, before we get in to the who Hungry Academy things, so you did training to your Jumpstart Labs…

JEFF: Yeah.

JAMES: And did you do mostly for companies or what?

JEFF: Yeah, I should back way up. I started teaching normal public school, so I taught middle school technology and I taught high school Computer Science here in DC through Teach For America.

CHUCK: Oh, he’s way braver than I thought.

JEFF: It was probably the best years of my life and taught high school Computer Science using Ruby. First using Java, they hated it. I hated it then we flipped over to using Ruby. And that’s where I really learned a lot more about writing and teaching Ruby there. Then was in school administration for a little while, started Jumpstart Lab in 2009 and yes, I started doing – my vision originally was to teach public classes here in DC. That we have a lot of nonprofits and nongovernmental organizations and so forth that I thought I would teach them how to program and I’m not sure if any of you have ever seen a non-profit, but they’re not exactly the most inefficiently run organizations. Mostly because they don’t have technologic expertise and they don’t have the money to buy products.

So I thought we would teach how to program. It turned out that was very hard and getting people to come and be interested in it. So then I started branching out, teaching companies, travelling around.  Usually going in doing somewhere from like three to five days of, the most popular of course if intro Rails. Everybody wants to write Rails applications so we’d go in and do – I would kind of trick people a little bit and do just pure Ruby for a day or two. I think it’s a serious mistake to jump straight into Rails and so we do pure Ruby for about two days and then Rails for three days and send them on their way. A lot of them unfortunately would start billing their clients the next Monday, building Rails application.

JAMES: Wow.

CHUCK: Awesome.

JAMES: That is great.

JEFF: That’s America.

CHUCK: They didn’t start charging while they’re in the class?

JEFF: They probably did, you know. It’s probably preparation and professional development.

CHUCK: Oh. Geez.

JEFF: Yeah.

JAMES: That’s instantly great. So how did the Hungry Academy thing come about?

JEFF: Sure, so Chad Fowler and I, Chad used to be my competition when he was teaching Ruby classes and we’ve known each other for a couple of years. We were having a conversation about this idea that if we had good people that didn’t know anything about programming, how much could you teach them in six months? We both agree that we thought we couldn’t teach them everything about Computer Science. Obviously that’s ridiculous, and we couldn’t teach them everything you might learn in a good Computer Science program. But we thought we could teach them everything that you should learn in a pretty good program. That you could come out and be ready for a career in software development under the understanding that career and software  development means constant learning. That you have enough of a foundation after the program to be an effective developer and to continue learning. Continue maybe specializing in different areas and so forth.

So that conversation happened about September and then I had, I was at Nordic Ruby out in Finland and then I have a very long plane ride and then I just sat there in the chair. I couldn’t sleep. I just thought about the idea for about six hours and then I just started writing and writing and writing, sent Chad the budget and he said, “Okay let’s do it” and here we are.

CHUCK: That’s awesome. That’s actually really cool. I’ve always wondered that because…I don’t know how many of you guys have a degree in Computer Science or something related to that, but…

JOSH: With that, there are actually people who have degrees with that.

CHUCK: I don’t have a Computer Science. I have a Computer Engineering degree…

JEFF: Yeah.

CHUCK: Which is similar in some ways and not so similar to another, but you know, you wind up. You do, you wind up taking a lot of classes and a lot of things, don’t necessarily apply. And the other thing is I think is interesting when you’re talking about like basic Computer Science or programming understanding, I mean you get most of that within your first couple of years of school, but then when you’re dealing with things, as an upper class, you’re taking lot of breath, where you’re getting into some depth in some of this topics you may or may not use. And the other thing is that they don’t teach you any of the skills that come with working in a team.

I remember I took one class and it was programming, what was it? It was some kind of how companies manage their programming projects. We spent, I think, half the semester on Waterfall and they didn’t like say Waterfall isn’t the way to do it. They just kind of said, “This is the way that most companies do it so you need to know this”. Then we spent a week or two on Agile and it was just like yeah there are these people out there that do it this way. And you know, I got out into the real world and it’s like, “Oh my gosh.” Most of the companies I work at where actually, they use the Ad Hoc method to manage their projects and stuff like that. So it would be pretty interesting to see, a program like this. It’s focused specifically on these particular skills in just giving people to the point where it’s like okay, you’re hireable, you’re…you know, you’re decent enough programmer to go out and get a job somewhere.

JEFF: Yeah, I think part of the challenge of Computer Science education, in my opinion is that we need to think of it a little bit more like medical school where a doctor, all doctors had certain fundamental knowledge that they share and understand but then as soon as you get out, you’re going to start specializing and you’re going to become a radiologist. You’re going to become, you know, a surgeon. You’re going to become a hand doctor, etcetera. In Computer Science is really the same way, like there’s a lot of important knowledge, you know about assembly and machine language and 1’s and 0’s and so forth that you need for some segments of Computer Science. It’s unfortunate that a lot of time in the conversation I think people disrespect certain parts of undergrad thing like, “Oh why did I learn about, you know, this obscure languages that I’ll never use”. Well, they’re valuable to some specialization, just not the one you ended up in.

CHUCK: Right.

JEFF: And if we can kind of specialize our approach, I think we can make everybody happier kind of achieve a better end.

CHUCK: Yeah.

JAMES: Yeah, I think, I think that’s kind of an important actually where you just said, like I mean Assembler, you know, knowing Assembler I mean, doesn’t that make me a better programmer sure. I’m sure it does to some degree, you know, just because I’d been exposed to that and stuff like that, you know. But also, in my many years on the job, other than outside of programming contest, I never literally had to write any Assembler, you know. It just doesn’t the really apply to the kind of programming I do, you know, so…

CHUCK: Yeah, but at time same time I mean where I had to write Assembler, you know. We wrote interrupt queues and all kinds of stuff and you know. You get down to the op codes and things on the processor. We also, took an operating system class and so we had to write like the paging algorithms and things like that so that you understand memory management in your machine, just stuff like that. And yeah, it’s not stuff that I’ve used directly, but understanding it at that deep level what’s going on has really helped me kind of think about okay, well, if this paging crop out its going to slow down and it  has too translate it down to an op code eventually. So, you know, I have kind of have an idea of what’s going on at the basic level and so that helps me kind of think about how the machine consumes my code and then I can move along. So there is, I think, application for most of the stuff that you do. It just may not be what you’re directly coding in.

JAMES: Yeah.

JEFF: Right and I think you get in to like Pareto’s Principle situation, you know, like the 80/20 Rule of like that experience, you know, James is having that assembly background. It’s going to influence him positively but is it going to influence him positively enough relative to the effort put in…

CHUCK: Right.

JEFF: ..to gaining the experience in the first place in the job and the specialization he is chosen? No.

CHUCK: Right.

JEFF: Right, if you’re choosing to build video cards then yes.

CHUCK: Yup.

JAMES: Operating systems or something like that right and I’ve…you know, I trained plenty of people that don’t have the Assembler background and I find like as far as memory management and stuff, yeah I’m sure it does help to understand that kind of thing better, but at the same time, you know, especially if you’re a web developer or something, I can write a type loop in Ruby and allocate some massive arrays inside of it and I can show how memory management gone wrong real fast, you know. It’s something you don’t understand. Okay, think about this. This would turn around and every single time, it makes 10,000 objects, you know, and then you know.

CHUCK: This is your Clojure. This is your Clojure, you’re on drugs, any question?

JAMES: Okay.

JOSH: Yeah okay we covered this ground  a bit on the teaching programming or teaching Ruby episode with my about, you know, all the different things that you can teach people that aren’t Ruby that helped their Ruby.

CHUCK: Yeah.

JOSH: You know, so yeah, I think we can still think the same thing.

JAMES: Okay, so getting back topic as Josh cracks the whip. So Jeff, we know about the experiment or you know the discussion. The experimental thought…

JEFF: Mm-hmm.

JAMES: What lead to Hungry Academy, but tell us what it is because it’s kind of a neat thing.

JEFF: Sure. So Hungry Academy, the design of it was let’s get 24 people who we think have the right character and the right drive and put them in an intense classroom-style environment. Give them all the support, give them all the resources and which turned out to be five months and see if at the end they can be a competent developers. So they worked with me and Matt Yoho. We have a mixed of class time kind of full group instructions style. They work in pair and team projects. They do community work where they’re working with me with the organization called CodeNow to teach high school kids about programming.

They’re doing open source work. They’re doing presentations and just trying to build in them all the skills that I think you need to be like, not just a good Ruby programmer, but a significant important part of the Ruby community. I thought Chad in his kind of opening address to them was really kind of poignant, I thought that his expectations of them were not to just be good enough to not get fired, but to be some of the leadership of the next 10 years. Like his phrase was, “I want to read your books”, you know. “I want to be inspired by your work” and so that’s what we’re trying to do.

JAMES: So how did you find the people that you’re teaching?

JEFF: Yeah, we, Hacker News, I have to admit as a big source. We put up the article. We saw about 30,000 visitors through that day or two days. I did a lot of outreach. I have kind of a diversity agenda, so I did a lot of outreach particularly to women in Engineering and programming groups and solicited applications. All together we had several hundred applications resulted in about four percent acceptance rate and we’re pretty satisfied now. I think that now with the program actually exists and some more people know about it, I’m somewhat scared about the next round of applications what the numbers are going to be like.

AVDI: How did you decide on who goes in? Who gets in?

JEFF: So we started the legal department just about shit their pants or pee their pants on this boat. It was really important to me. I wanted to do a video application and if you’ve ever been involved with HR, the idea of having a video application is the about the worst idea in HR departments ever heard of because you’re just opening yourself to all kinds of discrimination, accusations. I had faith that we could evaluate the videos objectively. Rate them on criteria and when it came down to it, I felt that it was necessary because what we’re looking for was personality, not credentials.

And what was on the resume really didn’t entail me very much of anything. I wanted to know about the people and how did they… just how did they feel, you now. Like how, what kind of drive did they show. How clearly could they communicate ideas. How could they take a question and kind of run with it and just be the kind of people that we want to work with. So that was really critical if they pass that phase, they went into a phone interview. They passed the phone interview. They came in for the in-person interview. LivingSocial as model with where you do three interviews.

One of the most interesting parts maybe to you all is we had to figure out the substitution for what’s normally the coding exercise. Normally LivingSocial gives you a little half hour or one hour programming exercise. Not one of this super brain teaser things, but just like let’s write some code together and make sure that you more or less know what you say, you know. That was challenging for us because we’re evaluating people who don’t know how to program. How are we going to asked them to program? I thought about various options and then isolated who I thought had the same problem and how they address it which is law schools.  The law schools are trying to assess your skills for understanding parsing and working with the law without actually knowing anything about the law.

So let’s take an exercise from the LSAT, logical exercise from the LSAT and we’ll have that be your programming challenge. I was also very interested to see how people response to coaching because one of the things that I think is obscured about most programming interviews is like, go write a crossword puzzle generator on the white board, right as this has been discussed online Number one, writing on the white board is stupid. Number two, that’s just now how we work. So instead we sat down with them, me, Matt or one of the other developers sat down with them and really paired on the logic problem where we were trying to force them to make the big logical leaps themselves, but still helping them along the way. Helping answer their questions and helping pointing places that we thought their work had weaknesses or mistakes. So the real question was not, can they get all the answers right, but how do they approach problems. How do they respond to feedback from a teammate or a mentor and so forth. I was really satisfied without turnout.

CHUCK: Nice, so when did the class actually start because it sounds like you’ve already gotten going?

JEFF: Yeah, we started March 5th so they’re in week six now, I believe.

JAMES: So how’s it going so far? I’m sure all your students will listen to this.

JOSH: Are they billing clients yet? I mean.

JEFF: They’re not billing clients. Something that was very important to me and this is actually that other people feel strongly the other way so we apprentice program. They tell as a feature that they are billing clients right away for their work. It was very important to me that this be a kind of pure academic environment and that these people while they’re learning have no business responsibility and conversely deliver no value whatsoever to the business because I want to remove that pressure and say let’s just focus on developing you and getting you ready and then only when we say you’re ready would we put you on a project. Because what this say to your team, I think, to put someone on a project or to bill a client that this person is not good. Like they don’t know what they’re doing yet, why we…why would we have them work on production code. It just doesn’t make sense to me.

CHUCK: Oh, common that’s the guy I want to pay.

JOSH: So we did this with new hires at Pivotal a lot where the first couple of weeks of them being on, you know, being Pivot, we consider green and you know, clients didn’t get billed for their time, but putting them on an actual client project and having them, pair with experienced developers and come up to speed quickly was the best way to get them going.

JEFF: Yeah, I think it can definitely have value as long as you kind of assuming that whatever they do you’re going to like…you’re not expecting it to necessarily deliver value. It’s also a difference; I think when you have a few apprentices versus a real cohort. When you only have two people, four people. If you just have them working on kind of academic projects, it’s very artificial, right? But with this group we have 24 people. When they’re building a project, their whole world is also building the project like it’s very real to them because all the other teams are building the same thing. So, there’s kind of this, you know, friendly competition to it. It’s not just like, “Oh, I’m going to build this thing and I’m going to throw it away”. Its where actually like creating ideas. We’re trying to make it as good as possible and so we can kind of represent our group well.

CHUCK: So people have to pay or are they getting paid to be there or how does that work?

JEFF: They’re getting paid quite a bit, I have to say. So they are LivingSocial employees. They have a contract that goes through the end of the course and then the expectation presuming that they meet their learning goals is that they would join the LivingSocial engineering team at that point.

CHUCK: Right but are they, is there stipulation in that contract for that for that or?

JEFF: As far as the job afterwards?

CHUCK: Yeah.

JEFF: It’s not guaranteed. So that was something very important to the legal department. The hope is that 24 out of 24 are ready, but we didn’t want it to be a situation where you get in and then you can just kind of hang out and then you get this sweet job at the end, you know.

CHUCK: Right.

JEFF: You have to earn it.

CHUCK: Right and on the flip side, you know, can they go to Hungry Academy and they go work for Groupon?

JEFF: Oooh, that would hurt, that would hurt. The agreement is for them to stick around 18 months after they finished the program.

CHUCK: Okay.

JEFF: Which is not very long, I don’t think, given the investment that’s being put into them.

JOSH: I don’t know, in internet years that’s like a decade.

CHUCK: Yeah.

JEFF: Josh, we’d already had four job during that 18 months but…

JOSH: And three of them at the same time.

CHUCK: Is that triplets?

AVDI: What is the…can you talk a little bit, like the background of the people that you found as far as like, I mean. What do they already have educationally, where are they from and stuff like that?

JEFF: Sure, 16 out of the 24 identified as a non-developers so they did not consider themselves to have any developer background of significance. Of the remaining 8, about 6 or so have like a traditional Computer Science background so they were mostly Java programmers. I think maybe one Microsoft programmer and then among the other 16. We’ve got architects, MBAs, people that were in finance. Just kind of all over the map. A neuroscientist, you name it.

JAMES: That is so awesome. Have you seen difference so far in the first six weeks from the people that are kind of developer from the people that aren’t kind of developer?

JEFF: Sure, I mean the developer people of course – it was very important, we spent a lot of time doing team building at the frontend, which people everyone hates, right. Everyone hates going into the room and be like okay we’re going come out all being friends whatever. But I think it really paid off in breaking down those barriers of not having the like, “Oh we’re the 16 dumb ones and you’re the eight who know everything”. I was trying to take a lot of a model from Teach For America where we were a core together and really relied on each other. It was not a non-competitive environment and we want the same here in with Hungry Academy. That’s why it’s not like, “Oh there’s 18 jobs for the 24 of you. Like, go slit each other’s throats”.  Its…

CHUCK: “The Hunger Games”.

JEFF: Yeah. It’s not the Hunger Games. We want everyone to succeed. So the difference there, I think have been erased pretty quickly both socially and in programming. The people have been able to pick it up shocking fast that I have to say. It sounds cheesy for me to say this, but I’m blown away at the progress they’ve made at this point. You know coming into the project I could not say with a 100% certainty that any of them would be ready after five months and now I can definitely say some of them, I think, all of them will be ready.

CHUCK: Cool.

JAMES: So that’s interesting. You chose a mix of people that had, you know, at least some idea of what the developer did and stuff and then some didn’t, was that like a purposeful choice? Like did you want to have it where some people can help guide in those ideas or what?

JEFF: Yeah, you know, I think, there was really a common question early on, people would say how can you possibly teach some people who have literally never written an instruction before and other people who have Computer Science degree in the same room? And it’s like well, okay let me, flip it on you. How can you possibly build a product with some people who have been building Rails applications for five years and some people who just started a month ago? How could that possibly work?

Oh well, you divide up work. You find ways for people to cooperate. You setup these mentoring relationships, you know. You’ll be purposeful about the social side and that kind of people engineering and then actually works out fabulously. Having everyone… it’s just this artificial idea that you could never have everyone the same. It just doesn’t happen. Even if they somehow started at the same point, they would all learn at different speeds anyway and then you’d be back to the same heterogeneous situation. So instead we just plan for that from the start, built in on purpose and said okay, everything is going to be structured to accommodate people at different learning level and that’s just, it’s not like revolutionary ideas that’s what any good fourth grade teacher would be doing too. I’m just teaching older people.

CHUCK: Oh common, we know that the public school system works where everybody start in the same level and finish at the same level, right?

JEFF: Yeah, no, it doesn’t. It doesn’t quite work that way.

AVDI: I have actually have a question for you based on partly on your public school experience. Clearly so Hungry Academy; you’re taking a group of people that are kind of self-starters. You know, they’re motivated to do the whole interview process and the video and everything and some of them are already professionals in various fields. Something I think about a lot is, you know, the country is transitioning to an information economy blah, blah, blah and I think about what, you know, what is it take because, you know, to take people from, you know the ghetto and the trailer park..

JEFF: Mm-hmm.

AVDI: That clearly are not getting into the Computer Science programs right now? Is it even possible? What would it take to get people from there up to the point of being in something like Hungry Academy? Do you have any insight to that?

JEFF: Yes. I mean it’s a hard problem, what it reminds me of is this book whose title is skipping me at the moment, but it talks about “skills not being born, they’re learned.” One of the first ways that you build skill is through the ignition, which is the belief that you can build the skill. I think the challenge right now is that programmers relatively accurately are, represented at 20s, early 30s white man and if that’s not you, there isn’t an ignition that says like I could be a programmer. I could be that person. There are also tons of logistical challenges. One of the biggest that I saw from education was that giving technology is very sexy. Like you can get foundations to put a 100 computers in a school.

Hiring people to maintain those machines and to buy all the replacement parts that go wrong. That’s not as attractive and so what I would commonly see is I would go to schools. I would to my friend’s school for instance and see the computer at lab and it’s like, oh yeah two thirds in the machines “don’t work” right. And so you go and look at them, it’s like oh loose power plug, oh the PS2 pins are banned. Let me get a mechanical pencil and fix them. And that’s the first, like the fundamental level, somebody brought up education theory before through Maslow’s hierarchy at you which is about kind of this basic needs and then your intermediate needs until eventually you can self-actualize to become the person you want to be. And right now for those people to become technologist we’re not meeting their basic needs. They don’t have the fundamentals generally speaking to do it on their own. Like they don’t have access to technology, they don’t have access to the internet. They might have phones, but not all to do programming.

CHUCK: Right. So one thing that I kind of take this maybe to a different level and that is I’ve been talking to several people about putting together maybe a little camp or something out here for, teenage girls or younger preteen girls, you know and kind of get them interested at this point so that they can move into programming, and maybe reaching to minorities. So there aren’t as many minority people out here in Utah as there are in other areas of the country.

JEFF: Sure

CHUCK: But you know, how do we setup and structure a program so that they can get that ignition.

JEFF: Yeah, I think the ignition is what we’re currently doing better at, I think like whether you look at RailsBridge or CodeNow that I’m working with, so for that we’re doing better at showing people like it’s not that scary. You could possibility do it, but education is not a problem that you can solve in a weekend or in two weeks.

CHUCK: Right.

JEFF: And if we want to really make a difference we have to be looking at this, you know, three year commitment, five year, eighth year commitment, that’s how you’re going to change lives. And a weekend no matter what, you could have the greatest teacher give them computers whatever, whatever, you’re going to make incremental change at best and possibly, possibly inspire some of them, but if you want to make systemic change, you’re talking about systemic commitment which a lot harder.

CHUCK: So what you’re saying is because, I mean there’s no way for me to get in to the schools, at least I don’t believe so, but you know, setting some up that, you know, recurs that the kids can come back to and you know, be involved in on a regular basis and get feedback and things like that or…

JEFF: Exactly, yeah. I would say, I would encourage people to get involved with a small group over a long time rather than a large group in a short time. So if ,as an adult, you always wanted to do things with kids with other adults. Pro-tip number one, don’t be the only adult in the room. So you get together a couple of people who are interested and then solicit. There are probably existing organizations in your area. In DC we have several. One of the best if the LAYC and they organize after school programs for kids and if someone called them and said, “Hey I would like to”, you know, “work some kids every Wednesday evening for an hour on programming”. They would do back flips to have you in and facilitate everything and try and make as easy and as possible. They, just like you can’t hire programmers, how could they possibly pay anyone to teach programming? They just can’t. There’s no labour out there. So you don’t have to do it on your own and I think, it does, I mean you have to be serious when you’re talking about kids. Like you’re talking about legal complexities.

CHUCK: Yeah.

JEFF: Liabilities and all that and it much more reasonable to step in where someone else can take care of a lot of that for you. Doing kids are hard administratively like with CodeNow, we’re always having kids calling from the Metro and they’re like, “Oh I lost my Metro card and I’m stuck at Metro Center”. You’re like okay someone is going to go and meet at you at Metro Center and give you an extra Metro card, you know. It’s hard. They just don’t show up with their computers ready to learn every day.

CHUCK: Right.

JAMES: So that’s interesting and that when you created Hungry Academy, I was reading the materials online when you guys started posting it to the internet and stuff end that was… part of the built in goal really was almost to change the world right?

JEFF: Yeah and to – I think you know change 24 worlds at the very least like these people’s lives. That’s why I got excited about the project because I felt with my teaching with Jumpstart Lab like teaching our normal three or five day classes, I got away from really feeling like I was having an impact on someone’s life. I love that about high school. I love that about teaching middle school and it’s awesome to now be back in that role. To know that what we’ve built even after just six weeks, like I know that these 24 people are forever on a different track than they were back in February.

JOSH: Okay, so this all sounds lovely. But I want to take about the elephant in the room…

JEFF: Okay.

JOSH: And that’s, you know, everybody who knows about LivingSocial and these Rails developers knows it. LivingSocial is like a blue whale swimming through an ocean full of Krill Rails developers or Rail’s developer Krill and they’re just like eating up all the Rails developers. And they’ve probably depleted the ocean now. I look at Hungry Academy and I said okay, LivingSocial needs to create more developers to be able to hire them.

JEFF: Right.

JOSH: So I love everything you said about, you know, changing people’s lives and giving people access to education they couldn’t get before and having them be supported in it and get paid for it. But, it seems like the fundamental motivation for this is, you got a big company and you can’t hire enough developers to, you know, build the products they want to build so let’s create them.

JEFF: Absolutely, absolutely, and then you know, that is a 100% the directive from top down. This is about scaling the engineering department. Now that being said, I think that we know the kind of reality of technology business is that people over their career going to move companies. There is not an expectation that people are going to stay here and LivingSocial for 20 years, you know. Who knows how long LivingSocial will be around as a company? But, what you find is that people that came in, I think, and have the right skills, have the right understandings, know how to work in teams,  they all just keep recombining in different companies. So even if this team doesn’t stay together for 20 years, I’m confident that for the rest of their career. They will know each other and they will like each other and they’ll continue to build teams together.

CHUCK: So one other thing that I’m really kind of curious about is, I don’t think there’s a big company out here, but I have a lot of smaller companies approached me about, you know, setting up some kind of training program where I could, I don’t know what the right term is. I kind of want to say retrofit, but I know that’s not what I’m looking for, you know, developers in other languages and help them, you know transition the Ruby so that they are, hireable or prepared to work for some of the companies out here or to bring in non-developers and help them come up to speed. I supposed its easier if you have like one main benefactor in LivingSocial, but out here, how would you go about structuring something like this or do you think it’s just, you know not feasible?

JEFF: Yeah, I think there are a lot of people are trying out different models right now. You know you look at CodeAcademy in Chicago that’s doing great things where people come on their own, pay their own tuition and its a 12-week program to kind of get them up to speed or along the right path at least. And then you see, you know, some that are more independent like the HackerSchool and in New York or DevBootcamp. DevBootcamp and CodeAcademy have relatively similar models. DevBootcamp being out in San Francisco. We haven’t seen anybody try kind of a fractionalized Hungry Academy yet. I think we might pursue that down the road, but I really, I’m not sure, part of the magic here is that it is one team.

CHUCK: Yeah.

JEFF: And I worry about if you had 24 people that are two from this company and three from that company and six from that company, that it couldn’t replicate the experience. Now could it be 85% as good?  Maybe, could be as 100 % as good, no.

CHUCK: Okay.

JAMES: You think part of the success here is actually having LivingSocial providing the resources? Meaning that you have the ability to create this almost ideal environment and you know, create the agenda because you have enough backing to do that, right?

JEFF: Exactly, exactly and then in the last couple, kind of bonus features or things are being, you know, our first week, we’re talking about this idea fractal design and then I said like, “Oh Ben Scofield, would you mind to come in and give in your fractal design and talk to them”. He comes down from upstairs and gives his hour long talk or last week we had a session with Nick Seiger and you know, just being able to pull in, sorry as Josh said, like all the Krill that have been swallowed. So fortunate to be surrounded by, I think that’s been really amazing for the learners that they really, really appreciate it.

JAMES: It’s interesting. So where do you see Hungry Academy going in the future? Like what kind of things do you wanted to get them to do as they \ their skill rises and stuff like that?

JEFF: During the program or after the program?

JAMES: Sure, both.

JEFF: Yeah, what we’re doing right now is we spent a month doing pure Ruby. They first touched Rails last week and that was very important to me and I think something is very different from most other programs. Now they’re getting into Rails and we’re really through in the deep end of you’ve got to pair and that go build this relatively complex online shopping platform in three weeks. So they are hammering through that now. We’re going to then start diversifying, starting to, you know. There’s countless ideas how about Ruby and Rails that there is not a linear complexity that you just march down and like I do the beginner thing and that I do the intermediate thing and then I do the advanced thing.

You really – everyone need the same fundamentals and then as soon as you start to hit the intermediate kind of difficulty, it all just fans out. There isn’t one thing that, you know, it’s not like so difficult, you just keep pressing forward. It’s just you pick these different areas of interest. So we’re going to spend two week project working on scaling and like different techniques of scaling whatever you talk about. Cashing or you talk about the offside and all that. Of course you got to get in to JavaScript frontends and then involving JavaScript from the client and how to go there, doing more with design. We’re reaching now with Donors Choose up in New York. We’re doing a project with them whether they’re going to build applications using Donors Choose API that I’m excited about, kind of do some community outreach there. They’re going to build applications both consuming and providing APIs and just trying and kind of do everything that they need for their job. Just keep pushing hard.

JAMES: And then when they graduate the academy, what kind of things in your, you know, in your perfect vision, what would you like to see them doing?

JEFF: Yeah, I would guess that about half of them are probably going to specialize, so here because LivingSocial engineering team is so large, you can choose to say, I want to work just on BigData and so I expect they are actually three or four kind of my eye on that, I think are going to go towards the data team and just be gone pure backend business metrics, etcetera. On the completely other end of the spectrum, a couple that I think are really well-suited for frontend development which is kind of the inner phase here between the art department and the dev team. Then I would guess that about 16 of them or so will just be generalist, expected to be good at everything. Joining the mobile team, joining the merchant services team that’s building a lot of cool tools like getting involved with iPad, mobile work that way, JavaScript frontends, etcetera. So things are really open, I would say, for them.

CHUCK: Cool. We’re right in the picks, does anyone have any other questions? Before we do the picks? No?.

JOSH: I’d have one quick question and that’s.

JEFF: Give me a hard question, Josh.

JOSH: What are the perquisites for getting into the Hungry Academy? You said that there’s people with no program and background whatsoever, what do you need to do? What? You know, do you need to have a college education or a high school education or you know, may able to type? I mean what do you need to do to get in?

JEFF: Typing is nice to have. We have, one of young men dropped out to college to come here, so that’s definitely not a requirement. What it takes, I think is ability to demonstrate; number one, the right attitude. That attitude is primarily about your drive like how hard are you going to push yourself because you can’t succeed as a program by just being me push them all the time. It has to be like if I put you, if you have the resources that you can take advantage of them and you can just work you ass off.

Second is having the ability to communicate clearly and kind of deal with this people issues. Like building software, you now, I think Ruby people know this, but most of the world doesn’t. The building software is not sitting in a cube packing on the keyboard like it is much more about dealing with people about communicating requirement about giving up work about how—.

JOSH: +1! +1!

*laughter*

JEFF: If people can demonstrate those skills then I’m happy to have them.

CHUCK: Yeah speaking of those skills, if you don’t think they’re important, I have 49+ hours of content that you should probably go listen to. So we need to take quite a bit about a lot of these things.

JAMES: I have a couple of quick questions, these people all moved to DC for the duration or?

JEFF: They did, they did, so the stated expectation is that jobs would be here in DC which is LivingSocial headquarters. There are likely some opportunities in other LivingSocial offices including Seattle, Portland, the UK office, etcetera.

JAMES: So then one more question I found out is that you said you’re really pushing a diversity agenda when you built this so how to come out, what are the demographics?

JEFF: Yeah, I can speak about the gender demographics. We have 4 women and 20 men which was kind of lower end acceptable goal. I think to the outside that doesn’t sound very impressive, but I think you know, through the long ongoing conversation about gender in the Ruby community that the average I think is much more around like one, two, three percent, so that’s decent showing to start. I think once we have them as kind of the ignition points and we can show off like, “Look this is awesome.”, like the young lady who came from customer services and had no programming background whatsoever like she did it, you can too. I expect to see those numbers increase.

CHUCK: Cool.

JAMES: That’s awesome.

JOSH: That’s great, that’s wonderful.

CHUCK: All right. Let’s get in to the picks. James, why don’t you start this off?

JAMES: I actually let Jeff go before me because I know he was going to pick something I was going to pick.

CHUCK: Jeff why don’t you start us off?

JEFF: Yeah, so my pick this week is a book I’m just digging into called “The Rails View” by Bruce Williams and John Athayde. I’m bias because they are friends of mine, but I find it’s really excellently targeted book because across this seven years now Rails development, the view layer has been always been treated as kind of the one no one wants to talk to or about, you know, like that’s just the domain of designers. And I really like how the Rails View provides kind of introduction to design and frontend things for developers. So it’s for the kind of people that listen to the Ruby Rogues.

CHUCK: Cool. All right. James why don’t you finish starting this off?

JAMES: I don’t know what is it which means like I seem to go through phases where like, you know, for a while I’m reading lots of books and then I guess I’m going to go through period where I’m, you know, kind of burn out of them and stuff like that, but I think it was — that really got me back into it way then like a lot are just really cool books coming lately. In my opinion or maybe it’s just in the book starved or something, but I too is going to mention the Rails View which I’m also reading right now. So I definitely agree with what Jeff said there.

And then just bunch of other books I’ve picked lately from a price ad, Rails Recipes 3rd Edition which I don’t think I read the first one and then I didn’t read the second one and then I just picked up the third one. But it’s an awesome book. It was awesome all the way back to its first edition and just great recipes that going to cool details, you know. Working with multiple databases, all kinds of stuff that you do and don’t see it regularly in Rails. In Ruby side the price is coming new JRuby book, you know, which is all about DRB which ships with Ruby and his kind of Ruby-ish RPC Framework and stuff. Neat stuff there, too. I mean like even if you don’t do any distributive programming, you know or don’t usually do that then you should definitely read this book, you know, because that way, you get new ideas right and new things you might think of trying in the future.

They’re just really short, in e-book only or no, I guess there’s a paper version of it, but on Tmux which is pretty hot right now. It’s a cool stuff and this books shows you why is it cool. And then I had one Beta on deploying with JRuby and we’re actually discussing this a little bit before the show, you know, that that’s an option out there for a lot of people for a various reasons and now there is this book about how you would deploy on the JRuby platform. So just logical books from the  lately that I have been enjoying in getting into and so people should check those out. We may do some of them as Book Club books going forward so…

CHUCK: So do you J deploy with Jay to your J server?

JAMES: Yes.

CHUCK: All of that, okay. Josh what are your picks?

JOSH: Okay, I got a couple today. I think probably many people on our audience know who Zefrank is. He actually gave a talk at RailsConf way back when, awesome keynote. He is smart. He is funny and the thing that really is awesome about him is that he speaks to the heart. He’s very collaborative. His previous work “The Show”, he just got tons of people involved in doing crazy things all over the world. But he did a kick starter project recently to start off a new show and he, yesterday posted, or was it Monday, posted invitations for beginnings which is a three-minute video he put up in YouTube that is one of the most inspirational things that I’ve seen in a while.

And for someone who’s doing a start up in everyday has to confront, “Oh my God what am I doing and how I am going to get through all this”, this is a nice little inspiring piece and I encourage everybody to watch it if you’re ever up to anything in your life which I hope is every day. So it does really great and go check out zefrank.com. He’s up to good stuff again. Always up to good stuff, but he’s doing this new show and it should be fun.

Okay, so the next thing, this is a brand new thing. I haven’t had a chance to try this out yet so I’m taking a risk here, so Dr. Nic who I know and love came out with a new set of magic spells for putting together Rails applications. And I like this because, I mean I’ve been blogged about this a while ago. It’s just like how do you get your Rails applications started and its gotten really complicated, so Dr. Nic said, “Hey let’s make this easier to put together stuff”. So he didn’t work out recipes because everybody uses the Herm recipes. He calls these things scrolls like from Dungeons s and Dragons. Somebody spell that they were up down and you can customize a few bits of it and it does thing you want so this is nice.

JAMES: Awesome.

JOSH: Yeah, it looks like, it has the potential to turn into something awesome, so and it needs some contributions from people to get work on something like Heroku, so take a look at it. See how it works. I’m going to give it a shot real soon and see how it goes, but it looks very promising. There is a little caveat here and you know, Dr. Nic is a eval ed  project abandoner, so I don’t know what the longevity of this project is. I think the best case scenario is that somebody gets excited about it and takes over maintenance of it and it continues on so…and then I have one.

I haven’t done a like a health and lifestyle pick in a while, so my pick this week is for therapeutic massage therapy. Is that redundant? Therapeutic therapy, therapeutic massage. So little known fact, I’m actually a trained massage therapist and I worked as a massage therapist for about a year when I was on break from being a programmer. I have spinal issues, so I gotten a lot of massage over my lifetime, but yeah, massage isn’t just for, you know, relaxing or feeling sexy or whatever. It’s actually really good therapeutic technique and it’s great for your overall health. And yeah, specially your mental health too because it can help you de-stress and relax. Maybe the same benefits of yoga.

So my secret plan for world peace is for everyone on the planet to get a massage once a week. And I challenge anyone to talk of the world where that happens where we have to worry about things like nuclear war. So yeah, often times you can find a massage by going to your chiropractor. They often have the massage therapist to work in their office. If you’re lucky enough to live in a big city like San Francisco, there’s a lot of access of massage therapists, but just one word of advice, if you’re going to hire someone to do massage, it’s good to go with someone who advertises themselves as a massage therapist because masseurs and masseuses are often catering towards a different market. And I hope I didn’t offend anyone who actually calls themselves a masseur or masseuse and doesn’t operate that way, but we will leave at that. Anyway that’s it for me.

CHUCK: I could just see that. Where are those codes? Mr. President, I think you need a massage.

JOSH: It’s exactly it.

CHUCK: Yeah, all right. Avdi what are your picks?

AVDI: I think just one this week and its Parallels Workstation. I used parallels back in my Mac days to run, you know, run windows for machines virtual machines auto Mac and I hadn’t used it since then and hadn’t really thought of them as doing anything other than Mac’s stuff. But, recently I’d been doing some video editing inside of Windows Virtual machines because I enjoyed pain and I’ve been, I was searching or a better desktop virtualization specifically desktop virtualization solution than Virtual Box. I tried VMware and I had a ton of problems with it and then somebody suggested Parallels. I was like, Parallels. I thought were just Mac company, but the actually have Parallels Workstation for Linux and it works really, really well. I don’t know what tricks they’re pulling, but it seems like a faster virtualization than anything else I’ve tried and it interoperates with, you know, the Linux window managers really well. It does not steal the mouse and never give it back and it can talk directly to USB devices and you know, I’m actually able to do video editing pretty comfortably so, Parallels Workstation.

CHUCK: Cool, writing software so that can run Windows on your non-Windows machine. Sounds like those guys need a massage. All right.

JOSH: So we’re going to leave this pick down, that’s what I remember.

JAMES: I need a message.

CHUCK: Yeah, I do too, I’ll tell you.  All right, so I have a couple of picks. They’re actually related to podcasting more than programming. The first one is, I don’t know if you’ve noticed in past episodes, I tried to minimize it as much as possible, but the air conditioning would come in on my office and it setup right above my mike, so it would turn on an you hear this ***** you know, it sounded really nice. So I spent $7 on Amazon and I got an Air Deflector that I put over the vent. And so now it blows on the wall instead of my microphone which is very nice. I also have a windscreen on it, so I actually have to blow pretty hard for you year it.

One other thing that picked up because I have a tendency to move my hands when I talk, and so what happens is that I’ll wind up bumping the boom on my microphones on and I had a Shock Mount on my old mic, but my new mic, it’s not so new anymore, but my PR 40 does not fit in the old Shock Mount and the Shock Mounts for the PR 40 is like the official higher ones which were the only ones I could find that said, yeah your heil will fit in here. They’re like a hundred bucks, so I can’t put off on getting one, so I finally got one and yeah I’ve actually bumped my boomer twice during this episode and I don’t think anyone heard anything. My phone also vibrated and it absorbed the shock of the vibration going through the desk of arm into the mic, so you probably didn’t hear that either. I just love those things. They’re just so super nice.

And finally one other thing and I know this has been picked before, but every time I use it, it just makes me happy and that guard. So if you’re looking for something that can kind of do those routine tasks or set things up or things like that, they’re zillion different plug-ins of guard that just make your life wonderful so I recommend those.

One last thing that I’m going to recommended and this is something, it’s not a new concept, but a friend of mind put it together and I like it, it’s called Cost and what it is it’s a mixed in for your controllers that basically provides you with your standard rest stuff. So rather than running the generator and then having all these duplicated code all over the place, you just include the jam or you include the module and then from there you can actually customize things with the call back system that this guys written. It’s written by Nick Hopkins whose a guy that I used to work with at Solution Stream. So anyway those are my picks and…

JEFF: Can I through in a bonus pick?

CHUCK: Sure.

JEFF: Overtime pick, something that was around the Twitterverse yesterday and I think it’s really interesting definitely we’ll keep an eye on, the Meteor system for building JavaScript powered web applications. It’s just meteor.com. I’ve just started to dig through the docs, but as one of my friends said, this reminds me of what Rails look like in 2005, which is a pretty good analogy to make. It looks very interesting.

CHUCK: Nice.  All right, we got that in there. We’ll let’s go and wrap this up. One thing I want to remind you of is we’re going to be doing our Book Club. I still don’t think we’ve picked the date yet, but “Working with Unix Processes”, is that what it is called?

JAMES: Yes.

CHUCK: And we’re going to have the author on the show and you know, what we usually do. I’ve read quite a bit of it. It’s really, really good. If you have some understanding of how Linux works then you know, some would be review and some of it is kind of new. If you don’t understand that stuff, you’re going to be pleasantly surprised with how handy that stuff is, so I highly recommend you go check it out.

We also got a discount code from the author and so I will be putting that up on the show notes that you can get the discount.

Also, we’re in iTunes so if you want to go find us, you can find us in iTunes. If you’re using something else that’s fine just, you know, just use the RSS link and I had a couple of people let me know that they were having trouble with InstaCast and what they wind up doing was actually removing the podcast and then putting it back it and that seem to cleared it up so they could get the couple of past episodes they weren’t able to get. So if you’re having trouble with that, it’s probably InstaCast and not our RSS feed.

Also, I had several request to get us Stitcher and we are in Stitcher now. So if you’re using Stitcher or you’re using Stitcher and wish you could get the podcast that way, we’re there now so you can get the episodes from there and with that, we’ll wrap this up and we’ll talk to your next week.

JAMES: Thanks Jeff.

JEFF: Thanks guys.

3 comments
Michael
Michael

Perhaps I missed this, but what's the discount code for _Working with Unix Processes_?

Dan Croak
Dan Croak

Good episode. I'm excited by all the new education efforts in our field. One correction on thoughtbot's apprentice.io program: we don't bill clients for apprentice time. Cheers!

Trackbacks

  1. [...] Ruby Rogues Talk to Jeff Casimir about Ruby Training The Ruby Rogues sit down with renowned Ruby and Rails trainer Jeff Casimir to discuss his role with the Hungry Academy training program and to talk about the ideas behind training students in the art of programming generally. [...]

Previous post:

Next post: