BookBytes

A book club for developers.

BookBytes

BookBytes is a fortnightly (or biweekly) book club for developers. Each episode the hosts discuss part of a book they've been reading. And they also chat with authors about their books. The books are about development, design, ethics, history, and soft skills. Sometimes there are tangents (also known as footnotes).

Hosts

Adam Garrett-Harris

Jason Staten

Jen Luker

Safia Abdalla

Subscribe

10: The Imposter's Handbook: Introduction and Computation

6/25/2018

They talk about the first chapter, their computer science backgrounds, genetic algorithms, Star Trek, their first computers, and what they're looking forward to in the book.

Hosts

Transcript

Help improve this transcript on GitHub

(Intro music: Electro Swing)

0:00:12.6
Adam Garrett-Harris

Hello, and welcome to BookBytes, a book club for developers. This week we’re talking about… Hey, where did my book go? Oh, we’re talking about “The Imposter’s Handbook” which is a CS primer for self-taught programmers.

0:00:26.3
Jason Staten

I

0:00:26.6
Adam Garrett-Harris

I had- Go ahead. We’ll go ahead and say our names.

0:00:28.6
Jason Staten

Well, I was gonna

0:00:29.7
Adam Garrett-Harris

Yeah.

0:00:30.2
Jason Staten

This one is actually, I think primer ( ‘/primər/ ) is the term.

0:00:34.7
Jen Luker

No, it’s primer ( ˈprīmər/ ).

0:00:35.7
Adam Garrett-Harris

Primer? ( ‘/primər/ )

0:00:36.0
Jason Staten

Go look this up.

0:00:37.0
Adam Garrett-Harris

No, I’ve heard both pronunciations.

0:00:38.3
Jason Staten

‘Cause

0:00:38.5
Adam Garrett-Harris

I think it may be one of those things where both are correct.

:00:40.6
Jason Staten

‘Cause primer ( ‘/primər/ ) is like a… It’s an elementary textbook that serves as an introduction.

0:00:45.5
Jen Luker

Mm-hmm. In England.

0:00:46.6
Jason Staten

And the other one is like a substance.

0:00:48.9
Adam Garrett-Harris

Hmm.

0:00:49.4
Jason Staten

I don’t know.

0:00:49.8
Adam Garrett-Harris

Interesting.

0:00:50.6
Jason Staten

Google says primer ( ‘/primər/ ). I checked that today ‘cause I was

0:00:52.6
Safia Abdalla

Oh wow, you’re right. That is so interesting.

0:00:53.2
Jason Staten

Not wanting to botch it.

0:00:55.7
Jen Luker

Well…

0:00:55.8
Adam Garrett-Harris

Ah, it says “audio unavailable” so I can’t even listen to the pronunciation.

0:00:59.0
Safia Abdalla

The accents are different on the i, in the pronunciation scheme. It’s an interesting tidbit, so

0:01:02.9
Adam Garrett-Harris

Okay.

0:01:05.0
Safia Abdalla

Depending on the context, whether it’s fluid or a textbook, it’s pronounced differently. Fun fact!

0:01:11.5
Adam Garrett-Harris

Yeah, so

0:01:12.0
Jen Luker

Interesting.

0:01:12.3
Adam Garrett-Harris

Podcasts are one of those places where you realize you’re pronouncing things wrong

0:01:16.6
Jen Luker

For your entire life.

0:01:16.3
Adam Garrett-Harris

‘Cause you’ve never said it out loud, you’ve only read it. Yeah.

0:01:19.3
Safia Abdalla

Yeah.

0:01:19.7
Adam Garrett-Harris

There may be words that you’ve never pronounced out loud.

0:01:22.3
Safia Abdalla

That’s true.

0:01:23.0
Jason Staten

Yes.

0:01:23.0
Safia Abdalla

Also just goes to show how complicated language is that same spelling, similar kind of idea, but different pronunciations.

0:01:31.4
Adam Garrett-Harris

Yeah, I don’t think I’d ever pronounced Hermione until the movies came out and I was like, “What?” I’d always said it her-me-own.

