[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:16.89,0:00:18.44,Default,,0000,0000,0000,,SARON YITBAREK: So, hello. My name is Saron. Dialogue: 0,0:00:18.44,0:00:20.58,Default,,0000,0000,0000,,Thank you guys so much for coming to my talk. Dialogue: 0,0:00:20.58,0:00:23.01,Default,,0000,0000,0000,,I'm really, really excited to be here. Dialogue: 0,0:00:23.01,0:00:26.04,Default,,0000,0000,0000,,And as you can tell from the title of this\Ntalk, Dialogue: 0,0:00:26.04,0:00:28.17,Default,,0000,0000,0000,,grammar is very important to me. Dialogue: 0,0:00:28.17,0:00:30.39,Default,,0000,0000,0000,,So, before we begin, I want to start off Dialogue: 0,0:00:30.39,0:00:34.00,Default,,0000,0000,0000,,by telling you a story. A year ago today, Dialogue: 0,0:00:34.00,0:00:36.77,Default,,0000,0000,0000,,I was not a programmer. This is a, a Dialogue: 0,0:00:36.77,0:00:38.75,Default,,0000,0000,0000,,really big confession that I'm sharing with\Nyou. A Dialogue: 0,0:00:38.75,0:00:43.41,Default,,0000,0000,0000,,year ago today, I was this chick. I worked Dialogue: 0,0:00:43.41,0:00:47.32,Default,,0000,0000,0000,,at tech startups. I did business development,\Nsales, marketing. Dialogue: 0,0:00:47.32,0:00:50.17,Default,,0000,0000,0000,,All of those non-technical roles. And I loved\Nit. Dialogue: 0,0:00:50.17,0:00:51.43,Default,,0000,0000,0000,,If you've ever worked at a tech start up, Dialogue: 0,0:00:51.43,0:00:53.65,Default,,0000,0000,0000,,the best part is telling other people that\Nyou Dialogue: 0,0:00:53.65,0:00:55.76,Default,,0000,0000,0000,,work at a tech start up, because they instantly Dialogue: 0,0:00:55.76,0:00:57.94,Default,,0000,0000,0000,,think you're awesome and cool because you\Nare. Dialogue: 0,0:00:57.94,0:01:01.10,Default,,0000,0000,0000,,But I realized, over time, after that honeymoon\Nphase Dialogue: 0,0:01:01.10,0:01:04.96,Default,,0000,0000,0000,,was over, that my biggest skill, the best\Nthing Dialogue: 0,0:01:04.96,0:01:07.70,Default,,0000,0000,0000,,I had to offer my company, was being able Dialogue: 0,0:01:07.70,0:01:11.35,Default,,0000,0000,0000,,to talk. And that didn't seem very valuable.\NAnd Dialogue: 0,0:01:11.35,0:01:13.67,Default,,0000,0000,0000,,I was always surrounded by programmers. By\Nthese tech Dialogue: 0,0:01:13.67,0:01:17.53,Default,,0000,0000,0000,,people who could build beautiful, powerful\Nthings. And so Dialogue: 0,0:01:17.53,0:01:20.07,Default,,0000,0000,0000,,I found myself always creeping on them and\Nlooking Dialogue: 0,0:01:20.07,0:01:21.92,Default,,0000,0000,0000,,at what they did and feeling like what they Dialogue: 0,0:01:21.92,0:01:24.09,Default,,0000,0000,0000,,did was so much cooler and so much more Dialogue: 0,0:01:24.09,0:01:26.37,Default,,0000,0000,0000,,interesting than anything I could ever do. Dialogue: 0,0:01:26.37,0:01:29.31,Default,,0000,0000,0000,,So, I quit my job, I started learning how Dialogue: 0,0:01:29.31,0:01:31.18,Default,,0000,0000,0000,,to code. I applied and got accepted to the Dialogue: 0,0:01:31.18,0:01:33.74,Default,,0000,0000,0000,,Flat Iron school, which is a three month programming Dialogue: 0,0:01:33.74,0:01:37.14,Default,,0000,0000,0000,,boot camp. And when we graduated, I was so Dialogue: 0,0:01:37.14,0:01:39.39,Default,,0000,0000,0000,,excited. I could finally build stuff. I could\Nmake Dialogue: 0,0:01:39.39,0:01:41.91,Default,,0000,0000,0000,,stuff. I was valuable. I could be a contributing Dialogue: 0,0:01:41.91,0:01:45.80,Default,,0000,0000,0000,,member to society, as my mother tells me. Dialogue: 0,0:01:45.80,0:01:48.52,Default,,0000,0000,0000,,And this is actually very important. One thing\Nthey Dialogue: 0,0:01:48.52,0:01:50.70,Default,,0000,0000,0000,,don't tell you when you graduate from a programming Dialogue: 0,0:01:50.70,0:01:52.34,Default,,0000,0000,0000,,boot camp is that you have to click your Dialogue: 0,0:01:52.34,0:01:55.50,Default,,0000,0000,0000,,heels and hold up a keyboard, otherwise it's\Nnot Dialogue: 0,0:01:55.50,0:01:57.23,Default,,0000,0000,0000,,official. Dialogue: 0,0:01:57.23,0:01:59.35,Default,,0000,0000,0000,,So I was so proud. I was so excited. Dialogue: 0,0:01:59.35,0:02:01.35,Default,,0000,0000,0000,,I learned all this stuff. I worked really,\Nreally Dialogue: 0,0:02:01.35,0:02:04.66,Default,,0000,0000,0000,,hard. I'm apparently standing on a rock of\Ncode Dialogue: 0,0:02:04.66,0:02:08.32,Default,,0000,0000,0000,,stuff that I conquered. But I was also painfully Dialogue: 0,0:02:08.32,0:02:11.59,Default,,0000,0000,0000,,aware of all the other stuff left to learn. Dialogue: 0,0:02:11.59,0:02:13.95,Default,,0000,0000,0000,,So there's the stuff I didn't know. There's\Nthe Dialogue: 0,0:02:13.95,0:02:15.66,Default,,0000,0000,0000,,stuff I didn't know I didn't know. There was Dialogue: 0,0:02:15.66,0:02:17.10,Default,,0000,0000,0000,,the stuff that I thought I knew, but I Dialogue: 0,0:02:17.10,0:02:18.80,Default,,0000,0000,0000,,forgot, but I didn't know I'd forgotten it\Nyet. Dialogue: 0,0:02:18.80,0:02:20.91,Default,,0000,0000,0000,,So that's gonna be a nice surprise in the Dialogue: 0,0:02:20.91,0:02:22.98,Default,,0000,0000,0000,,future. And then, by the way, all the stuff Dialogue: 0,0:02:22.98,0:02:27.38,Default,,0000,0000,0000,,changes all the time. So welcome to programming. Dialogue: 0,0:02:27.38,0:02:29.36,Default,,0000,0000,0000,,And I was painfully aware of how much of Dialogue: 0,0:02:29.36,0:02:31.18,Default,,0000,0000,0000,,a novice I was. And this is the novice Dialogue: 0,0:02:31.18,0:02:33.79,Default,,0000,0000,0000,,track, so hopefully this applies to you too.\NAnd Dialogue: 0,0:02:33.79,0:02:37.35,Default,,0000,0000,0000,,this actually describes Dreyfus, or Dreyfus's\NModel of Skill Dialogue: 0,0:02:37.35,0:02:39.98,Default,,0000,0000,0000,,Acquisition, that says that when you start\Nat zero, Dialogue: 0,0:02:39.98,0:02:42.11,Default,,0000,0000,0000,,when you start a new skill, you start at Dialogue: 0,0:02:42.11,0:02:44.41,Default,,0000,0000,0000,,the novice level. You move up over time to Dialogue: 0,0:02:44.41,0:02:46.93,Default,,0000,0000,0000,,an advanced beginner. Then you go on to confident, Dialogue: 0,0:02:46.93,0:02:48.74,Default,,0000,0000,0000,,proficient, and hopefully an expert. Dialogue: 0,0:02:48.74,0:02:51.09,Default,,0000,0000,0000,,And so, I don't want to be a novice. Dialogue: 0,0:02:51.09,0:02:52.31,Default,,0000,0000,0000,,I don't think anyone here wants to be a Dialogue: 0,0:02:52.31,0:02:54.48,Default,,0000,0000,0000,,novice. That's not fun. I want to be an Dialogue: 0,0:02:54.48,0:02:56.17,Default,,0000,0000,0000,,expert. And I want that cape. That's who I Dialogue: 0,0:02:56.17,0:02:58.93,Default,,0000,0000,0000,,want to be. So I started asking people and Dialogue: 0,0:02:58.93,0:03:01.09,Default,,0000,0000,0000,,did some research on, how can I become an Dialogue: 0,0:03:01.09,0:03:04.00,Default,,0000,0000,0000,,expert? How can I go from this poor novice Dialogue: 0,0:03:04.00,0:03:05.83,Default,,0000,0000,0000,,person who kind of sort of thinks she knows Dialogue: 0,0:03:05.83,0:03:08.45,Default,,0000,0000,0000,,what she's doing to, like, that cape-wearing\Nexpert. How Dialogue: 0,0:03:08.45,0:03:09.95,Default,,0000,0000,0000,,do I do that? Dialogue: 0,0:03:09.95,0:03:11.84,Default,,0000,0000,0000,,And the most popular answer I got was reading Dialogue: 0,0:03:11.84,0:03:14.45,Default,,0000,0000,0000,,code. Which is both really helpful but also\Nnot Dialogue: 0,0:03:14.45,0:03:16.82,Default,,0000,0000,0000,,very helpful. Because that leads to all these\Nother Dialogue: 0,0:03:16.82,0:03:18.46,Default,,0000,0000,0000,,questions, like, what code do I read? How\Noften Dialogue: 0,0:03:18.46,0:03:21.09,Default,,0000,0000,0000,,do I read it? And the best way to Dialogue: 0,0:03:21.09,0:03:24.34,Default,,0000,0000,0000,,start an adventure is to start it with friends. Dialogue: 0,0:03:24.34,0:03:25.92,Default,,0000,0000,0000,,So these are my friends. I think I drew Dialogue: 0,0:03:25.92,0:03:29.25,Default,,0000,0000,0000,,them very flatteringly. And so these are some\Nof Dialogue: 0,0:03:29.25,0:03:31.29,Default,,0000,0000,0000,,my programming buddies from the Flat Iron\Nschool, and Dialogue: 0,0:03:31.29,0:03:34.52,Default,,0000,0000,0000,,I got them together and I said, yo. If Dialogue: 0,0:03:34.52,0:03:36.97,Default,,0000,0000,0000,,you get programming people together to start\Na code Dialogue: 0,0:03:36.97,0:03:39.05,Default,,0000,0000,0000,,reading club, you have to start the conversation\Nwith Dialogue: 0,0:03:39.05,0:03:41.42,Default,,0000,0000,0000,,yo. Otherwise it just won't work. Dialogue: 0,0:03:41.42,0:03:46.57,Default,,0000,0000,0000,,So I said, yo, we should read code together. Dialogue: 0,0:03:46.57,0:03:48.15,Default,,0000,0000,0000,,And so we decided that we were gonna dedicate Dialogue: 0,0:03:48.15,0:03:52.17,Default,,0000,0000,0000,,one hour every single Sunday at 11 AM. By Dialogue: 0,0:03:52.17,0:03:53.90,Default,,0000,0000,0000,,the way, this is a huge deal for me. Dialogue: 0,0:03:53.90,0:03:55.68,Default,,0000,0000,0000,,I don't wake up before two on a weekend. Dialogue: 0,0:03:55.68,0:03:58.54,Default,,0000,0000,0000,,So I'm, I'm already winning just by declaring\Nthat Dialogue: 0,0:03:58.54,0:04:00.36,Default,,0000,0000,0000,,this might happen. Dialogue: 0,0:04:00.36,0:04:01.77,Default,,0000,0000,0000,,And so we decided that we're gonna make this Dialogue: 0,0:04:01.77,0:04:05.52,Default,,0000,0000,0000,,a regular thing. And we decided to call it Dialogue: 0,0:04:05.52,0:04:09.18,Default,,0000,0000,0000,,Code Club. Because we are creative geniuses. Dialogue: 0,0:04:09.18,0:04:10.97,Default,,0000,0000,0000,,So the first question was what code should\Nwe Dialogue: 0,0:04:10.97,0:04:13.22,Default,,0000,0000,0000,,read? And we did some research. We asked,\Nyou Dialogue: 0,0:04:13.22,0:04:14.99,Default,,0000,0000,0000,,know, the mentors and senior developers that\Nwe knew. Dialogue: 0,0:04:14.99,0:04:17.61,Default,,0000,0000,0000,,We said, what would be a great starting point Dialogue: 0,0:04:17.61,0:04:20.08,Default,,0000,0000,0000,,for a novice to start reading code? And they Dialogue: 0,0:04:20.08,0:04:22.50,Default,,0000,0000,0000,,said, you should read anything. Dialogue: 0,0:04:22.50,0:04:24.50,Default,,0000,0000,0000,,This is not helpful. Please do not answer\Nin Dialogue: 0,0:04:24.50,0:04:26.22,Default,,0000,0000,0000,,this way if someone asks you, where do you Dialogue: 0,0:04:26.22,0:04:29.21,Default,,0000,0000,0000,,start? And so we came up with our own Dialogue: 0,0:04:29.21,0:04:31.75,Default,,0000,0000,0000,,rules. We decided that the point of reading\Ncode Dialogue: 0,0:04:31.75,0:04:35.66,Default,,0000,0000,0000,,was to find code that we thought was inspirational Dialogue: 0,0:04:35.66,0:04:37.64,Default,,0000,0000,0000,,and would be great examples. So we decided\Nthat Dialogue: 0,0:04:37.64,0:04:42.02,Default,,0000,0000,0000,,whatever we read, it was gonna be exemplary\Ncode. Dialogue: 0,0:04:42.02,0:04:44.60,Default,,0000,0000,0000,,And we defined exemplary as having four attributes.\NWe Dialogue: 0,0:04:44.60,0:04:47.16,Default,,0000,0000,0000,,said that one, it had to be somewhat popular. Dialogue: 0,0:04:47.16,0:04:49.71,Default,,0000,0000,0000,,Something that was well-used. Something that\Nwas endorsed by Dialogue: 0,0:04:49.71,0:04:52.82,Default,,0000,0000,0000,,the, the developer community. Something that\Nhopefully was well-documented, Dialogue: 0,0:04:52.82,0:04:55.23,Default,,0000,0000,0000,,so that if we got stuck we wanted somewhere Dialogue: 0,0:04:55.23,0:04:56.04,Default,,0000,0000,0000,,to go to. Dialogue: 0,0:04:56.04,0:04:59.17,Default,,0000,0000,0000,,Third, it should be well-written, and four\Nit should Dialogue: 0,0:04:59.17,0:05:01.34,Default,,0000,0000,0000,,be well-maintained. So knowing that it had,\Nyou know, Dialogue: 0,0:05:01.34,0:05:03.79,Default,,0000,0000,0000,,recent commits and people were still keeping,\Nyou know, Dialogue: 0,0:05:03.79,0:05:07.72,Default,,0000,0000,0000,,maintaining it was really important to us. Dialogue: 0,0:05:07.72,0:05:10.13,Default,,0000,0000,0000,,And we thought that if we did this, we Dialogue: 0,0:05:10.13,0:05:13.16,Default,,0000,0000,0000,,studied our exemplary code and read every\NSunday, we Dialogue: 0,0:05:13.16,0:05:15.76,Default,,0000,0000,0000,,were gonna go from novice programmers to bad\Nass Dialogue: 0,0:05:15.76,0:05:20.08,Default,,0000,0000,0000,,experts. So, the one suggestion that I actually\Ndid Dialogue: 0,0:05:20.08,0:05:23.08,Default,,0000,0000,0000,,get from a much more senior person than I, Dialogue: 0,0:05:23.08,0:05:25.21,Default,,0000,0000,0000,,said, why don't you start with Sinatra? You've\Ndone Dialogue: 0,0:05:25.21,0:05:27.17,Default,,0000,0000,0000,,Sinatra. You know it. You're kind of familiar\Nwith Dialogue: 0,0:05:27.17,0:05:29.22,Default,,0000,0000,0000,,it. So we said, great. We'll start with the Dialogue: 0,0:05:29.22,0:05:31.73,Default,,0000,0000,0000,,get method, which is something that I never\Nreally Dialogue: 0,0:05:31.73,0:05:34.40,Default,,0000,0000,0000,,understood. Dialogue: 0,0:05:34.40,0:05:37.58,Default,,0000,0000,0000,,And so we gathered on the Google, and we Dialogue: 0,0:05:37.58,0:05:39.15,Default,,0000,0000,0000,,got together and we said, we're gonna get\Nthrough Dialogue: 0,0:05:39.15,0:05:41.14,Default,,0000,0000,0000,,the get method. The get method in one hour? Dialogue: 0,0:05:41.14,0:05:43.31,Default,,0000,0000,0000,,Totally doable. If you've seen the get method\Nin Dialogue: 0,0:05:43.31,0:05:45.44,Default,,0000,0000,0000,,Sinatra, I think it's like seven lines of\Ncode, Dialogue: 0,0:05:45.44,0:05:48.05,Default,,0000,0000,0000,,which sounds perfectly doable. No. This is\Na trick. Dialogue: 0,0:05:48.05,0:05:49.53,Default,,0000,0000,0000,,This is a huge lie. Dialogue: 0,0:05:49.53,0:05:52.34,Default,,0000,0000,0000,,Because every single line is completely abstracted\Ncode, and Dialogue: 0,0:05:52.34,0:05:53.97,Default,,0000,0000,0000,,you have to go through all these other files Dialogue: 0,0:05:53.97,0:05:55.34,Default,,0000,0000,0000,,to find out what they're doing, and then they Dialogue: 0,0:05:55.34,0:05:57.33,Default,,0000,0000,0000,,have more abstracted code. Then you go to\Nother Dialogue: 0,0:05:57.33,0:05:59.98,Default,,0000,0000,0000,,files, and it became just one rabbit hole\Nafter Dialogue: 0,0:05:59.98,0:06:02.17,Default,,0000,0000,0000,,another. And we found that we really got nowhere Dialogue: 0,0:06:02.17,0:06:04.08,Default,,0000,0000,0000,,with it. And so we went from being really Dialogue: 0,0:06:04.08,0:06:07.47,Default,,0000,0000,0000,,excited to completely overwhelmed. Dialogue: 0,0:06:07.47,0:06:11.30,Default,,0000,0000,0000,,So, I'm a really, really big believer in retros. Dialogue: 0,0:06:11.30,0:06:13.79,Default,,0000,0000,0000,,I like taking the opportunity to reflect on\Nwhat Dialogue: 0,0:06:13.79,0:06:15.91,Default,,0000,0000,0000,,I just did, especially if it's something that\NI'm Dialogue: 0,0:06:15.91,0:06:18.50,Default,,0000,0000,0000,,doing for the very first time. So, at the Dialogue: 0,0:06:18.50,0:06:21.01,Default,,0000,0000,0000,,end of the very first Code Club session, we Dialogue: 0,0:06:21.01,0:06:24.84,Default,,0000,0000,0000,,paused and we said, how was this experience,\Non Dialogue: 0,0:06:24.84,0:06:28.21,Default,,0000,0000,0000,,an individual level? How did each person feel? Dialogue: 0,0:06:28.21,0:06:31.22,Default,,0000,0000,0000,,What did we learn? And most importantly, how\Ncan Dialogue: 0,0:06:31.22,0:06:33.35,Default,,0000,0000,0000,,we improve? The idea was to keep this going Dialogue: 0,0:06:33.35,0:06:35.19,Default,,0000,0000,0000,,every week, so what can we do to make Dialogue: 0,0:06:35.19,0:06:37.58,Default,,0000,0000,0000,,sure that the next time we do this, we Dialogue: 0,0:06:37.58,0:06:39.53,Default,,0000,0000,0000,,learn a ton? Dialogue: 0,0:06:39.53,0:06:42.02,Default,,0000,0000,0000,,And the first and most important part about\Nthe Dialogue: 0,0:06:42.02,0:06:45.77,Default,,0000,0000,0000,,code-reading experience, is to pick a manageable\Ncode base. Dialogue: 0,0:06:45.77,0:06:48.58,Default,,0000,0000,0000,,It was very, very disappointing, and a huge\Nhit Dialogue: 0,0:06:48.58,0:06:50.20,Default,,0000,0000,0000,,to our ego, to know that we couldn't even Dialogue: 0,0:06:50.20,0:06:52.13,Default,,0000,0000,0000,,figure out a get method, that started out\Nlooking Dialogue: 0,0:06:52.13,0:06:54.02,Default,,0000,0000,0000,,like just seven lines of code. Dialogue: 0,0:06:54.02,0:06:56.05,Default,,0000,0000,0000,,And so, picking something that is manageable,\Nthat is Dialogue: 0,0:06:56.05,0:06:58.91,Default,,0000,0000,0000,,digestible, that you can actually get through\Nand understand Dialogue: 0,0:06:58.91,0:07:01.43,Default,,0000,0000,0000,,is really, really important. This is the first\Nguideline Dialogue: 0,0:07:01.43,0:07:04.08,Default,,0000,0000,0000,,of having your own code club, and definitely\Nthe Dialogue: 0,0:07:04.08,0:07:05.41,Default,,0000,0000,0000,,most important. Dialogue: 0,0:07:05.41,0:07:07.52,Default,,0000,0000,0000,,So we decided that, for us, one hundred lines Dialogue: 0,0:07:07.52,0:07:09.59,Default,,0000,0000,0000,,of code was the great limit. And it was Dialogue: 0,0:07:09.59,0:07:13.13,Default,,0000,0000,0000,,a pretty arbitrary number, but it ended up\Nbeing Dialogue: 0,0:07:13.13,0:07:15.68,Default,,0000,0000,0000,,perfect. Because what happened was, in that\Nhundred lines Dialogue: 0,0:07:15.68,0:07:17.63,Default,,0000,0000,0000,,of code, you have just enough that you can Dialogue: 0,0:07:17.63,0:07:20.46,Default,,0000,0000,0000,,complete a full gem or library. And that's\Na Dialogue: 0,0:07:20.46,0:07:22.31,Default,,0000,0000,0000,,great accomplishment. Being able to say, hey,\NI read Dialogue: 0,0:07:22.31,0:07:24.10,Default,,0000,0000,0000,,through this whole thing and I finished it?\NEven Dialogue: 0,0:07:24.10,0:07:25.63,Default,,0000,0000,0000,,if you didn't understand it, you feel really\Ngood Dialogue: 0,0:07:25.63,0:07:26.78,Default,,0000,0000,0000,,about yourself. Dialogue: 0,0:07:26.78,0:07:28.88,Default,,0000,0000,0000,,Second, it gives you the amount of time and Dialogue: 0,0:07:28.88,0:07:32.30,Default,,0000,0000,0000,,flexibility to stop and comfortably ask questions.\NSo if Dialogue: 0,0:07:32.30,0:07:34.64,Default,,0000,0000,0000,,there's something you haven't seen before,\Nyou can say, Dialogue: 0,0:07:34.64,0:07:36.47,Default,,0000,0000,0000,,hey, can we slow down? Cause I, I don't Dialogue: 0,0:07:36.47,0:07:38.56,Default,,0000,0000,0000,,really get this. Can someone explain it to\Nme? Dialogue: 0,0:07:38.56,0:07:40.08,Default,,0000,0000,0000,,And you don't feel like you're slowing anyone\Nelse Dialogue: 0,0:07:40.08,0:07:40.80,Default,,0000,0000,0000,,down. Dialogue: 0,0:07:40.80,0:07:43.74,Default,,0000,0000,0000,,Second, you have the opportunity to try things.\NOne Dialogue: 0,0:07:43.74,0:07:45.76,Default,,0000,0000,0000,,of my favorite parts about reading code is\Nfinding Dialogue: 0,0:07:45.76,0:07:47.81,Default,,0000,0000,0000,,new methods that I haven't seen before, or\Nmaybe Dialogue: 0,0:07:47.81,0:07:49.58,Default,,0000,0000,0000,,finding methods that I haven't seen in a long Dialogue: 0,0:07:49.58,0:07:52.51,Default,,0000,0000,0000,,time. And so being able to stop the session Dialogue: 0,0:07:52.51,0:07:54.08,Default,,0000,0000,0000,,and say, can we open up IRB and just Dialogue: 0,0:07:54.08,0:07:55.83,Default,,0000,0000,0000,,play with this and see how this works is Dialogue: 0,0:07:55.83,0:07:57.82,Default,,0000,0000,0000,,really, really valuable. Dialogue: 0,0:07:57.82,0:08:00.44,Default,,0000,0000,0000,,And the third thing was research topics. So\Nthere Dialogue: 0,0:08:00.44,0:08:03.11,Default,,0000,0000,0000,,were always patterns that we've seen that\Nlook kind Dialogue: 0,0:08:03.11,0:08:05.15,Default,,0000,0000,0000,,of familiar, that we've seen in other places.\NBeing Dialogue: 0,0:08:05.15,0:08:07.58,Default,,0000,0000,0000,,able to stop and look things up on StackOverflow Dialogue: 0,0:08:07.58,0:08:10.41,Default,,0000,0000,0000,,or just Google was a really great opportunity.\NAnd Dialogue: 0,0:08:10.41,0:08:13.63,Default,,0000,0000,0000,,so with that limit, limited code base, we're\Nable Dialogue: 0,0:08:13.63,0:08:18.14,Default,,0000,0000,0000,,to do these things while also getting through\Ncode. Dialogue: 0,0:08:18.14,0:08:20.33,Default,,0000,0000,0000,,Which brings me to the second really, really\Nimportant Dialogue: 0,0:08:20.33,0:08:22.82,Default,,0000,0000,0000,,part about reading code. It's not really about\Nreading Dialogue: 0,0:08:22.82,0:08:24.77,Default,,0000,0000,0000,,the code. Reading the code is just the starting Dialogue: 0,0:08:24.77,0:08:26.89,Default,,0000,0000,0000,,point. All these other things that I mentioned,\Nthe Dialogue: 0,0:08:26.89,0:08:28.49,Default,,0000,0000,0000,,parts where you kind of get off track and Dialogue: 0,0:08:28.49,0:08:31.34,Default,,0000,0000,0000,,you kind of digress and you have conversations.\NThose Dialogue: 0,0:08:31.34,0:08:33.62,Default,,0000,0000,0000,,are the things that matter. That's the real\Nvalue Dialogue: 0,0:08:33.62,0:08:35.02,Default,,0000,0000,0000,,in reading code. Dialogue: 0,0:08:35.02,0:08:38.57,Default,,0000,0000,0000,,So, the learning happens in these digressions.\NIn these Dialogue: 0,0:08:38.57,0:08:41.84,Default,,0000,0000,0000,,conversations. I am very, very sensitive to\Ngetting off Dialogue: 0,0:08:41.84,0:08:43.70,Default,,0000,0000,0000,,track and making sure that everything I do\Nis Dialogue: 0,0:08:43.70,0:08:45.70,Default,,0000,0000,0000,,very focused, so this is a little bit difficult Dialogue: 0,0:08:45.70,0:08:47.64,Default,,0000,0000,0000,,for me. But over time, I got to see Dialogue: 0,0:08:47.64,0:08:50.96,Default,,0000,0000,0000,,a lot of value in it. Dialogue: 0,0:08:50.96,0:08:53.09,Default,,0000,0000,0000,,The third thing is that it's a team effort. Dialogue: 0,0:08:53.09,0:08:54.49,Default,,0000,0000,0000,,Do not go at this alone. It will be Dialogue: 0,0:08:54.49,0:08:56.21,Default,,0000,0000,0000,,very painful and you will not have a good Dialogue: 0,0:08:56.21,0:08:58.86,Default,,0000,0000,0000,,time. So knowing that I had other people that Dialogue: 0,0:08:58.86,0:09:01.70,Default,,0000,0000,0000,,were about my same level and that, you know, Dialogue: 0,0:09:01.70,0:09:03.33,Default,,0000,0000,0000,,we knew what we knew and we knew what Dialogue: 0,0:09:03.33,0:09:06.20,Default,,0000,0000,0000,,we didn't know, made it really, really easy\Nto Dialogue: 0,0:09:06.20,0:09:08.43,Default,,0000,0000,0000,,start on this journey and to keep going. Dialogue: 0,0:09:08.43,0:09:10.19,Default,,0000,0000,0000,,It's really important to make sure that everyone\Nyou Dialogue: 0,0:09:10.19,0:09:12.65,Default,,0000,0000,0000,,do this with feels comfortable enough to raise\Ntheir Dialogue: 0,0:09:12.65,0:09:14.25,Default,,0000,0000,0000,,hand and say, can we stop here? I don't Dialogue: 0,0:09:14.25,0:09:16.11,Default,,0000,0000,0000,,quite get that. Or, I know you just said Dialogue: 0,0:09:16.11,0:09:17.37,Default,,0000,0000,0000,,that, but can you say it a different way, Dialogue: 0,0:09:17.37,0:09:18.63,Default,,0000,0000,0000,,because it didn't make sense to me the first Dialogue: 0,0:09:18.63,0:09:19.32,Default,,0000,0000,0000,,time. Dialogue: 0,0:09:19.32,0:09:21.55,Default,,0000,0000,0000,,So it's really important that everyone is\Ncomfortable, that Dialogue: 0,0:09:21.55,0:09:25.59,Default,,0000,0000,0000,,everyone is engaged, and in order to do that, Dialogue: 0,0:09:25.59,0:09:27.44,Default,,0000,0000,0000,,we find it very helpful to have a tour Dialogue: 0,0:09:27.44,0:09:29.89,Default,,0000,0000,0000,,guide. So every week we trade off, and we Dialogue: 0,0:09:29.89,0:09:32.31,Default,,0000,0000,0000,,have one person lead the conversation. This\Nis just Dialogue: 0,0:09:32.31,0:09:34.13,Default,,0000,0000,0000,,one person to say, hey, we're gonna start\Non Dialogue: 0,0:09:34.13,0:09:36.70,Default,,0000,0000,0000,,line two. We're gonna keep going. Stephanie\Ndo you Dialogue: 0,0:09:36.70,0:09:38.33,Default,,0000,0000,0000,,have a question? Dan, what do you think about Dialogue: 0,0:09:38.33,0:09:40.32,Default,,0000,0000,0000,,this? Ian, have you seen this before? And\Nhaving Dialogue: 0,0:09:40.32,0:09:42.51,Default,,0000,0000,0000,,someone stop at all the right places, make\Nsure Dialogue: 0,0:09:42.51,0:09:45.54,Default,,0000,0000,0000,,everyone is engaged and excited is a really\Nimportant Dialogue: 0,0:09:45.54,0:09:48.45,Default,,0000,0000,0000,,part of this journey. Dialogue: 0,0:09:48.45,0:09:51.48,Default,,0000,0000,0000,,So we found, very quickly, that finding exemplary\Ncode Dialogue: 0,0:09:51.48,0:09:54.16,Default,,0000,0000,0000,,that's only a hundred lines is very, very\Ndifficult. Dialogue: 0,0:09:54.16,0:09:56.27,Default,,0000,0000,0000,,I think we ran out after a couple of Dialogue: 0,0:09:56.27,0:09:58.51,Default,,0000,0000,0000,,weeks. And so, out of necessity, we had to Dialogue: 0,0:09:58.51,0:10:00.56,Default,,0000,0000,0000,,kind of lower our standards. We had to say, Dialogue: 0,0:10:00.56,0:10:02.74,Default,,0000,0000,0000,,the most important part is really that we\Nfinish Dialogue: 0,0:10:02.74,0:10:05.30,Default,,0000,0000,0000,,getting through the code base, so we're gonna,\Nyou Dialogue: 0,0:10:05.30,0:10:07.80,Default,,0000,0000,0000,,know, not worry about whether it's well-maintained\Nor well-written. Dialogue: 0,0:10:07.80,0:10:10.60,Default,,0000,0000,0000,,We're just gonna find code that's a hundred\Nlines. Dialogue: 0,0:10:10.60,0:10:13.54,Default,,0000,0000,0000,,And this ended up being a really great thing. Dialogue: 0,0:10:13.54,0:10:16.27,Default,,0000,0000,0000,,So one day, the very first week that we Dialogue: 0,0:10:16.27,0:10:18.96,Default,,0000,0000,0000,,decided to lower our standards, we were looking\Nat Dialogue: 0,0:10:18.96,0:10:21.47,Default,,0000,0000,0000,,a method that we didn't really think was very Dialogue: 0,0:10:21.47,0:10:26.11,Default,,0000,0000,0000,,well-written. And Dan said, this method sucks.\NHow would Dialogue: 0,0:10:26.11,0:10:27.36,Default,,0000,0000,0000,,we write it? Dialogue: 0,0:10:27.36,0:10:29.45,Default,,0000,0000,0000,,And he gave us our very first point of Dialogue: 0,0:10:29.45,0:10:31.77,Default,,0000,0000,0000,,interaction. And that's the fifth guide line,\Nis to Dialogue: 0,0:10:31.77,0:10:34.75,Default,,0000,0000,0000,,find these opportunities to interact with\Nthe code. Because Dialogue: 0,0:10:34.75,0:10:37.27,Default,,0000,0000,0000,,in him asking that one question, it lead to Dialogue: 0,0:10:37.27,0:10:41.43,Default,,0000,0000,0000,,a very interesting conversation. One, about\Nwhat the intent Dialogue: 0,0:10:41.43,0:10:43.22,Default,,0000,0000,0000,,was. What was the point of that method? What Dialogue: 0,0:10:43.22,0:10:43.93,Default,,0000,0000,0000,,was it doing? Dialogue: 0,0:10:43.93,0:10:46.56,Default,,0000,0000,0000,,Two, why was it written that way? Was it Dialogue: 0,0:10:46.56,0:10:48.71,Default,,0000,0000,0000,,because the developer had a certain style?\NWas it Dialogue: 0,0:10:48.71,0:10:50.94,Default,,0000,0000,0000,,because it was a fork from a different gem Dialogue: 0,0:10:50.94,0:10:52.92,Default,,0000,0000,0000,,and they were just kind of, you know, maintaining Dialogue: 0,0:10:52.92,0:10:55.90,Default,,0000,0000,0000,,that, that writing style stylistically? And\Nhow does it Dialogue: 0,0:10:55.90,0:10:58.07,Default,,0000,0000,0000,,fit in to the overall design and architecture\Nof Dialogue: 0,0:10:58.07,0:11:00.08,Default,,0000,0000,0000,,the entire code base? Did this one stand out Dialogue: 0,0:11:00.08,0:11:01.53,Default,,0000,0000,0000,,as being worse than the other ones? Or did Dialogue: 0,0:11:01.53,0:11:04.74,Default,,0000,0000,0000,,it just kind of follow the general pattern? Dialogue: 0,0:11:04.74,0:11:07.59,Default,,0000,0000,0000,,And so, these questions were awesome, because\Nnow it's Dialogue: 0,0:11:07.59,0:11:10.03,Default,,0000,0000,0000,,not just about reading code, it's about going\Non Dialogue: 0,0:11:10.03,0:11:12.05,Default,,0000,0000,0000,,a little adventure. We got to pretend that\Nwe Dialogue: 0,0:11:12.05,0:11:14.71,Default,,0000,0000,0000,,were the developer, and we were the ones that, Dialogue: 0,0:11:14.71,0:11:17.08,Default,,0000,0000,0000,,that were building this code and connecting\Nwhat we Dialogue: 0,0:11:17.08,0:11:20.00,Default,,0000,0000,0000,,knew, in our world and in our workplace, to Dialogue: 0,0:11:20.00,0:11:23.03,Default,,0000,0000,0000,,this specific situation. So having that moment\Nof interaction Dialogue: 0,0:11:23.03,0:11:26.13,Default,,0000,0000,0000,,really changed the game for us. Dialogue: 0,0:11:26.13,0:11:28.55,Default,,0000,0000,0000,,So, this leads to the sixth point, which is, Dialogue: 0,0:11:28.55,0:11:31.01,Default,,0000,0000,0000,,it doesn't have to be exemplary. Actually,\Nreading bad Dialogue: 0,0:11:31.01,0:11:33.34,Default,,0000,0000,0000,,code is awesome. Because the fact that you\Nget Dialogue: 0,0:11:33.34,0:11:35.13,Default,,0000,0000,0000,,to say, as a novice, that this is bad Dialogue: 0,0:11:35.13,0:11:37.20,Default,,0000,0000,0000,,code, and you get to, like, you know, have Dialogue: 0,0:11:37.20,0:11:39.31,Default,,0000,0000,0000,,an opinion on someone else's work, you feel\Nreally Dialogue: 0,0:11:39.31,0:11:43.09,Default,,0000,0000,0000,,good about that. It makes you feel fairly\Nadequate. Dialogue: 0,0:11:43.09,0:11:44.54,Default,,0000,0000,0000,,And so it doesn't have to be exemplary. It Dialogue: 0,0:11:44.54,0:11:45.98,Default,,0000,0000,0000,,can be really bad, and you can learn a Dialogue: 0,0:11:45.98,0:11:48.71,Default,,0000,0000,0000,,lot from that as well. Dialogue: 0,0:11:48.71,0:11:52.71,Default,,0000,0000,0000,,So, everything was going swimmingly. It was\Ngoing awesome. Dialogue: 0,0:11:52.71,0:11:54.53,Default,,0000,0000,0000,,And then one day, we encountered a gem that Dialogue: 0,0:11:54.53,0:11:58.44,Default,,0000,0000,0000,,talked about rack middleware. And in that\Nconversation, Dan, Dialogue: 0,0:11:58.44,0:12:01.07,Default,,0000,0000,0000,,who comes up with awesome things to say, says, Dialogue: 0,0:12:01.07,0:12:03.33,Default,,0000,0000,0000,,guys, I don't think I really understand how\Nrack Dialogue: 0,0:12:03.33,0:12:06.07,Default,,0000,0000,0000,,middleware works. And we said, Dan, it's,\Nit's obvious. Dialogue: 0,0:12:06.07,0:12:07.86,Default,,0000,0000,0000,,This is how it works. And then we realized Dialogue: 0,0:12:07.86,0:12:10.53,Default,,0000,0000,0000,,that none of us really knew how it worked. Dialogue: 0,0:12:10.53,0:12:13.92,Default,,0000,0000,0000,,And in that conversation, we found a knowledge\Ngap. Dialogue: 0,0:12:13.92,0:12:15.86,Default,,0000,0000,0000,,We found this, this thing that we thought\Nwe Dialogue: 0,0:12:15.86,0:12:17.84,Default,,0000,0000,0000,,understood, that at one point we did understand,\Nbut Dialogue: 0,0:12:17.84,0:12:21.16,Default,,0000,0000,0000,,we'd just forgotten about. So the following\Nweek, instead Dialogue: 0,0:12:21.16,0:12:24.20,Default,,0000,0000,0000,,of doing our regular code review session where\Nwe Dialogue: 0,0:12:24.20,0:12:26.86,Default,,0000,0000,0000,,just read through the code, we, instead, took\Na Dialogue: 0,0:12:26.86,0:12:28.94,Default,,0000,0000,0000,,break. We did some research on what rack middleware Dialogue: 0,0:12:28.94,0:12:30.97,Default,,0000,0000,0000,,was, how it worked, when you'd modify it,\Nwhat Dialogue: 0,0:12:30.97,0:12:33.45,Default,,0000,0000,0000,,you do with it. We watched a few RailsCast Dialogue: 0,0:12:33.45,0:12:35.27,Default,,0000,0000,0000,,videos, did some, you know, looked at some\Nblog Dialogue: 0,0:12:35.27,0:12:37.80,Default,,0000,0000,0000,,posts. And the following week, we shared that\Nknowledge Dialogue: 0,0:12:37.80,0:12:38.52,Default,,0000,0000,0000,,together. Dialogue: 0,0:12:38.52,0:12:40.95,Default,,0000,0000,0000,,So we had a much higher-level conversation,\Nbut it Dialogue: 0,0:12:40.95,0:12:43.66,Default,,0000,0000,0000,,just emphasizes the fact that it's not really\Nabout Dialogue: 0,0:12:43.66,0:12:46.23,Default,,0000,0000,0000,,reading code. It's about reading code that's\Na launching Dialogue: 0,0:12:46.23,0:12:50.51,Default,,0000,0000,0000,,point for more interesting conversation. Dialogue: 0,0:12:50.51,0:12:52.30,Default,,0000,0000,0000,,The eighth thing is you gotta keep at it. Dialogue: 0,0:12:52.30,0:12:54.42,Default,,0000,0000,0000,,So, I've never told my code club this, and Dialogue: 0,0:12:54.42,0:12:57.17,Default,,0000,0000,0000,,they're gonna find out, which is awesome.\NBut I Dialogue: 0,0:12:57.17,0:12:58.42,Default,,0000,0000,0000,,thought it was kind of a chore. It really Dialogue: 0,0:12:58.42,0:13:00.88,Default,,0000,0000,0000,,wasn't fun at first. It wasn't that exciting.\NIt Dialogue: 0,0:13:00.88,0:13:02.25,Default,,0000,0000,0000,,was something that I felt like I had to Dialogue: 0,0:13:02.25,0:13:03.69,Default,,0000,0000,0000,,do. I don't like waking up in the morning Dialogue: 0,0:13:03.69,0:13:06.00,Default,,0000,0000,0000,,on a Sunday. So it was really something that Dialogue: 0,0:13:06.00,0:13:07.80,Default,,0000,0000,0000,,I had to force myself to do. But over Dialogue: 0,0:13:07.80,0:13:10.22,Default,,0000,0000,0000,,time is when I saw the value. I was Dialogue: 0,0:13:10.22,0:13:12.26,Default,,0000,0000,0000,,really looking forward to that first code\Nreading session, Dialogue: 0,0:13:12.26,0:13:14.51,Default,,0000,0000,0000,,when it ended and I said, yeah, I'm now, Dialogue: 0,0:13:14.51,0:13:16.48,Default,,0000,0000,0000,,like, ten steps closer to being an expert. Dialogue: 0,0:13:16.48,0:13:18.24,Default,,0000,0000,0000,,But that's not how it works. It really takes Dialogue: 0,0:13:18.24,0:13:20.46,Default,,0000,0000,0000,,time to get the value from it. So keep Dialogue: 0,0:13:20.46,0:13:22.29,Default,,0000,0000,0000,,at it long enough and hopefully you'll see\Nthe Dialogue: 0,0:13:22.29,0:13:25.30,Default,,0000,0000,0000,,value as well. Dialogue: 0,0:13:25.30,0:13:28.80,Default,,0000,0000,0000,,So everything was going swimmingly again,\Nand then we Dialogue: 0,0:13:28.80,0:13:31.31,Default,,0000,0000,0000,,read the omniauth-meetup gem. So right now\NI'm a Dialogue: 0,0:13:31.31,0:13:33.70,Default,,0000,0000,0000,,developer for the New York tech meetup. Yes,\Nit's Dialogue: 0,0:13:33.70,0:13:36.34,Default,,0000,0000,0000,,a meetup group. Yes. This is a real job. Dialogue: 0,0:13:36.34,0:13:38.91,Default,,0000,0000,0000,,And there we use the omniauth-meetup gem to\Nauthenticate Dialogue: 0,0:13:38.91,0:13:42.53,Default,,0000,0000,0000,,our members. And this is something that was\Nvery Dialogue: 0,0:13:42.53,0:13:44.93,Default,,0000,0000,0000,,interesting, because it was very unexpected\Nfor me. Dialogue: 0,0:13:44.93,0:13:46.66,Default,,0000,0000,0000,,For me, I read code because I felt like Dialogue: 0,0:13:46.66,0:13:48.05,Default,,0000,0000,0000,,that's what I had to do to be a Dialogue: 0,0:13:48.05,0:13:51.10,Default,,0000,0000,0000,,better programmer. That's what everyone told\Nme to do. Dialogue: 0,0:13:51.10,0:13:52.98,Default,,0000,0000,0000,,But when I looked at a gem that I Dialogue: 0,0:13:52.98,0:13:56.34,Default,,0000,0000,0000,,found personally interesting and personally\Nrelevant, it made the Dialogue: 0,0:13:56.34,0:13:58.80,Default,,0000,0000,0000,,whole thing so much more exciting. Cause I\Nuse Dialogue: 0,0:13:58.80,0:14:00.38,Default,,0000,0000,0000,,that gem. I used it all the time. I Dialogue: 0,0:14:00.38,0:14:01.53,Default,,0000,0000,0000,,knew what it was supposed to do. I knew Dialogue: 0,0:14:01.53,0:14:03.72,Default,,0000,0000,0000,,it wasn't, what it wasn't supposed to do,\Nand Dialogue: 0,0:14:03.72,0:14:05.34,Default,,0000,0000,0000,,having the opportunity to look under the hood\Nand Dialogue: 0,0:14:05.34,0:14:07.65,Default,,0000,0000,0000,,see how it did it got me really, really Dialogue: 0,0:14:07.65,0:14:09.18,Default,,0000,0000,0000,,excited. Dialogue: 0,0:14:09.18,0:14:11.40,Default,,0000,0000,0000,,And so the ninth guideline is to find interesting Dialogue: 0,0:14:11.40,0:14:13.97,Default,,0000,0000,0000,,code bases. Things on topics or problems that\Nmaybe Dialogue: 0,0:14:13.97,0:14:16.59,Default,,0000,0000,0000,,you've had. Things that you've worked on before.\NThat Dialogue: 0,0:14:16.59,0:14:20.40,Default,,0000,0000,0000,,makes it a whole lot more interesting. Dialogue: 0,0:14:20.40,0:14:22.21,Default,,0000,0000,0000,,And then there are the unexpected benefits.\NThings that Dialogue: 0,0:14:22.21,0:14:26.03,Default,,0000,0000,0000,,I really didn't consider at all. The first\Nis Dialogue: 0,0:14:26.03,0:14:27.83,Default,,0000,0000,0000,,that, you get to explore the organization\Nof the Dialogue: 0,0:14:27.83,0:14:30.69,Default,,0000,0000,0000,,code base. So we really focused on reading,\Nliterally, Dialogue: 0,0:14:30.69,0:14:32.87,Default,,0000,0000,0000,,the lines of code. But just as interesting\Nwas Dialogue: 0,0:14:32.87,0:14:35.31,Default,,0000,0000,0000,,the file structure, was, what are the folders\Ncalled? Dialogue: 0,0:14:35.31,0:14:36.92,Default,,0000,0000,0000,,And what are the files named? And how do Dialogue: 0,0:14:36.92,0:14:37.69,Default,,0000,0000,0000,,we work together? Dialogue: 0,0:14:37.69,0:14:40.24,Default,,0000,0000,0000,,And we got the opportunity to see that and Dialogue: 0,0:14:40.24,0:14:41.80,Default,,0000,0000,0000,,get exposed to that from all different types\Nof Dialogue: 0,0:14:41.80,0:14:45.43,Default,,0000,0000,0000,,gems and libraries. The second was, you get\Nto Dialogue: 0,0:14:45.43,0:14:48.56,Default,,0000,0000,0000,,really see how collaborative code is. When\Nyou start Dialogue: 0,0:14:48.56,0:14:50.56,Default,,0000,0000,0000,,as a programmer, people tell you that open\Nsource Dialogue: 0,0:14:50.56,0:14:52.75,Default,,0000,0000,0000,,is amazing and this beautiful thing, where\Npeople from Dialogue: 0,0:14:52.75,0:14:55.82,Default,,0000,0000,0000,,all over the world collaborate and build great\Nthings Dialogue: 0,0:14:55.82,0:14:58.39,Default,,0000,0000,0000,,together. But when you actually see it for\Nyourself Dialogue: 0,0:14:58.39,0:14:59.94,Default,,0000,0000,0000,,and you see that that gem that you love Dialogue: 0,0:14:59.94,0:15:01.97,Default,,0000,0000,0000,,is really just a fork from this other gem Dialogue: 0,0:15:01.97,0:15:03.94,Default,,0000,0000,0000,,and really this gem is dependent on all these Dialogue: 0,0:15:03.94,0:15:05.97,Default,,0000,0000,0000,,other things that you didn't think would ever\Nhave Dialogue: 0,0:15:05.97,0:15:08.31,Default,,0000,0000,0000,,a connection, that's really powerful. And\Nit makes the Dialogue: 0,0:15:08.31,0:15:12.08,Default,,0000,0000,0000,,whole thing so much more beautiful. Dialogue: 0,0:15:12.08,0:15:13.89,Default,,0000,0000,0000,,And the third, and honestly the most important\None, Dialogue: 0,0:15:13.89,0:15:16.22,Default,,0000,0000,0000,,especially as a novice, is it's a great opportunity Dialogue: 0,0:15:16.22,0:15:19.04,Default,,0000,0000,0000,,to build your confidence. I didn't fully appreciate\Nhow Dialogue: 0,0:15:19.04,0:15:22.31,Default,,0000,0000,0000,,intimidating it was to open up source code\Nuntil Dialogue: 0,0:15:22.31,0:15:24.09,Default,,0000,0000,0000,,I had to do it for Code Club. Cause Dialogue: 0,0:15:24.09,0:15:26.02,Default,,0000,0000,0000,,that first day, when I said, guys we're really Dialogue: 0,0:15:26.02,0:15:28.12,Default,,0000,0000,0000,,gonna open up this gem and try to understand Dialogue: 0,0:15:28.12,0:15:30.41,Default,,0000,0000,0000,,what's going on. And I think it was maybe Dialogue: 0,0:15:30.41,0:15:32.22,Default,,0000,0000,0000,,a month and a half into doing this, so Dialogue: 0,0:15:32.22,0:15:33.96,Default,,0000,0000,0000,,it's been about, like, six code clubs at this Dialogue: 0,0:15:33.96,0:15:36.55,Default,,0000,0000,0000,,point, or at that point, when I was at Dialogue: 0,0:15:36.55,0:15:38.13,Default,,0000,0000,0000,,work and I wanted to know how this gem Dialogue: 0,0:15:38.13,0:15:39.99,Default,,0000,0000,0000,,worked, I just opened it up. I didn't even Dialogue: 0,0:15:39.99,0:15:42.38,Default,,0000,0000,0000,,think twice about it. Because by that point,\Nit'd Dialogue: 0,0:15:42.38,0:15:44.47,Default,,0000,0000,0000,,become such a habit. It had become so normal Dialogue: 0,0:15:44.47,0:15:47.28,Default,,0000,0000,0000,,to look into how things worked. And having\Nthat Dialogue: 0,0:15:47.28,0:15:49.67,Default,,0000,0000,0000,,frame of mind and that mindset is really,\Nreally Dialogue: 0,0:15:49.67,0:15:51.65,Default,,0000,0000,0000,,important. It really makes you feel a lot\Nmore Dialogue: 0,0:15:51.65,0:15:52.67,Default,,0000,0000,0000,,competent. Dialogue: 0,0:15:52.67,0:15:56.26,Default,,0000,0000,0000,,So, obviously by now, I have fully convinced\Nyou Dialogue: 0,0:15:56.26,0:15:57.83,Default,,0000,0000,0000,,that you do want to start your own code Dialogue: 0,0:15:57.83,0:15:59.21,Default,,0000,0000,0000,,club. But you can't call it code club cause Dialogue: 0,0:15:59.21,0:16:00.66,Default,,0000,0000,0000,,I called that. So you have to find out Dialogue: 0,0:16:00.66,0:16:03.00,Default,,0000,0000,0000,,your own name. But I wanted to review the Dialogue: 0,0:16:03.00,0:16:03.98,Default,,0000,0000,0000,,guidelines. Dialogue: 0,0:16:03.98,0:16:06.40,Default,,0000,0000,0000,,So the first is, manageable code base. For\Nus, Dialogue: 0,0:16:06.40,0:16:08.23,Default,,0000,0000,0000,,it was a hundred lines of code. If you Dialogue: 0,0:16:08.23,0:16:10.95,Default,,0000,0000,0000,,feel like that's too low for you, definitely\Nraise Dialogue: 0,0:16:10.95,0:16:12.52,Default,,0000,0000,0000,,the stakes, but I think having a limit is Dialogue: 0,0:16:12.52,0:16:14.36,Default,,0000,0000,0000,,very important. Dialogue: 0,0:16:14.36,0:16:17.92,Default,,0000,0000,0000,,Two. Understanding that the learning really\Ndoes happen in Dialogue: 0,0:16:17.92,0:16:20.61,Default,,0000,0000,0000,,the digressions and in the conversations. Dialogue: 0,0:16:20.61,0:16:22.74,Default,,0000,0000,0000,,Three, that it's a team effort. Make sure\Nyou Dialogue: 0,0:16:22.74,0:16:24.64,Default,,0000,0000,0000,,go at it with other people, and make sure Dialogue: 0,0:16:24.64,0:16:26.84,Default,,0000,0000,0000,,that you check in and see that everyone is Dialogue: 0,0:16:26.84,0:16:30.79,Default,,0000,0000,0000,,engaged and just as excited and hopefully\Nyou are. Dialogue: 0,0:16:30.79,0:16:33.13,Default,,0000,0000,0000,,Four, to pick a tour guide, to take turns Dialogue: 0,0:16:33.13,0:16:35.33,Default,,0000,0000,0000,,and have someone lead the conversations. It's\Nalso a Dialogue: 0,0:16:35.33,0:16:37.71,Default,,0000,0000,0000,,great opportunity for people to lead and kind\Nof Dialogue: 0,0:16:37.71,0:16:39.32,Default,,0000,0000,0000,,feel like they're, they're taking charge as\Nwell. It's Dialogue: 0,0:16:39.32,0:16:42.69,Default,,0000,0000,0000,,a different type of confidence booster. Dialogue: 0,0:16:42.69,0:16:45.38,Default,,0000,0000,0000,,Five, to find those moments when you can interact Dialogue: 0,0:16:45.38,0:16:46.74,Default,,0000,0000,0000,,with the code, where you can say, how would Dialogue: 0,0:16:46.74,0:16:48.71,Default,,0000,0000,0000,,I do that? How do I feel about that? Dialogue: 0,0:16:48.71,0:16:51.01,Default,,0000,0000,0000,,Even asking that question of, what do you\Nthink Dialogue: 0,0:16:51.01,0:16:52.55,Default,,0000,0000,0000,,of this code and having an opinion is very, Dialogue: 0,0:16:52.55,0:16:53.96,Default,,0000,0000,0000,,very powerful. Dialogue: 0,0:16:53.96,0:16:57.27,Default,,0000,0000,0000,,Six, it doesn't have to be good. You can Dialogue: 0,0:16:57.27,0:16:59.14,Default,,0000,0000,0000,,learn just as much from bad code as you Dialogue: 0,0:16:59.14,0:17:00.87,Default,,0000,0000,0000,,can from good code. Dialogue: 0,0:17:00.87,0:17:03.74,Default,,0000,0000,0000,,Seven, find those knowledge gaps and find\Na way Dialogue: 0,0:17:03.74,0:17:06.04,Default,,0000,0000,0000,,to fill them. And hopefully fill them together. Dialogue: 0,0:17:06.04,0:17:08.74,Default,,0000,0000,0000,,Finally, to, to keep at it and make sure Dialogue: 0,0:17:08.74,0:17:09.96,Default,,0000,0000,0000,,that this is a habit, it's something you do Dialogue: 0,0:17:09.96,0:17:12.40,Default,,0000,0000,0000,,on a weekly basis or a monthly basis. Dialogue: 0,0:17:12.40,0:17:14.38,Default,,0000,0000,0000,,And finally to find interesting code bases.\NYou're gonna Dialogue: 0,0:17:14.38,0:17:17.40,Default,,0000,0000,0000,,find the experience much more enjoyable. Dialogue: 0,0:17:17.40,0:17:21.08,Default,,0000,0000,0000,,So, the question that I had, every single\Nweek, Dialogue: 0,0:17:21.08,0:17:23.44,Default,,0000,0000,0000,,was, how does this get me to an expert? Dialogue: 0,0:17:23.44,0:17:25.16,Default,,0000,0000,0000,,I wanted to feel that moment where I said, Dialogue: 0,0:17:25.16,0:17:27.54,Default,,0000,0000,0000,,yes, now I am so much closer, and I Dialogue: 0,0:17:27.54,0:17:31.54,Default,,0000,0000,0000,,can feel myself growing and getting that cape,\Nfinally. Dialogue: 0,0:17:31.54,0:17:33.86,Default,,0000,0000,0000,,And it didn't really happen quite that way.\NThat Dialogue: 0,0:17:33.86,0:17:37.13,Default,,0000,0000,0000,,transformation wasn't quite as visible and\Nas tangible as Dialogue: 0,0:17:37.13,0:17:39.25,Default,,0000,0000,0000,,I would have liked it to be. And so, Dialogue: 0,0:17:39.25,0:17:40.64,Default,,0000,0000,0000,,I thought a lot about why. I thought a Dialogue: 0,0:17:40.64,0:17:42.89,Default,,0000,0000,0000,,lot about, if I can't feel the change in Dialogue: 0,0:17:42.89,0:17:46.13,Default,,0000,0000,0000,,a very tangible, physical way, how do I know Dialogue: 0,0:17:46.13,0:17:47.86,Default,,0000,0000,0000,,that I'm becoming an expert? Dialogue: 0,0:17:47.86,0:17:51.44,Default,,0000,0000,0000,,And I found this really great infographic\Non Twitter Dialogue: 0,0:17:51.44,0:17:53.81,Default,,0000,0000,0000,,a couple months ago that I repurposed for\Nmy Dialogue: 0,0:17:53.81,0:17:57.56,Default,,0000,0000,0000,,own agenda, that I think really explains the\Nprocess Dialogue: 0,0:17:57.56,0:17:59.77,Default,,0000,0000,0000,,and the result. Dialogue: 0,0:17:59.77,0:18:02.42,Default,,0000,0000,0000,,So this is what information looks like. It\Nlooks Dialogue: 0,0:18:02.42,0:18:05.22,Default,,0000,0000,0000,,like Skittles. And information is just all\Nthese little Dialogue: 0,0:18:05.22,0:18:08.65,Default,,0000,0000,0000,,data points that are separate and isolated,\Nthat happen Dialogue: 0,0:18:08.65,0:18:10.75,Default,,0000,0000,0000,,to kind of relate and, just by being in Dialogue: 0,0:18:10.75,0:18:12.90,Default,,0000,0000,0000,,the same bucket. Dialogue: 0,0:18:12.90,0:18:15.44,Default,,0000,0000,0000,,And then eventually, you're able to connect\Nthese little Dialogue: 0,0:18:15.44,0:18:18.39,Default,,0000,0000,0000,,dots, and you're able to have knowledge. And\Nknowledge Dialogue: 0,0:18:18.39,0:18:20.61,Default,,0000,0000,0000,,is being able to tell a story. Being able Dialogue: 0,0:18:20.61,0:18:23.47,Default,,0000,0000,0000,,to say, I can start from that yellow skittle Dialogue: 0,0:18:23.47,0:18:25.28,Default,,0000,0000,0000,,in the corner, and if I go right, I Dialogue: 0,0:18:25.28,0:18:26.47,Default,,0000,0000,0000,,can get to that green one, and then I Dialogue: 0,0:18:26.47,0:18:28.63,Default,,0000,0000,0000,,go, shoom, go all the way down to orange, Dialogue: 0,0:18:28.63,0:18:30.40,Default,,0000,0000,0000,,and then if I make a left, or, a Dialogue: 0,0:18:30.40,0:18:32.64,Default,,0000,0000,0000,,right I'm at green. And then if I make Dialogue: 0,0:18:32.64,0:18:34.23,Default,,0000,0000,0000,,a right again, I'm at red. And that's how Dialogue: 0,0:18:34.23,0:18:35.63,Default,,0000,0000,0000,,I get from yellow to red. Dialogue: 0,0:18:35.63,0:18:39.73,Default,,0000,0000,0000,,It's understanding that, that path. Dialogue: 0,0:18:39.73,0:18:41.53,Default,,0000,0000,0000,,And then wisdom is saying, you know what,\NI Dialogue: 0,0:18:41.53,0:18:43.14,Default,,0000,0000,0000,,don't need to go through all those skittles.\NI Dialogue: 0,0:18:43.14,0:18:44.70,Default,,0000,0000,0000,,can just go straight from yellow to red if Dialogue: 0,0:18:44.70,0:18:46.39,Default,,0000,0000,0000,,I make my own path. And you know, I Dialogue: 0,0:18:46.39,0:18:47.76,Default,,0000,0000,0000,,don't even need that path to be straight.\NIt's Dialogue: 0,0:18:47.76,0:18:49.94,Default,,0000,0000,0000,,gonna be all straight, cause I'm a rebel. Dialogue: 0,0:18:49.94,0:18:51.90,Default,,0000,0000,0000,,And so, this was kind of the journey of Dialogue: 0,0:18:51.90,0:18:54.67,Default,,0000,0000,0000,,reading code together. The information and\Nall those little Dialogue: 0,0:18:54.67,0:18:56.74,Default,,0000,0000,0000,,data points come from all the code bases that Dialogue: 0,0:18:56.74,0:18:58.31,Default,,0000,0000,0000,,you get to read, from all the things that Dialogue: 0,0:18:58.31,0:19:01.02,Default,,0000,0000,0000,,you're exposed to that you've never seen before. Dialogue: 0,0:19:01.02,0:19:03.35,Default,,0000,0000,0000,,Those points where things connect and you\Nhave knowledge Dialogue: 0,0:19:03.35,0:19:05.91,Default,,0000,0000,0000,,and you have these stories and these paths,\Nthat Dialogue: 0,0:19:05.91,0:19:08.85,Default,,0000,0000,0000,,comes from having really good code reading\Nsessions. That Dialogue: 0,0:19:08.85,0:19:11.29,Default,,0000,0000,0000,,comes from working with other people who give\Nyou Dialogue: 0,0:19:11.29,0:19:14.02,Default,,0000,0000,0000,,their input, from asking those questions that\Nyou're gonna Dialogue: 0,0:19:14.02,0:19:16.66,Default,,0000,0000,0000,,ask that are very insightful, and it also\Ncomes Dialogue: 0,0:19:16.66,0:19:20.30,Default,,0000,0000,0000,,from leveraging everyone else's experiences.\NSo when I go Dialogue: 0,0:19:20.30,0:19:21.57,Default,,0000,0000,0000,,to work and I use a gem, I can Dialogue: 0,0:19:21.57,0:19:23.11,Default,,0000,0000,0000,,say, hey, I've seen this before. Dialogue: 0,0:19:23.11,0:19:25.05,Default,,0000,0000,0000,,When Dan goes to work and, and uses a Dialogue: 0,0:19:25.05,0:19:27.03,Default,,0000,0000,0000,,specific method, he can say, I've done that\Nbefore. Dialogue: 0,0:19:27.03,0:19:29.70,Default,,0000,0000,0000,,And, in doing that, we're finding all these\Nconnections Dialogue: 0,0:19:29.70,0:19:31.97,Default,,0000,0000,0000,,that would have been way harder to find on Dialogue: 0,0:19:31.97,0:19:33.29,Default,,0000,0000,0000,,our own. Dialogue: 0,0:19:33.29,0:19:35.25,Default,,0000,0000,0000,,And then, finally, we'll be able to see that, Dialogue: 0,0:19:35.25,0:19:37.80,Default,,0000,0000,0000,,of all that noise, of all those patterns and Dialogue: 0,0:19:37.80,0:19:40.70,Default,,0000,0000,0000,,designs and concepts and all those lines of\Ncode, Dialogue: 0,0:19:40.70,0:19:42.26,Default,,0000,0000,0000,,the ones that we really care about are just Dialogue: 0,0:19:42.26,0:19:43.84,Default,,0000,0000,0000,,yellow and red. And those are the ones that Dialogue: 0,0:19:43.84,0:19:45.92,Default,,0000,0000,0000,,keep popping out, over and over again, over\Ntime. Dialogue: 0,0:19:45.92,0:19:48.17,Default,,0000,0000,0000,,And eventually we have wisdom and we're much\Ncloser Dialogue: 0,0:19:48.17,0:19:51.48,Default,,0000,0000,0000,,to being experts. Dialogue: 0,0:19:51.48,0:19:54.47,Default,,0000,0000,0000,,So, these are just a handful of the code Dialogue: 0,0:19:54.47,0:19:56.58,Default,,0000,0000,0000,,bases that we've read. If you're interested\Nin looking Dialogue: 0,0:19:56.58,0:19:58.02,Default,,0000,0000,0000,,at them. I think most of them are about Dialogue: 0,0:19:58.02,0:19:59.55,Default,,0000,0000,0000,,a hundred lines. I think one or two may Dialogue: 0,0:19:59.55,0:20:02.24,Default,,0000,0000,0000,,be a little bit bigger. But take a look, Dialogue: 0,0:20:02.24,0:20:04.14,Default,,0000,0000,0000,,and I'd love to hear kind of your stories Dialogue: 0,0:20:04.14,0:20:06.24,Default,,0000,0000,0000,,and see what you get from that. Dialogue: 0,0:20:06.24,0:20:09.26,Default,,0000,0000,0000,,That is my website, bloggytoons dot com slash\Ncode-club. Dialogue: 0,0:20:09.26,0:20:10.80,Default,,0000,0000,0000,,There's a page that has links to all of Dialogue: 0,0:20:10.80,0:20:14.76,Default,,0000,0000,0000,,these gems and a few other ones as well. Dialogue: 0,0:20:14.76,0:20:16.65,Default,,0000,0000,0000,,That's the end. That's my handle. I pretty\Nmuch Dialogue: 0,0:20:16.65,0:20:19.40,Default,,0000,0000,0000,,Tweet, like, mostly about programming and,\Nlike, cake. So Dialogue: 0,0:20:19.40,0:20:22.77,Default,,0000,0000,0000,,you've been warned. But, and that's the website\Nagain. Dialogue: 0,0:20:22.77,0:20:25.16,Default,,0000,0000,0000,,So I think that's pretty much it. Any questions?