NOEL RAPPIN: Hey everybody. I think we'll get started. We've got a lot of people on here who are all gonna wanna talk and we don't have that much time. So, I'm gonna quickly introduce, this is, we're doing a panel here on teaching the next great developers. I have a panel of experts here. We'll let them briefly introduce themselves, and then we will get on with it. So, I'm Noel Rappin. I'm a Table XI senior developer, and to some extent I'll be representing traditional CS education, if that ever comes up at any point over the next forty minutes, which I'm sure nobody would ever bash traditional CS education in, in this forum. So, OK. First up, we got Jeff. We also only have two microphones so you guys are gonna pass them around. JEFF CASIMIR: Hi. My name is Jeff Casimir. I run a company called JumpstartLab, and most recently started up a training program called Turing, Turing School of Software and Design. N.R.: I put 'labs' up there. I got it wrong. J.C.: It's all right. I'll just call it Table X. BREE THOMAS: Hi. I'm Bree Thomas, and I'm a developer with a company named, called iTriage. And a recent grad of this guy's school. JEN MEYERS: Hi. My name is Jen Meyers, and I am part of the team at Dev BootCamp here in Chicago. N.R.: Jen is filling in at the last minute for Dave Hoover, who couldn't make it due to a family emergency. LIZ ABENANTE: I'm Liz Abenante. I am a developer at Instructure and I also co-lead the Girl Develop It chapter here in Chicago with this gal. KATHRIN EXLINE: Hi, my name is. Is. Just kidding. Is it ready? My name is Katie Exline. You can call me Katie. I am the co-leader of Girl Develop It, Chicago. Started in Girl Develop It with Girl Develop It, Columbus with that girl. And I'm currently a software engineer at a company called Fooda. 600 West. BEN ORENSTEIN: Hi. I'm Ben. I work at ThoughtBot in Boston. I run our program for training developers there called Learn. And I write code and talk to people and do things like this. N.R.: So, I'm gonna. So, I want to start this off by, so, we have a couple of different kinds of programs here represented. We have two different boot camps that are sim- somewhat similar in structure, but different in length. We have the Girl Develop It, which is more shorter interventions aimed at bringing novices into the, into the field, and we have online, online inter- somewhat more in-depth online interventions. And, I guess, maybe, what I want to start with is, what is, what do you think is the most important part that you, in your program, bring to teaching a novice developer, and how do you think that that fits towards bringing in the next generation of developers? To start with. Anybody can feel free. Jen's got the mic. J.M.: I've got the mic. OK. I'll go for that. N.R.: So what's the most, what's the most important thing at Dev BootCamp. If, if you were to say that a Dev BootCamp boot came out of there knowing one or two things, like what, what's the most important thing that you try to impart? J.M.: Honestly, I think the most important thing that we try to foster is just being able to love and learning how to learn. And really being able to carry themselves on and our, our goal is to really produce people who know enough about Ruby on Rails to get a job where they can continue to learn, and that they have the tools and the, the muscles built up, that they know how to keep learning on their own, and keep exploring and finding out new things. So, it's a little bit meta, but I really do feel like that's one of the things that is our main goal, to make sure that people can continue learning for the rest of their careers and lives. J.C.: Kind of a similar vein, I would say the most important outcome for students is understanding really how to take difficult technical problems and turn them into sets of small, still difficult but more manageable technical problems. And we happen to do that with Ruby on Rails, but I'm, it's really validating when we see students go into jobs where they do JavaScript full time, or iOS full time, and they're still able to apply all those same patterns to a different language and framework and so forth. L.A.: And Girl Develop It comes from a slightly different perspective, because we work with complete novices in a wide range of classes, and we're just now starting to get into programming here in Chicago with our gals. But, I think the most important thing that I've found teaching these students is how to ask questions and where to ask them. Who to ask, what kind of responses are good responses, and what kind of responses are terrible and you should ignore them because they're from terrible people. B.O.: So, this is actually something that I think that it's important for all levels that I'm working on myself, honestly, is a willingness to admit you don't understand something. There's, I, there's this phenomenon I've seen in developing, in particular, where, because it's an intellectual-based activity, we have this really strong impulse to always act like we know what's going on and we understand what people are saying. And I've tried really hard to develop in myself the ability to be like, I did not follow that. I don't understand what's going on. And I think more of that is really good for the world. I think, I've seen people, I've seen myself do it, too, where you sort of fake it. Where it's like, oh, are you familiar with this? Yeah. I mean, I know I should be, so therefore I'm gonna say yes. And that definitely, that hurts you. Like, you cheat yourself out of that immediate learning, and you cheat, you know, your, your colleague or the person you're talking to out of being able to trust you when they find out you weren't telling the truth. And there's just all this negative impacts from that. N.R.: So, actually. Let's. I have a, I have a sort of jumble. Do you guys have questions in the audience? Like, I have a couple of prepared questions that are gonna be kind of vague, but if you guys have questions in the audience, yes, no, maybe? Then we, this would be, this would be, I think, more fruitful if you guys com- if we come from there. AUDIENCE: I think everyone thinks they're terrible at programming when they start, so how do you help people N.R.: So the question is, how do you help people build confidence, given that everybody thinks they're terrible when they start, or possibly for several years after they've started? B.O.: I love that question. Did, you repeated it, right? Yeah. N.R.: Yes. B.O.: Because I still struggle with believing that I am a good programmer, and I think this happens to everybody, is, there's this impostor syndrome, and I think everybody has. Wow. N.R.: Sorry. I'm just going back in the slides. B.O.: There we go. That's OK. Shwoo. It still kind of blows my mind when people think nice things about me. And I think that impostor syndrome is, like, is very prevalent. And, again, we're in a intellectual based field, again, so I try to be, like, humility, I think, is my answer to that. Like, I try to be humble myself, because I've had those own feelings of impostor syndrome, of like, not even believing that I know what I'm doing. And so, I know that's just amplified a thousand fold when you're brand new and everything's super confusing. So when I've done stuff, particularly with like, really new people, like a RailsBridge type workshop, I like to like, open by saying, like. Don't worry. The state of being confused and like, this should work but it doesn't work. That is the normal state of the working programmer. That's like, how it is. And so, it's not you. It's never you. It's that this is hard and it's always gonna be like that. So, hopefully you like it. R.N.: Despair is what we teach. Long term despair. J.M.: Yeah, I was gonna, to back-track a little bit on what you were saying, you know, we, as Liz mentioned, we deal with a lot of people who are just starting out. So, actually, a lot of them aren't, they're not faking it, and what we're working with, they think they're totally incapable of learning it. You know, on the, on the reverse side. So, there's a few things that we do in order to make sure that they feel comfortable is, for one, we make sure to encourage them to ask questions and do not scoff when they ask any sort of question, because then we're validating them and saying, that is a totally valid question, and it's OK if you don't know that. And we may not even have the answer. So, that type of, like, open discussion, being able to ask questions is great. And then also, just providing positive feedback. Actually, constructive feedback. Both positive and even if it's constructive, providing it in a positive way, I think really helps build peoples' confidence. J.C.: Smart. Cause that's what I was thinking. Giving a set up where you can give somebody a small, a small, quick win, that they've done something that they could point to, I think is helpful in my experience as a teacher. B.T.: So I'll just add to that. As one who spent six months in a course, I wasn't getting it at all, for like, the first three months. And it was brutal. And I consider myself someone who's actually, I never had any question about my ability to learn something new. And so, I think, I think in terms of what's important, from a student perspective, when you're, when you're in a course, is having instructors in an environment where they can adapt to your learning style, so they can understand, they can look at you and they can understand, OK, here's where you're having problems. And, change course if that's what's required. Because I can say that that was my experience. I kind of went, oh my gosh. I still have no idea what's going on and we're halfway through the course and it's not clicking. And I kept getting the, it's gonna be OK. It's gonna be OK. No. It's not OK. I'm half way through, and I spent all this money and there's only three months left. And essentially, the instructors, you know, at least with, with Jeff's group, they took a step back and said, OK, let's focus on the fundamentals. And, let's do some smaller steps, and let's do that work with you, and that was extraordinarily helpful for me. And, by the time I graduated, I can honestly say I finally felt like, oh, I'm a developer now. I may not be, you know, a great one, but I like, feel comfortable calling myself a developer now. L.A.: And in terms of not seeing yourself as terrible, you're not terrible if you do one thing right. Like, in programming. If you get that image to render on your ht- your very first html page, but you cannot figure out freaking CSS for the life of you, it doesn't matter because you got that one thing, that tiny victory, reinforcing those tiny victories, celebrating those tiny victories, and using those as moments to break away from the frustrations really helps break students out of that pattern of, I'm terrible. I don't get this. It's really hard. J.C.: I think the, the whole conversation around, like, impostor syndrome, I found really interesting. I kind of want to ban that phrase. Like, I will probably stop saying it, because I, I think it's just a part of programming. Thinking, or perhaps knowing that you're not good at programmer. And, for me, when I first started, our first program as Hungry Academy in D.C., and I, when I laid out the course plan, there were pieces in there that I did not know how to do and had never done in a project. And I was so nervous and I was like, oh, we're gonna. I'm gonna be exposed. Right? But I had this co-teacher and I was like, he'll know. He's a real consultant and, like, he knows how to do these things. It'll be OK. And, I think what's happened to me over that time is just realizing that, like, I don't give a shit. Like, if I'm not the best programmer - I'm sure Ben's a much better programmer than I. So what? Like, it, it, it, probably, you know. And so, I'm fortunate, you know, through things like RailsConf to talk with amazing people and people are like, oh, you know, Jose Valim, like, building Elixir. Poof. Like, no idea. I can't even understand Elixir, much less how to build it. And, he's a much better developer, or, much better programmer than I am. But, who cares? Is really, I think, something that's valuable to your career. N.R.: One thing I feel- sorry. J.C.: Like, you're not, you're not measured on some, like, benchmark against other, there's no like, programming test, like, program this thing in thirty-seven minutes. It's like, oh, Jen can do it in thirty-six minutes. She's smarter than you. Like, it, it doesn't matter to me. N.R.: I did it in thirty-five, but. J.C.: It's that CD degree. You can do it in one minute. N.R.: I, one thing that I think is really important, is try to keep- I saw. Is to try to keep novices from comparing themselves against, like, the quote on quote heroes. Like, it's really easy for somebody to say, like, oh, I see Steve Clapnick submit, you know, I see these people who submit to open source all day long, and a lot of the people who do that, that's actually one way or another their job. And to compare their output, their very public, very voluminous output to yours, when it's not really your job to do that, is unfair to yourself, and a little bit unfair to them. But mostly unfair to yourself. And to try, I've seen, like, novice developers get kind of locked in that, that idea that they're not doing everything they could be doing. And that's dangerous for them. Like, you want them to be celebrating the victories that they are doing and not comparing themselves with the things that they're not. Sorry, what's? AUDIENCE: Yes. So, what that brings to mind, for me, is [indecipherable - 00:13:04], one of the concerns that was brought up was this idea that we were missing a lot of developers who are perhaps gonna even do some harm in their first, you know, first few gigs, perhaps. N.R.: All of us do a lot of harm in our first few gigs, right. Like. Yes. AUDIENCE: So this question's for all of you. I wonder if, if teaching the next 'great' developers is even the right question to be asking. And if N.R.: So, OK. So, the question is whether teaching the next great developers is the right question, and if so what is? Great developers was my fault. Don't blame them for calling this great developers. J.C.: That's link bait. N.R.: Yeah. B.O.: And you're here. N.R.: If I had only said, if I had only said good developers, half of you would be off learning- teaching the next half-assed developers. J.C.: Yeah. I, I think one of the privileges of working with these programs and people that come into our program and, and programs like all these people participate in is that they might not be great developers. And, like, Bree wants to be a full-time developer. In ten years, will Bree be a full time developer? I'm not so sure. But will she be doing something amazing in technology, and like probably be running a company? Will I be working for her? Like, above zero change, you know. Like, and so the people that, mostly, I guess one of the things that surprises people about our program, and I think it's probably similar for Dev BootCamp, is most of our students are career changers. It's not their first career. And so they've got these years of experience about how to be a professional. They've got years of experience in some domain, whether it's finance or health or restaurants or whatever it is. And that experience is gonna be amazing for what they do next, after their first couple jobs, right. Noel and I, we have these CS degrees. We're like, one day gonna get thrown out of a Ruby Conference. Like, marked and thrown out. N.R.: Re-education. J.C.: But those people, I'm excited to see, like, yes, they're gonna really mess up some projects in the short term. But what they do when they get to the point of leading teams and starting companies I think is, well, it's gonna be really cool. J.M.: Yeah. I think that the question really is, what does great mean? And my, my definition of it is similar to what Jeff is describing, is that people who bring a really great diversity of experience and backgrounds and to, to kind of enrich the products that we're making. That's exciting. And he's right. In Dev BootCamp, we do have a lot of people who have really unique backgrounds, and have some really cool perspectives that they bring into things, and are just, like, great people. And those are people you want to work with on teams, and they, you know, they just help you make better things together. So that, I'd like to have that definition of great, and kind of tease out the, the potential in those people who have other things that they can bring to it, and help them contribute that for making the developers they are. B.O.: I really like both those answers, because I think one of the, the best things about programming is that it's an awesome force multiplier on something else that you want to do. So rather than being like, I want to be really amazing at writing code, if you can say, I want to do, I want to change lives in this way or make this sort of thing, and programming is the super power that lets you do it harder and faster, I think that's like, the best way to think about that. I have a friend who has just enough programming background, that at, he works at a bank with a bunch of finance people, and everyone he works with, basically they massage Excel spreadsheets all day. And he has just enough programming background to write VB to do some of this massaging automatically. And he is, you know, the one-eyed man in the land of the blind. Like, he is, there is, he is revered, and people are blown away, because he can do these things. And I think that's the perfect way to say, rather than saying I'm gonna be amazing at code for code's sake, if you think, you know, I'm gonna get good at using code as this amplifier, as a tool for the other things I want to do. N.R.: What they used to say about journalism school is don't do journalism school as an undergraduate. Learn something, and then learn how to apply journalism to it. I think programming is very similar. Like, learn how to do something and then learn how to apply programming to it. One thing I have seen from both the, I've met a number of Dev BootCamp and GSchool, Jumpstart graduates, and they do seem very enthusiastic as a group, as people who have, like, chosen something and gone through and succeeded in this challenging program. They tend to come out being, being very enthusiastic. K.E.: You have to. N.R.: Yeah. K.E.: I mean, you spend eighty to ninety hours a week. N.R.: So the question is, how do we make sure that the next generation of developers has the interpersonal skills to be leaders and, and mentors within the community. L.A.: I don't know if you've noticed this about me. I'm kind of a perky person. I'm kind of, you know, friendly, I hug a lot. When I introduce myself at Girl Develop It classes, I always say, I wasn't doing this a year ago. I don't get to say that anymore because it's now been a year. I'm so proud of myself. But, I tell them, when I tell them my story, I say, I made this career transition. I went to Dev BootCamp. I made this choice. And I would not have been able to do this without the assistance of my mentors, of my friends, of the teachers at Dev BootCamp who, Jen talked me down from a ledge a couple times. It was not easy. It was really difficult. And I preach that to them, and I tell them, I'm here for you. Katie's here for you. We have meet ups. We're your friends. We're your mentors. We are here. You should be here for the people that you need help with. And we encourage them to help each other during class. So it's not just something we say, do this, maybe, you know, in a year or a month or however long, x days, until you become a developer. It's do this right now. Do this in class. Help this person next to you when they're struggling. J.M.: And, and, at Dev BootCamp, we actually kind of take it a bit further and formalize it. So we actually have a portion of our curriculum that's called Engineering Empathy. The students all go through guided sessions in feedback and communication and, you know, understanding themselves as, as kind of touchy-feely as that sounds. The goal is exactly what you described, is to get people to know how to communicate better, know themselves better, have better team dynamics, and just be well-rounded individuals that know how to connect with other people. Whether it's on their teams or clients or customers, any of those sort of things that you need to be able to, to build really good software. We formalize that, we have sessions for it, and then we try to support structure around it. Like Liz describes, of all of us being on board and all the instructors are there to kind of, to reinforce it as they go all the way through the program. B.T.: I would just add to that, specifically to your question about how do we foster this? I would say that, in, I am a very extroverted person, and aside from that, I think it's really important when you, when you work with new developers, be in their business. Like, don't let them, you know, OK, yeah, yeah, yeah, I got this. I'm just gonna go work over here on this thing, or I'm gonna do a couple hours of code school till you give me a task to do. Because I think as new developers, no matter how extroverted we are or, there, there is still a little bit, that fear of, oh gosh. We're gonna break production. Oh shit. Or whatever it is. Or you know, maybe we're just, we're too nervous to ask questions because you guys look really busy doing the real work. So, I would, I just think it's important, at least for me, I mean, I like it when mentors and people that I look up to are, they're like in my business. They're like, OK, what are you doing? Let's talk about that. Let me shoulder hawk you for a few. Let's pair program. I think all of that is really important in fostering new developers. J.C.: Anybody in the room been a mentor for a program like one of ours? So, number one, want to give you tremendous shout outs, that those relationships are incredibly valuable for our students. People like Shawn had a mentor, a mentee in our program, and like, Shawn changed that young man's life. Like, without a doubt. So, tremendous shout outs. Fostering the interpersonal communication I think is the most valuable piece we can add, right. Like, the code you can get from a book. And how to work with a team and how a team goes wrong and right, you only get through experience. And so, that's like, with our program, we're fortunate to have a very long time. And so, they work primarily in three week projects with groups of four people. And you learn all the hard lessons of, hopefully, some of those first projects that you would otherwise screw up for money, you screw up on your own time and your own money. You see the team that has all the all-stars and they go in with all the confidence, and they're like, yeah, we've been doing this Rails thing for six weeks, we're gonna build a Backbone frontend. And we're like, yeah, don't do it. And they're like, no, we're gonna do it. OK. And then it all burns down, right. Or, you see the team that is honestly kind of mediocre with their skills, but they get along and they pair well together, and they communicate well, and then they end up delivering better software than the all-star team, and the all-star team is like, hey, wait a second. Like, we should talk to each other and, like, figure stuff out. Hmm. This works better. And, just getting to iterate on those problems and learn them yourself, not just, like, hear it in a conference talk and try to follow through. We do little things like lightning talks. I know you guys do lightning talks also. So, I, I like to think that that has like, lead to like, Bree's giving a talk tomorrow and a couple of your grads are giving talks and so forth. R.N.: Sorry, next. Yeah. Go ahead. So, so the question is, is does it scare us that we're bringing in a bunch of people into an industry that's horrible at onboarding people. J.C.: I heard there's a talk about crafting your own onboarding experience that's really phenomenal. J.M.: I mean, it's a little scary, especially as somebody who has been an instructor, you really care a lot about those students, and they go out into the world and it's a little bit like, yeah, you're, you're sending your kid off to school or something like that. You don't know what's gonna happen. But, you know, I'm not really sure how to solve that problem other than just attack it. And so I think that if we can bring people, or produce people that do know how to own their own learning and know how to communicate well, then those are some of the best weapons we have to improve the overall process for other people coming in. And hopefully we can also, for those of us who know some these challenges, can provide more structure and, and, you know, we, we have a placements team who works with companies to hire our grads and things like that. So, we, we can build a structure that maybe can help provide more resources or help for the companies that are, are taking our grads, and just make it smoother for everybody. And hopefully the more we do that, the better it gets. B.O.: I'm sort of the opposite of scared of bringing more people in. I think we desperately need to do it. Right now, at, at least what I see, demand is so much higher than supply, and that works out pretty well for us as developers that already know what we're doing, right, because we're, we're very much in demand. The power is on our side right now. But if that demand are supply are mismatched for too long, the demand will drop. It'll have to drop. And I, I know someone who is a CTO for hire. And so he works a lot of companies. And so he had a start up that just got funded and was like, OK. Now we're ready. Let's go hire a Rails developer. And they couldn't. They couldn't find someone. They said, OK, let's not write it in Rails. We're gonna go somewhere else. So, if we have this mismatch for too long, I think it will be bad for us. And so I think, if we've got this crazy giant demand up top, we've got to, got to satisfy it. N.R.: Speaking of- B.O.: And it'll be better in the long run. N.R.: Speaking from the side of this of somebody who onboards novices, I think that, I mean, this is a problem that, to some extent, is outside of all of their control, right, as Jen was alluding to. What we need to do on that, on the, on the incoming, on the incoming side, is understand that in some cases, the, where, understand where these students are coming from, that the experiences that they have had and the experiences they haven't had, and ideally put them in a situation where they can be successful, and where we're matching them to expectations that are reasonable. You know, I think a lot of the students, I think that you guys would agree that, that there are better situations for your students to go to, and worse situations for your students to go to, and you want them to go to a place where there are going to be other p- you don't want them to go to a place where they're going to be the entire straw holding up, you know, the one straw holding up this huge weight of stuff. You want them to go to a place where they're going to be more senior people who can put them in a situation where they're gonna be successful. And I do think we have to get better at doing that, generally. Creating senior developers is a whole different ball. Jeff, did you have a point you wanted to make? J.C.: As far as companies that do and do not have apprenticeships, I think of it really as evolution. Like, there are so many companies that sit around waiting to hire a senior engineer and look for six months and don't find any and all that. And meanwhile, the company who brought in apprentices, they now have six months experience, and they're delivering probably, like, somebody with two years of experience, if they're doing it well. And the reality is, if your company does, in my opinion, does not work on bringing in young people, young in their career, you're gonna die. Like, you're just gonna lose. Because the teams that build up their own people keep those people. Those people are tremendously valuable six months, a year, eighteen months in. And they'll just beat you. N.R.: Dave, Dave Hoover had a theory at Optiva that the goal of a, a small company was to have people at every level. You have the best novices, you have the best intermediate juniors, you have the best people right after that. You don't just have a bunch of seniors and a bunch of novices. You have people, to the extent that you can have people at every step in between. What's great about that is, everybody has somebody who's about six months ahead of them to point what their next six months are gonna be like, and everybody has somebody who's six months behind them, that they are an obvious and immediate, like, partner for. So if you can build up a business like that, if you can build up a team like that, that's, that's fantastic. B.O.: We've embraced that like crazy. Like, bringing in apprentice level people. We have an apprentice program. And it's been huge for us. We've been able to hire so many more awesome people than we would have if we had just said, we're looking for senior only. We're not willing to invest in these people and train them. N.R.: So the question is, how do we get, how do we get the people coming in to set reasonable goals for what they can accomplish, technically? B.T.: I'll start. Well, after being a student of this gentleman, he's actually, I would say, over the, over the six months that I was school, to that point, he was actually really good in that learning time about, like, oh. You think you can do this thing? Go ahead. Knock yourself out. Right? So, much like with children, I have a seven year old, it's kind of like, you're in charge of your own fun. You learn a lot by being crushed by some of those, oh, this was a lot harder than I thought it was gonna be. So I think there's something important about that. In terms of at the work place, I'd, at least where I work, you know, they're very good about, and, and they have a, a focus on kind of onboarding, right. And so they're very good about, hey, we're going to help define these goals with you. We're gonna help ease you into the code base. And we're gonna do that with smaller sets of problems to solve. And we're not going to place this burden on you for, get this feature done by this exact time. And so I think all of that is, is really, really helpful. And the other thing that I think's really helpful and goes a little bit back to what we were talking about just a second ago is, in terms of students, you know, even in being novices, there's different levels of that. And, and people are different. And so I think that the programs that do exist right now, Dev BootCamp and the other ones, I think one thing that's really important and that was beneficial for me especially, was as I went through the interview process, my instructors were there with me through the whole thing. And they were really, really honest with me, as well as having conversations with employers, about my ability. And so, that helped, that honesty about, you know, where I'm at in my learning and the type of learner that I am and the things that I'm interested in, is beneficial so that I don't find myself in a work place where, you know, that's all I'm gonna be is, sort of buried under these goals or things that I can't, you know, where I can't really prosper. L.A.: On that note, it's also important to teach people to reassess their goals and to be able to take note of where they are and where they expected to be, and maybe think about why they're not. I think that's also a very important piece. J.M.: Yeah. I just want to kind of, I like, really both of those, and I like what you're saying, too. Maybe it's a parent thing. I have an eight-year-old. And I feel the same way, where, I feel very strongly it's important for people to make mistakes and be able to learn from them. And I don't think it's so much about preventing them from, you know, trying to scale back the goals to prevent them from making any mistakes, but, creating an environment where it's safe to do that, and them helping them in figuring out what they can learn from it when they do that. So that's kind of, in general, the philosophy that I like to ascribe to, and I think, Dev BootCamp is in a little bit of a different situation, where we don't have people as long as some of the other schools. We only have people for nine weeks. So we don't have as much time to do that, but I think we do that in general, and then also the way we structure the program starts with the basic building blocks, and then builds on top of them. We're a Ruby on Rails training program, but you don't even get to Rails until your seventh week of the program. So, we're teaching the fundamentals before then. So I think if you start out with the, the basic blocks and build up from there, and also at the same time kind of create this environment where it's OK to screw things up, and somebody's gonna help you figure out, you know, how to learn from that, or, as the two things together make it a lot easier to understand what you can achieve and how to do it. J.C.: No, hold on man. I'm going. Hold on. N.R.: I'm sorry. You can have your question after Jeff says something. J.C.: So, TDD I heard is over. N.R.: Dead. J.C.: But, we teach it anyway. N.R.: Not, not, not, not just over. Dead. Dead. J.C.: So we're old fashion. It's dead. Well, we're old fashioned. And so we, we teach TDD, and it starts on day two, and I think that the approach behind TDD is the same approach behind lean start up. And, like, breaking off incredibly small problems, getting feedback right away and iterating on that. And so by starting with TDD, as the means to build software, and then we try, through these three week projects they work on in their teams, really take, like, a lean approach to delivering it early, adding on incremental features. Well, first we let them try and build all the features and deliver it day of, and it all burns down and we're like, see. That sucks. Don't do that again. And, but, like, by, by starting with the tests, and then applying that to the product, I think it teaches you how to take an idea and figure out, what is the essential component here? Like, whether, whether it's an aspiration for a company I'm gonna build, or just the goal for, I'm gonna learn something. Like, it's critically important to figure out, like, what's the first step. And I think that's the hardest part of any good idea. N.R.: OK. Now you can ask your question. J.C.: So I'm very involved in the interview process and do a lot of like, coaching with the students and so forth. And, your technical interviews are a hot mess. Like, people have cargo culted their process from, like, two companies ago, and you'll see, sometimes, it, it makes absolutely no sense. There is a company that'll put, like, students through six rounds of interviews, and then say no. And I'm like, do you understand how much of your own time you've wasted here? Like, it's insane. Specifically with the technical questions, you'll see such a broad range. People will be like, I have an array. How do I pull out an element? And it's like, really? Come on. And then there's others, we, we did have a student get asked, like, are you familiar with binary trees? And he said, like, yeah. I've built a binary tree. And they're like, do you know, like the, the lookup efficiency of something? And he's like, oh, you mean like, n log(n)? And it's like boom. Bomb dropped on you. Like, you didn't see that coming from somebody who's been doing it for six months, right. The reality is that, code, like, everyone, I guess not everyone. You should agree that coding on a white board is dumb, right. I tell students that if somebody asks you to code on a white board, tell them how do I run the tests? And, like, question over. But the, the piece about, like, how do they learn? How do they solve problems? That is incredibly valuable. So, yeah. I, I think we need to have a lot more conversation around how, as teams and companies, do we want to build up interview processes that actually achieve the goals and, and like find the people that we want? Because, from what I've seen, there's like. There's no understanding. There's kind of like, fear and uncertainty about it. We had a student this time ask, get asked to sign an MVA about the interview process. There's, it's not that interesting, bros. Like, whatever it is, it's not that interesting. So, I think there's a lot of work to be done there. K.E.: I can just talk on a personal level of, I had a really, well, I don't want to say I had a bad technical interview. But I want to speak to the good technical interview that I had at the current company that I'm with, and part of the reason why I chose to go to that company is because of the technical interview. And, the interview I had was a take home assignment. And this is one of the different formats you can do. I had a take home assignment for three days to build an API. It was my first API, and it was just an amazing experience, in that, not only did I get to learn something, as part of the interview, I got to see how accessible my manager would be, and then he was also able to judge, how did I attack something that I didn't know? And also, what kind of questions that, did I ask? And I think we each got a really good understanding of what this type of relationship would be like. So that's just personal experience. B.O.: So the, the process that we do I think is actually pretty good. So we do have a, a technical screen, which is sort of a discussion of, how might you build this? How might you build that? But the real meat of the interview is, in person pairing in the office. A full day. And you work on real stuff. Real client work. Real open source work. Whatever people would actually normally be doing. And you sit next to somebody. And I like that a lot. You know, you can run the tests. It's not a, a fake, contrived problem. You can see, also, what it's like to sit next to somebody, and it's cause there's, there's that social fit, which is so important, too. And so that, the white boarding thing, I agree. That needs to die, for sure. And, you know, let's move more towards pairing and seeing what people are actually like on real stuff that you're working on. J.C.: I forgot to mention one of my favorite interviews that I ever saw, that you reminded me of, was ThoughtWorks asks you to create a code sample, or, like, solve a sample assignment and submit it. You have, like, a week, or something along those lines. And then when you get into the in person interview, what you do is sit down with an engineer and pair on refactoring your submission to the assignment. And so they get to see a lot of great things that way. Like, how do you understand that you, that you wrote? Did you actually write it? You know. Like, and how do you think about refactoring. Do you go, like, what it works? Why would I change it? You know. Or, do you understand how to restructure, abstract objects, abstract methods. I thought it was awesome. N.R.: We do something like that too, while we're sharing, we've done that before. I think we have time for one more question. B.O.: That guy's had his hand up like the whole time. N.R.: OK. So I will, I will go with you. I hope it's a good question. We actually, we're last. I have no place to go, I have no place to go after this. But they may stop recording us. After dark. AUDIENCE: [indecipherable] L.A.: We spent a lot of time getting women familiar with technical concepts and comfortable talking about technical concepts so they can take on more technical roles. Not necessarily as an engineer, but perhaps as a product manager, instead of doing project management. And, that's a subtle difference to us, but it's a huge difference to them. It's a world of difference. It's more technical responsibility. They're more comfortable with their knowledge. And so, my goal, teaching people, is not to get them to be x, it's to get them to whatever their x happiness will be. I love what I do, but that may not be right for them. I want to help them in any way that I can to get to the technical career that they want to have, that will work for them. And whatever resources I have, I will just like waterfall at their face. So. J.C.: It's one of the questions I really try and watch out for in students, or applicants, at that stage, is do you want to be a professional developer? And if the answer is no, please don't come. Because it's a tremendous waste of time. Like, spending twenty-seven weeks to prepare for a job you don't want makes no sense. And I redirect them, like, you're a lot better off, like, going to Dev BootCamp, and you can come out and like, you have some programming skills and you can reappropriate those into a management position, in a project position if you want to. It makes a lot more sense. J.M.: Yeah. I'll, I'll just add to that. That, I think that, sometimes even Dev BootCamp is a little too intense for that, just because most of the people, like, it's still hard to like quit your job for nine weeks if you're just kind of doing it to, to pivot. But it is, it's less intense, or it might be a little bit easier. And we do have people who go through who want to apply it to, maybe, a, a certain area that isn't just being a straight up developer. But I think, like, Liz was talking about, things like Girl Develop It and other organizations that are working on really reaching out to people, and there's lots of them. And they have lots of different focuses. But I think that's where they really come into play, is that just opening these doors, and you get to choose where you go after that. You know, you kind of just go, maybe a door is the wrong word, but more of a gateway. And, so then you can go in many directions after that. So, I think that these are compliments, not nec- they're not all necessarily the same thing. We kind of have a spectrum of different organizations, and they compliment each other really well. The really nice thing about just being, reaching out and letting people choose where they want to go, maybe they don't know what they want and they don't know what's out there. I know, you know, as I was growing up, I didn't even have the internet, you know. Web, being a web application developer didn't even exist. So I had no idea until I was probably like in my early twenties that maybe this might exist and maybe I can start working towards it. And there are still, and that was kind of a time thing for me. But there are many people who don't have access to the opp- to the kind of opportunities that we do, and so just being able to give them more accessible ways to see what is out there, might be able to say, oh, well maybe I actually do want to do that. And then they can take one of these other programs. N.R.: Yeah. Things like CodeSchool and Rails for Zombies and stuff also have a place in that, too. You get, you get a certain amount, enough knowledge to understand. You have to have enough. There are some positions where all you need to know is you need to know when your technical person is totally bull shitting you. And that, that's, those kinds of things move to that, go to speak to that. I am obligated to tell you that we're at time. I, I don't have any place to go. I don't know about you guys. So, if people have questions, I'm willing to, with whoever wants, continue to answer questions. If you have some place, if you guys have places to go, that's fine. But first, just a round of applause for the panel. Thank you guys all for showing up. And, thank you for coming.