0:01:37.7
Safia Abdalla

That’s so interesting.

0:01:37.7
Jason Staten

At least I say. (Inaudible: 0:01:39.5 Ethereum?) right now, so.

0:01:41.3
Adam Garrett-Harris

Okay, so it’s a CS primer ( ‘/primər/ ) for self-taught programmers.

0:01:44.3
Jen

(laughs)

0:01:44.5
Jason Staten

Yeah.

0:01:45.5
Jen Luker

Kinda want to start this over now.

0:01:47.2
Adam Garrett-Harris

I’m Adam Garrett-Harris.

0:01:48.4
Jen Luker

I’m Jen Luker.

0:01:49.4
Safia Abdalla

I’m Safia Abdalla.

0:01:50.4
Jason Staten

And I’m Jason Staten.

0:01:51.4
Adam Garrett-Harris

Awesome. So, since this is a book that’s about computer science for self-taught programmers, we want to talk about our CS backgrounds. So, who wants to go up first?

0:01:59.4
Jen Luker

I’ve probably been doing it the longest. So, I’ll go first.

0:02:02.5
Adam Garrett-Harris

Okay.

0:02:03.3
Jen Luker

I started programming when I was a kid on my Commodore 64, I learned out of magazines. BASIC was all the rage at the time, and I think the biggest thing I did was make a crappy Donkey Kong when my parents wouldn’t buy it for me, but I think I’ve mentioned that before.

0:02:16.7
Adam Garrett-Harris

Oh, yeah.

0:02:17.3
Jen Luker

However, I did actually drop it in my Jr. High and High School years, for the most part. I had to take an A+ certification class in high school but it wasn’t really until college that I got pretty deeply into computer science. I was programming, you know, the very first classes, Matlab, C++, Java, and a lot of websites. GeoCities and AngelFire and all of those were my friends, I’d basically posted a website on every single one of them at some point. I still don’t have my official Computer Science Degree. The goal when I started college was to double major, one in computer science was an emphasis in software engineering, and the other was a major in applied mathematics with a minor if physics, but because of the fact that it’s a combo bachelor/master program, I won’t actually graduate with any degrees until I get to the end, which will then give me 2 bachelors, 2 masters, and only a year left to my doctorate of artificial intelligence programming.

0:03:15.1
Adam Garrett-Harris

Wow.

0:03:15.1
Jen Luker

But Lord knows when that’s actually gonna happen so… This book is fantastic for me because of the fact that I don’t have all of that yet, I’m still learning.

0:03:24.5
Adam Garrett-Harris

Yeah, so I have a background in computer science, I did web pages when I was a kid and I did some TI-83 calculator programming in high school, and then I took 2 years of computer science in high school, and then I got a computer science bachelor's degree, but I still feel like I have a lot of gaps in my CS knowledge, so I still feel like this is a good book for me.

0:03:41.9
Safia Abdalla

I have a similar story to Adam. It’s debatable whether it would be called programming, but I call it programming. Building HTML, web pages when I was 11 years old, and just kept tinkering with that until I got into Python and Machine Learning when I was 13 and I was teaching myself that independently throughout high school and I also took some systems and data structures and database courses when I was in high school. Then I went and got a CS degree at an engineering school. So, formally educated as well.

0:04:14.6
Jason Staten

Likewise, I’m with both Adam and Safia. My origins fall back to HTML programming on GeoCities. I recall being something like 10 years old and showing my dad how to write a webpage and he was just blown away. And past that I got into the Y-hacker scene, which is a hacker group for yahoo messenger when I was about 13 years old, and there were all these people who would go into yahoo messenger and make gradients in the messages that they sent, they could send boot codes and wipeout an entire chat channel and I wanted to get into that.

0:04:46.4
Adam Garrett-Harris

(laughs)

0:04:48.1
Jason Staten

And so, I earned how. I went and pirated myself a copy of Visual Studio… Actually it wasn’t even Visual Studio then, it was Visual Basic 4 that I hopped on and started building my own apps for it, and getting involved with that community a bit, although some of the people that I was involved with did much more malicious things, I was just having a good time. Post that,making flash games when it was macromedia flash, and then in high school took one self-study programming class because my computer teacher didn’t know what to do with me.

0:05:18.3
Safia Abdalla

(laughs)

0:05:18.6
Jason Staten

Then in 2007, I did go and get some formal education, I went to Neumont University and it was a 2 year bachelor degree where I studied year round for 8 quarters, and they were primarily C+ and Java focused so they didn’t touch on some lower level things such as pointers and compilers. I never had to write a lexer or a parser for school, but I did cover a couple of things like algorithms and Big O which had a pretty high retake rate in school, that was one thing I know that people struggle with a lot at Neumont and it was something like 40% had to retake the class and I made it through that so I felt pretty accomplished. Then I went into industry and here I am now.

0:06:02.4
Safia Abdalla

Hurrah!

0:06:03.6
Adam Garrett-Harris

So, do you feel like you have gaps in your…

0:06:06.5
Jason Staten

Oh, I definitely do. Like I said, they tried to strike a balance between the CS theory and what was applicable for the field, so I am feeling some gaps when I look through the table of contents here, I see things that the terms are familiar but I have never actually had a chance to dive into them, so I’m really excited to go through “The Imposter’s Handbook” and have a reason to go and learn about those things.

0:06:31.4
Safia Abdalla

I agree with, yeah, I agree with Jason. I have a familiarity with some concepts at a surface level, but I’ve only ever had to deeply engage with topics in certain courses. So, a lot of these items in the table of contents are piquing my curiosity.

0:06:49.6
Adam Garrett-Harris

Yeah, and I think it’s going to be fun for me to go back to some of these topics that I wasn’t that interested in when I was in school and I didn’t have a lot of experience to build on back then, I was just learning a bunch theory without any real world experience, and so now that I have that, it might be interesting to see this stuff and see how it can actually apply on the job and make me a better programmer in my career.

(Typewriter Dings)

0:07:12.7
Adam Garrett-Harris

Yeah, so let’s get into the forewords and the preface. What did you see in there?

0:07:18.4
Safia Abdalla

Jen, I think you had something?

0:07:20.2
Jen Luker

I did. I had a couple things. So, in the foreword by Chad Fowler, he gives this kind of list of, “I think most of my success in the field of computer software development comes from my belief that: ...” And it gives this long list of 8 items, but number 5 and really number 8 on this list, really resonated with me. Number 5 said, “All of the hard sounding stuff that college programmers say, is just chunks of knowledge with names I don’t know yet.” And number 8 is, “Finally, and most important, somehow I get good work done and it doesn’t fall apart. All the stuff I don’t know must be just a bonus on top of what I’ve already learned.”

0:07:54.3
Adam Garrett-Harris

Hmm.

0:07:55.0
Jen Luker

And I feel like the reason I resonate so deeply with 5 is I’ve gotten really into the habit of whenever someone uses a term I don’t know, to just ask what it is, and most of the time, once they explain what it is I’m like, “Oh yeah, oh yeah. I’ve totally been doing that for years, I actually know a lot about it. I just didn’t know that’s what it was called.” So, I feel like a lot of the time, it’s just that I don't have the jargon to back up what it is I already know, and number 8 really resonates because in the end, if your stuff works, if your code works, if it does what it’s supposed to do and you can move on to the next story then you’re doing good. You are a programmer whether you know these things or not. It’s not that you couldn’t, you know, be improved by understanding and knowing these things, but you are a programmer and you are getting things done.

0:08:45.6
Adam Garrett-Harris

Yeah, number 5 stuck out to me as well because it says “chunks of knowledge that you don’t know yet. Names that you don’t know yet” {“...chunks of knowledge with names I don’t know yet.”}, it reminds me a lot of this book about how to learn, the book is called “A Mind For Numbers”, and it’s just about how to learn hard things. So, math is an example of a hard thing, and you can only hold so many things in your brain at once, it’s like juggling, and so you have to chunk those these down and take this entire concept and put it in one chunk with a name, and now you can just use that name that represents a whole bunch of stuff that you used to have to juggle before, and now you can think about other things as well. Does that make sense?

0:09:22.8
Jen Luker

I also feel like it ties back to the first book we read “Apprenticeship Patterns” where the purpose of the book was to give us a common language to explain concepts and throughout science and, you know, philosophy we’ve given names to complex concepts in order-

0:09:43.4
Adam Garrett-Harris

Yeah.

0:09:43.4
Jen Luker

To simplify communication. I feel that, you know, that’s very much where we land here is that it is a chunk of information. It’s very much stuffing a whole bunch into a couple of words, and it’s just that we haven’t developed that term yet as part of our language.

0:10:04.5
Jason Staten

Those both definitely align with my notes. I have a note about us talking about the “Be the Worst” pattern, and if I were to go tell somebody who hadn’t read “Apprenticeship Patterns” before to go be the worst on their team, they may take it the wrong way. Also, programming terms can help things be Googleable. For example, if you’re wanting to go and Google “Monad” instead of “Code Burrito” you’re going to get much more relevant results with the term that it’s actually defined by. And I loved a recent blog post that has been cycling around called “conversations with a six-year-old on functional programming” where a developer explains to his six-year-old what free theorems are and has a description of functions as machines and he explains it as a machine that takes in an input and gives a specific output every time you give it something and that’s what clicked for the six-year-old, that he was able to explain it so well.

0:10:55.3
Safia Abdalla

Yeah, I really liked what you touched on there about simple explanations. It relates to point number 4 highlighted in this list which is, “Everything starts with this simple foundation and grows as simple blocks on top” and from my experiences as a computer science major, I think one of the more important things about my Computer Science Degree is not the fancy sounding words or the lingo, I think it’s actually the overarching concepts and understanding that you can develop about computing through the like, 4 years or however many it is of your program. I kind of have (laughs) strong opinions about computer-y words because I think, oftentimes, people who throw around hard-sounding stuff or lingo, tend to use it as a way to either A) Intentionally make other people inferior or less intelligent, or B) Make themselves seem more intelligent by using words or terminology that is specific to a particular industry. See, I think like, if I had to summarize the point of a 4-year college CS degree, I’d say it’s not to learn all of the lingo and the fancy words, it’s like you learn all of that stuff when you’re in your 4 years and then once you’re done you look back at it and you’re like, “Okay, what are the overarching principles above all of the lingo and the fancy words?” And those are also things you can pick up if you’re self-taught and just really introspective and diligent about how you learn software, or if you just like, go straight to industry. So that’s why I really like number 4, because I feel like number 4 is the real point of a college CS degree in my opinion and number 5 is, I think, sometimes like the stereotype that comes from like,very realistic occurrences of people, maybe weaponizing is a strong word, but people weaponizing their computer science degrees and using them as a way to claim they’re better programmers or software or engineers because of the degree. Just my ramble.

0:13:00.8
Adam Garrett-Harris

Yeah! You know, like Jen, when you said you always ask what a word means when you don’t know. When I’m explaining something to a fellow programmer I like to ask them if they’re familiar with it before I just start using it.

0:13:12.3
Jen Luker

Mm-hmm (Affirmative).

0:13:13.1
Adam Garrett-Harris

Because a lot of times people are afraid to ask, and I don’t want to explain it if they already know it.

0:13:16.5
Jen Luker

So, how many of you are Star Trek: The Next Generation fans?

0:13:19.5
Safia Abdalla

Me!

0:13:20.5
Jen Luker

Yay! Okay, so do you remember the episode “Darmok”?

0:13:24.1
Safia Abdalla

Yes.

0:13:24.0
Jen Luker

Where Picard is-

0:13:25.8
Safia Abdalla

Spoiler Alert!

0:13:27.3
Jen Luker

Trying to make contact- Yes, I know! So, Piccard is trying to make contact with a um…

0:13:33.5
Safia Abdalla

Alien race… person.

0:13:34.4
Jen Luker

Yes, an alien race that doesn’t… They can’t find a way of communicating. The translators aren’t helping them, they’re just spouting nonsense like, “Darmok over the water” and it takes the entire episode to finally figure out, after many many things happen, that the race actually speaks in metaphor.

0:13:55.8
Adam Garrett-Harris

Hmm.

0:13:56.1
Jen Luker

So, when they are talking about Darmok over the water, they’re actually talking about the story of Darmok and when he went over the water and all of the like, fableized lessons that they learned because of that story. So, the entire story is part of common knowledge, and I feel like when you mentioned the word “Slang” though you didn’t mean to, Safia, it means something very similar, that it becomes to ingrained in how you speak and you think of it that those that aren’t ingrained and don’t speak in that fashion have a difficult time understanding what’s going on, thus the common language becomes more important when you’re in that realm, and trying to get into that realm can be complicated because of that language barrier. And like you said, sometimes that can be used on purpose in order to keep people out and sometimes it’s just strictly, that’s the current world that they’re living in, and that’s what they use, and it’s easier for us to see ourselves and assume that other people know what we know than it is to realize everyone is unique, we’ve gotten our paths…. And no path is exactly the same, and we’ve all learned something different along the way, and we’ve all picked up something different along the way. So, but it was just one of those things that harkens back to that episode for me, a lot. It was like, the most popular episode ever of that series.

0:15:19.7
Safia Abdalla

Yeah.

0:15:21.1
Jen Luker

Was trying to learn to communicate with a completely different form of language, and not just syntax but metaphorical versus spelled out.

0:15:31.3
Safia Abdalla

Yeah. Another thing that makes communication, or just language, difficult in the field of computing in general is that he same overarching concept is translated in different ways depending on which aspect of computing you’re talking about. So, for example, like, a pretty general, I think… I guess aconcept or just a pattern, in computing is the notion of doing any work until you absolutely have to. It’s used a lot as a way to improve the performance of the machine. Work takes effort, so just don’t do it until you have to. And you know, depending on whether you’re in operating systems, whether you’re in graphics, whether you’re in web applications, that same overarching concept of don’t do any work until you absolutely have to in your program, is translated into different terms and concepts within each of those sub fields. So, like, just within, I guess general field of computer science, even the sub fields themselves sometimes have trouble communication with each other because the language is targeted towards a specific set of challenges and perspectives.

0:16:40.8
Jen Luker

Like the word “component”, in every different form of science it means something slightly different.

0:16:45.1
Safia Abdalla

Mm-hmm (affirmative).

0:16:46.3
Jen Luker

You know, whether-

0:16:46.3
Adam Garrett-Harris

Yeah. Component is just like, “thing.” It’s a thing.

0:16:48.6
Safia Abdalla

Yeah.

0:16:48.6
Jen Luker

It’s “the thing”, right? But every “thing” is a little bit different and every wrapper around it is just a little bit different, but everybody uses the word component, and we use the word component even in specifically JavaScript for different things, too. So, it can even be a word that’s overused to the point of losing its original meaning.

0:17:07.7
Adam Garrett-Harris

So, in the first foreword by Scott Hanselman, I like how he says “Software engineering is…” He gives the definition of software engineering and computer science and how those are two completely different things. “Software engineering is [about] project management and testing and profiling and iterating and shipping.” I think it’s really focused on shipping. “Computer science is about the theory of data structures, (and also some) mathy things.”

0:17:30.5
Safia Abdalla

(laughs)

0:17:31.3
Jen Luker

I like mathy things.

0:17:32.4
Safia Abdalla

Yeah, I would almost say that… So, I just recently finished my degree so a lot of this talk about computer science is really fresh on my mind, especially as I’m trying to like be a little bit more introspective about what just happened over the past 4-ish years; and, you know I mentioned that I was taking computer science classes in highschool and that I was self-taught and like reading books, and hacking on my own on the side, and I think the biggest thing that I left college CS with was like, a computational problem solving mindset. I feel like I’ve gotten to a point where I… Like, my brain’s been rewired in a really weird way to where I just problem solve and approach programming differently than when I did before college and even now when I work on projects with the intent of applying what I learned versus when I’m just like, being a little careless about it, I notice a difference in my approach. I hate it when people say that computer science is about like data structures and Big O notation and all that, because it definitely is, but I know that when I was like, looking into going into a computer science degree and that was the stuff I was hearing, it kind of made me disinterested in it.

0:18:46.7
Adam Garrett-Harris

Mm-hmm (affirmative).

0:18:47.4
Safia Abdalla

And I put this out to say that I think there’s like, a lot of tongue-in-cheek commentary about computer science being like, data structures and BIg o and stuff and that’s like the first 2 years, or first year of your degree, or maybe just like the first 3 months of your degree depending on what college or university you go to, but there’s like, definitely a whole realm of really applicable and interesting stuff that goes beyond that. So, like I said-

0:19:09.2
Adam Garrett-Harris

Yeah, like I even had a class called “Software Engineering.”

0:19:12.8
Safia Abdalla

I did, too. Yeah. I had 2 classes I took that were SE type stuff. I know this is kind of about learning to… The book is kind of… It seems to be aimed at filling in the gaps for people who haven’t received a CS degree, but I do think there’s like value in the CS degree, but it’s like a different kind of value. Like, I don’t necessarily think that you can compare the two.

0:19:38.2
Jason Staten

I would say that even Scott Hanselman has a key word that he uses in the book and we’ve said it’s a few times, and that’s being “gap.” So, it’s knowing that even though he doesn’t know everything, you can’t do engineering without any computer science knowledge. And likewise, simply computer science on its own without any application also isn’t all that valuable. It’s just a bunch of theory. So, it’s the intersection of both of them that allows us to actually make problems solvable and be beneficial to everybody. So, I wouldn’t discount either one or the other.

0:20:19.3
Safia Abdalla

I think, looking back, one of the ways that I was able to make my CS degree more useful to me is by actively applying what I was learning by contributing by open source, starting to do internships and part time jobs and stuff early, and like, maintaining a healthy balance and making sure that like, the stuff I was learning wasn’t just in the classroom. So, I feel like I kind of got that balance between application and theory pretty well while I was learning.

0:20:50.1
Adam Garrett-Harris

Yeah, that’s cool. Alright, anything else from the forewords or the preface?

0:20:53.5
Jen Luker

Did anyone see the purpose of the image that he chose for the cover?

0:20:58.6
Adam Garrett-Harris

Yeah.

0:20:59.5
Jen Luker

So, I’m a space nerd to the core, so I’m going to read that really fast, just because I thought it was crazy cool. So, “The image used for the cover of this book (and the inspiration for the splash image on the website) comes from NASA/JPL: The image is entitled HD 40307g, which is a ‘super earth’: Twice as big in volume as the Earth, HD 40307g straddle the line between ‘Super Earth’ and ‘mini-Neptune’ and scientists aren’t sure if it has a rocky surface or one that’s buried beneath thick layers of gas and ice. One thing is certain, though: at eight times the Earth’s mass, its gravitational pull is much, much stronger.” One of the reasons for the purpose of this poster was to try to give an idea of what it would be like to travel to different planets and what those different adventures would be like, and he felt that the cover of this photo was what he felt like when he was learning to program. “It was just a wild rush of freakishly fun new stuff that was intellectually challenging while at the same time feeling relevant and meaningful.” So he felt like it was also the same way when he wrote the book, it was just the skydiving to an unknown planet, and I really love that idea, because every time I’m learning something new I have that same feeling. You know? You just… You can’t… I can’t just, you know, knit my toes in for 2 seconds and step out, I actually need to just jump off that plane and dive in wholeheartedly and get the rush from it, as well. So, I’m hoping to do the same with the book.

0:22:27.2
Safia Abdalla

Yay.

0:22:27.2
Jason Staten

As with anything that’s extreme, there’s always a risk involved and one of them that Rob calls out early in the preface is “spreading ignorance is my true nightmare.” And I read that, and I liked that line and I wanted to know, what were all of your opinions of that statement?

0:22:46.9
Jen Luker

I highlighted it in the book I wrote in my book for that line. (laughs)

0:22:50.8
Safia Abdalla

Yeah. I’ve been writing a lot of blog posts recently, and the blog posts have mostly been intended as personal learning logs/content that people can consume publicly, and because I kind of write them as personal learning logs and just my own notes and stuff, sometimes I will write something out and publish it that isn’t necessarily correct, and I’ve been called out on it. In some ways very harshly and inappropriately, and in some ways very well. It’s been an interesting experience. I don’t know, it’s not intentionally spreading ignorance, it’s just I’m unaware and I try my best to express that I’m not totally sure about the conclusion that I’m drawing, but when I read that statement, and it was kind of in a similar context, too. He was discussing somebody who had written a blog post and in the blog post made a statement that was a little inaccurate, and got called out for it. I think that tends to happen a lot, especially because in the tech community we write and share so much knowledge with each other, you’re bound to like, make a mistake or 2. So it resonated with me from very personal direct experience because I was in a similar situation.

0:24:05.0
Jen Luker

So, when I was 15 I had my first job working in tech support and I used to go back and hang out with the programmers that were writing the software in which I was supporting, and it was very frustrating to me, because I desperately want to learn, how many of them just kind of looked at me with sad eyes and said, or even angry eyes and said, “I spent 4 years learning this stuff, you can do the same thing, too.” And would just shut down the conversation and walk away. The fact that we have the internet at this point, in order to share this information, that blog posts are shared the way that it is, it was never like that before. It was very hard earned and it was very proprietary and secret knowledge that no one was ever going to share. So, there was a whole lot of gatekeeping before the internet, a lot harder than it is with the internet, I can tell you. So, it’s a lot better than it was.

0:24:58.3
Safia Abdalla

Yeah, can I ask a totally intrusive question?

0:25:01.2
Jen Luker

Please, do.

0:25:01.7
Jason Staten

Yeah.

0:25:01.7
Adam Garrett-Harris

Yeah.

0:25:02.5
Safia Abdalla

What year was it when you were 15? (laughs)

0:25:05.5
Adam Garrett-Harris

(laughs)

0:25:06.0
Safia Abdalla

I’m sorry!

0:25:08.3
Jen Luker

Safia!

0:25:08.3
Safia Abdalla

You don’t have to say, we can cut this out.

0:25:10.9
Jen Luker

I’m 36, so when I was 15, it was like, 1996? Yeah, 1997.

0:25:19.1
Safia Abdalla

Okay.

0:25:19.7
Jen Luker

So, the internet was very, very new.

0:25:21.5
Safia Abdalla

Okay, I just wanted context into what timeline I was thinking about, or should be thinking about.

0:25:27.0
Jen Luker

Yeah…

0:25:28.1
Safia Abdalla

Thank you.

0:25:29.0
Jen Luker

No problem. And you don’t have to cut this, it’s fine. So, yeah. It’s just that it was not nearly as accessible, the knowledge was not nearly as accessible as it is now. And harkening back to a conversation that i had with Kyle Shevlin recently about perfectionism and how it’s difficult sometimes for people, like me, to contribute to things or to make comments or to review PRs because, what if I make a mistake? What if I tell them something wrong? What if I submit something that’s really awful? You know? Things like that, and his big thing at that point was, just submit the PR and let people help by educating you, making suggestions, and improving the code together, and I feel like we’re at a point in this world where we can do that by putting out there what we don’t know, or what we think we might know, even if we’re wrong, we do get that feedback which shouldn’t be in an inappropriate fashion but it does help teach us the things that we are interested in right now that we may not know, which makes it a better lesson even.

0:26:36.9
Safia Abdalla

I am super excited to dive into the first chapter.

0:26:40.3
Jen Luker

(laughs) Me, too!

0:26:41.1
Adam Garrett-Harris

Yeah! Let’s go for it!

0:26:42.8
Safia Abdalla

‘Cause I nerded out hard on it.

0:26:45.0
All

(laughing)

0:26:45.7
Jen Luker

Oh, good.

(Typewriter Dings)

0:26:48.1
Adam Garrett-Harris

Okay, so the first chapter is computation, and what were you nerding out about?

0:26:53.1
Safia Abdalla

So, I wouldn’t say... When I was in highschool I really liked my computer science classes, but I also really liked my biology classes and one of the things that I was particularly interested in was the way that cells and biological systems in general enforced order and had algorithmic kind of behavior to them, and I loved the first chapter of the book and the way it approached thinking about the universe as a computational system because that’s really what it is. It’s a set of predefined algorithms working in isolation to accomplish a larger goal. So, I totally dorked out on that introduction and the first analogy that it kind of drew was around cicadas.

0:27:45.4
Jen Luker

I loved that.

0:27:45.5
Safia Abdalla

Did I pronounce that right?

0:27:46.4
Jen Luker

Yes.

0:27:47.1
Adam Garrett-Harris

I think so.

0:27:47.6
Safia Abdalla

Yes.

0:27:47.6
Jason Staten

Yep.

0:27:48.4
Safia Abdalla

They’re like, those super annoying bugs that come out every couple of years during the summer to mate and, I don’t want to spoil the book, I feel like I need everyone to read it, but the book was talking about predatory waves and how there’s this evolutionary adaptation that they have with respect to the cycles at which the cicadas will come out and how it’s designed to minimize the chance that they will either be in contact with predators or be in contact with other species of cicada, and at the center of that cycle is the notion of prime numbers which can only be divided by 1 and themselves, so it makes it really difficult for those numbers to overlap when they’re in cycles. Cicadas come out, I think like every 7 years and every 13 years, both of which are prime numbers. And-

0:28:46.1
Adam Garrett-Harris

Yeah, it’s 13 and 17 for these two species.

0:28:50.1
Safia Abdalla

Oh, and 17.

0:28:50.1
Jen Luker

He does mention the 7 year. It’s 7 years, 13 years and 17 years are the ones that are most common.

0:28:55.2
Adam Garrett-Harris

Ooh, okay.

0:28:55.2
Safia Abdalla

Okay. And it was just so cool ‘cause it kind of shows how there’s like, again, these like overarching concepts, like the uniqueness of prime numbers that can be applied in different contexts, whether it’s like encryption or cicadas trying to figure out when the best time to breed would be, and I loved that so much because math works out so perfectly in all these different places, it’s so much fun! (laughs)

0:29:19.9
Adam Garrett-Harris

(laughs)

0:29:21.0
Jen Luker

I know! I had the exact same feeling. I am actually going to spoil the book, though.

0:29:25.2
Safia Abdalla

Okay.

0:29:25.9
Adam Garrett-Harris

Yeah, I’m going to assume that they’ve read it or they don’t want to at this point.

0:29:29.8
Jen Luker

Right?

0:29:30.2
Safia Abdalla

Okay.

0:29:30.3
Jen Luker

So, “Since most predators have a two-to-ten-year population cycle, the twelve-year cicadas would be a feast for any predator with a two-, three-, four-, or six-year cycle. By this reasoning, any cicada with a development span that is easily divisible by the smaller numbers of a predator’s population cycle is vulnerable.” And then they later go on to say that “a cicada that emerges every seventeen years and has a predator with a five-year life cycle will only face a peak predator population once every eighty-five (5 x 17) years” as opposed to that. So, when talking about the overlapping emergences of cicadas, they said that the chances of, or the cicadas that come out every 13 years and the cicadas that come out every 17 years will only overlap once every 220 years. So, the fact that once every 85 years they’ll land on a cycle of, you know, 5 year predators, or every 220 years they’ll land on another cicada overlap means that the chances are extremely improved by prime numbers in general. So, and that’s just evolution doing what it does. Like, if you look at the moths in England during the coal and industrial revolution the white moths across… That used to be in the Alpine, the white Alpine trees, used to survive whereas the ones that had black wings ended up dying because the predators could see them against the white trees. However, once the industrial revolution started the trees would be coated in soot which meant that the only ones that really survived were the ones with the black winged mutation and the white winged moths eventually died out and became extinct because of that transition between white tree and coal-coated tree. So, just interesting how evolution does that.

0:31:27.9
Safia Abdalla

Yeah, the point you mentioned about, you know, the moths and how they adapted to changes in their environment, as