Coding 101 51 (Transcript)
Father Robert Ballecer: On this episode of Coding 101 it’s a wild card interview. Steve Gibson. He’s going to give you 46 years of programming experience.
Netcasts you love, from people you trust. This is TWIT! Bandwidth for Coding 101 Is provided by CacheFly, at cachefly.com.
And by Squarespace. The all in one platform that makes it fast and easy to create your own professional website or online portfolio. Now introducing SquareSpace 7 with even better site management tools and other improvements. For a free two week trail and 10% off, go to squarespace.com and use the offer code C101.
And by Lynda.com. Lynda.com is an easy and affordable way to help you learn. Instantly stream thousands of courses created by experts on business, software, web development, graphic design, and more. For a free trail, visit Lynda.com/c101. Lynda.com/c101.
Fr. Robert: Hello and welcome to Coding 101. It’s the TWIT show where we let you into the wonderful world of the code monkey. I’m father Robert Ballecer, the digital Jesuit. Coding 101 is a place for novices, intermediate and expert programmers to gather and talk about the wonderful things that happen in our field. Joining us to day on this wildcard episode is Mister Steve Gibson from Gibson Research. Steve, thank you very much for coming onto the show.
Steve Gibson: Padre, great to be here and with you today.
Fr. Robert: Of course, we know you. If you’re a member of the TWIT army we know that you’re part of security now. You are this security guru of the TWIT TV network. I’ve actually had you on Padre’s Corner, and now we get a chance to talk to you, because you have a lot of experience in the programming world. But before we get into your tips, because you want to share your experience. I want to talk about how you got to be the geek that you are today. Where did this all start, this love for technology?
Steve: Okay, so I think that the technology began for me, at an age before I can remember. Because I do not remember being 4 years old but I have a photograph that helps me know what was going on when I was 4 years old. My dad took a picture of me sitting at a picnic table that we had in the back yard in CA, and before me was a piece of plywood with an old fashioned red sort of square with its edges cut off, 6 volt dry cell battery with the two terminals. One in the center and one off to the side. And ceramic base screw in light bulb bases and ceramic knife switches, which was electricity back then. And this was not something my father was pushing on me, something about it fascinated me. Like, why do I have to complete the circuit? Why can’t I just have one wire that goes from the battery, which apparently is where the juice comes from, over to the light bulb, and then it will light up? No, doesn’t work that way. And here’s this knife switch, where you could see how the switching action worked as the blade made contact with the other side. So I was, before I was 5 years old, from the date on the back of the slide that I have, showing me at that age, I was wiring things. I just had to. It fascinated me. And then there was the record player and the vacuum cleaner and the iron and other electrical appliances and I took those apart and I had to figure out how they worked. And in fact, at one point, my disassembly was becoming so destructive that my father decided that we need to feed this somehow in a means that will be less destructive to the household. Because mom would go in to get the vacuum cleaner and try to pick it up and it would fall apart in pieces. Because putting things back together was much less interesting to me at that point than taking them apart. So not far from us was Alameda which was a major shipyard for the military at the time. They were decommissioning ships or retrofitting and upgrading them, but they were pulling equipment off of aircraft carriers and battleships and things. And so what sprung up around this naval shipyard were surplus stores. And while there were gas masks and canisters and stuff, there was also a wealth of electronics. And I remember well that it was all sort of nameless stuff. Radar sets and radio equipment and sonars and all the stuff that you would expect to find on a battleship in 1960. Because I was born in ’55, so ’60 I would have been about 5 years old. The way you bought this was not what it was, but how much it weighed. And they had like fish hooks hanging from a rafter, so we’d hang this thing on this fish scale and the dial would spin around 5 times and come to rest somewhere, and dad would pay a small amount of money, comparatively, for this. And we’d stick it in the trunk and take it home. And I remember we had a 2 car garage and we’d pull both cars out and stick this big hunk of something in the middle of the garage with the tool box next to it, and say, okay Stevie, take it apart. And I would just hungrily plow into this thing. Noticing how the knobs had set screws on them that kept them on, and how the shafts penetrated through the front panel and then were extended way back to the end where there was a potentiometer that had for some reason 3 terminals on it. And I would someday come to understand why that was the case. And what dad, many, many, many years later said, was that his motive for that, aside from giving me something that I could disassemble without upsetting mom, he said that I was- his plan was that I would be deliberately internalizing the best engineering of the United States that had gone into producing this equipment. And even though I was taking it apart, I was noticing in the process, how it went together. And as it turns out, whether that was actually what was involved or not, I did at some point, switch over, from disassembling things that other people had created, to imagining and then creating things of my own. So that was the start. It was hardware.
Fr. Robert: You know Steve, when I had you on Padre’s Corner the thing that stuck with me the most was how much your father had to do with your passion for everything. Not just electronics or programming, but just for how things worked. In the maker community, you can see it. There are some people who become incredibly proficient at figuring out how to make stuff do something. But then there is the next level up, and that’s people who want to know why that procedure makes it do something. And those are ultimately the people who are going to be able to get in there and change it around. I want your input on the analog between that and the software. One of the questions that we ask a lot of our wild card guests is whether or not it’s easy just to jump into programming. And by that I mean, there are some people who think, if I study enough, if I memorize enough stuff, if I do things enough times, then I will become “a programmer”. And I think there is a great analog here, which is, you can become a person who knows all the vocabulary and a person who knows the syntax, but unless you’ve got that spark of curiosity that makes you want to dig through, you won’t be a programmer. You might be a coder, but not a programmer.
Steve: A perfect example of that is a couple years ago a very good acquaintance of mine from Starbucks had her son in high school and she herself is an elementary science teacher, he was in high school and he thought hey, there is a computer programming class, I’m going to take that. And so she, knowing my passion for software, said “hey Alex is taking a class in computer programming”. And I thought that was great. He was sort of your contemporary kid who didn’t really have a passion or direction. I remember for example, for me, when my gang in high school all had to decide what we were going to be at some point, there was no question what I was going to be. I was going to be something to do with computers. The major that UC Berkley had which was my major was EECS. Electrical engineering and computer science. They understood how those things were related to each other. Which I was really glad for, because it didn’t force you to either be hardware only or software only. It was a program that pulled it all toughest. But my peers in high school, they were like “uh, I have to choose now what I’m going to be?” so there was just sort of no direction. And I think that’s maybe even more the case today. So when Alex manifested some interest in computers I was like hey, cool. And I had some texts that I thought might be useful which I gave to his mom to give to him. The point is that he got to a certain point and decided it wasn’t for him. And when I asked his mom what had happened, she’d asked him and so she knew. Unfortunately, due to the way that the curriculum was being “taught”, he would get to a point in an assignment where something didn’t work, and he would not know how to fix it. Because basically, they were teaching computer science by copy and pasting. They were trying to cram, I think it was both Java and C, were the two languages that were in this maybe half a year or maybe a yearlong course, but the problem is that the kids are all seeing video games. And saying I want to create one of those. So there’s tremendous pressure on the curriculum designers to produce a result. And the fact is, you could easily spend a year on fundamentals of what’s actually going on. Like what is binary? What is octal? What is hex? How does a computer add numbers and what’s the representation of those? I could design easily, a yearlong computer programming curriculum where at the end of that, you would never have written one program. Or maybe some simple, like, loops and jumps and conditionals. But what you would have at the end of that was an absolute understanding of what’s really going on. And on that foundation, then you could easily layer any language. Because you would really get what you were doing. But instead, this curriculum was in such a hurry to give them something that did something, that at no point did they ever deeply understand what it was that they were basically cribbing from something else. And when it broke, they had no, because they didn’t know where it came from, they didn’t know how to back out of the problem. Basically Alex had no concept of debugging. That is, what to do when it doesn’t work. Because this sort of came to him as whole cloth. And it was like, as long as the pieces fit perfectly he could push a button and make something count up. But if it didn’t, he didn’t know what to do. And so I got a sense from that for the unfortunate way that programming is being taught today. Another example is I was in my- we have one surviving electronics retailer in SoCal, a place called Marvac, and that’s where I go when I need something immediately that I can’t have Digi key or mouser send me through the internet. So I was there looking for something specific. I think I was asking a 1 end 914. I ode or something. And he goes back and tries to find it. There was another gentleman next to me who it turns out was a small business owner whose business was something to do with electronics. And we just sort of struck up a conversation and we got talking about the nature- he was about my age- and absolutely understood electronics. And I was talking about maybe software people I had hired, he started talking about hardware people, and how out of university, he was interviewing kids who similarly didn’t really understand what it was they had just learned. As part of his hiring test he would say “draw me a multi stable multi vibrator.” And he and I could both do that. Basically its two inverters cross coupled with some capacitors in order to make it go. But none of the kids that came out of engineering with a fresh degree where the ink was still wet, could answer that question. And it turns out that unless he set them up at a workstation with all of the same software helpers, the same software IDEs and CAD programs and exactly what they knew how to operate and how to select components from menus and drage them in and then look for somewhere about how to wire it up from some application notes, that was the world that they understood today. Again, lacking the basic understanding in the fundamentals of where this stuff came from. They were operating several levels of extraction above that. And I guess I understand that the world has become abstracted to the point where nobody really is wiring things up with resistors and diodes and transistors anymore. I mean, I am, I actually have a little project that I’ve been working on that is that. But that knowledge, it’s like it’s too expensive to acquire that knowledge today so the world tries to just say, don’t worry about how that works. Here’s a chip with wires and yeah, it’s go that stuff inside it, but hopefully you’ll never really need to understand that. Just wire this thing up and it understands how to do the things that- it’s no longer cost effective for you to know. And unfortunately the same thing has happened in code. Due to the nature of the system everybody is in a hurry, nobody has time, you just don’t need to know that. And one of the things that I noticed when I was hiring programmers, I went through a phase where I was trying to grow the company I had already in the world. And I had some ideas for other stuff I wanted to do. But I was now running a company, and unfortunately I learned, that meant that I no longer could do any coding, I had to manage the coders. And I realized that the other one guy who I was ever lucky enough to hire who was actually good, was good because he too had been a hobbyist. He had been messing with this stuff way before there were any classes he could take. I remember when I got to high school and there was actually a class in electronics. It was like holy crap, you’re kidding me! I couldn’t believe I could take a class in something I had a passion for and I’d been working with for years. And it turns out I created two additional years of curriculum in that high school that went district wide after I left, in digital electronics because the old Navy instructor that the high school had didn’t know digital, he knew analog. But of course the world was going digital, and so I ended up creating curriculum for the high school that the district ended up replicating throughout all the high schools in the area. Because this was just my passion. So I guess the best way to say that is that the stuff we’re doing today with all facets of computers, hardware and software, is built upon a deep and rich foundation. And you ignore that at your danger. And potentially and ultimately at your cost. You can try not to know that stuff, but some part of you I think will always be a little anxious. You know you don’t understand that and it might come back and bite you. And the trouble is that there isn’t a shortcut. There is no short circuit. And the other problem is this stuff is beginning to sort of leave. I still have a book on programming the VGA. The video graphics adaptor of the original IBM. And I needed it for when I was moving from Spin Right 5 to Spin Right 6 10 years ago. I have that book but I can’t find them anymore. Even online, that sort of pre internet knowledge which hasn’t moved online. So the danger of course is that some of the knowledge is beginning to die with the people who have it who themselves, are just biologically dying. As it moves deeper into history.
Fr. Robert: Speaking about the foundation of knowledge with Steve Gibson, the security guru of TWiT TV. Steve, when we come back, I’d love to continue on that vein of thought a little bit. To talk about how education has changed a little bit. Actually we’ve hit this challenge in Coding 101 and a lot of our educational programming here on TWIT TV. You spoke to it very eloquently, the idea of knowledge based learning vs. goal based learning. And the pendulum swings back and forth all the time, but I think you’re right, I think we’ve reached that layer of extraction where we may want to pull back and say do we teach enough foundational knowledge for people to strip off those top layers of abstraction and still have something to work with. But before we get there, I want to take some time to talk about the first sponsor of this episode of Coding 101. And it’s Squarespace. Squarespace is that one place you can go to on the internet to easily get your project or portfolio on the internet and I love Square Space because they’re always improving their platform. In fact they just released Squarespace 7. That makes getting started much easier and they have a unique web presence that is built up over templates that they give you. It’s now more all in one, it’s simpler to navigate and it’s simpler to operate in 1 seamless experience. Squarespace 7 allows you easier editing. You can edit on 1 screen which means you no longer have to toggle between site manager and preview mode. You can even preview designs in divide modes - that you see exactly how it will look on tablets and mobiles. Now it also offers instant access to professional stock photography from… It’s now integrated into the package. They’ll allow direct purchases inside the platform from getting images at just $10 each for your site. No more having to jump out, get an image imported into Squarespace, make sure all your licensing is taken care of. It’s all in 1 interface. You can get google branded email with Squarespace 7 so you can have the branded email for your small business and it’s automatically set up when you set up your Squarespace account. They’ve got templates, designed for specific professions which this is a big one. All their templates have been beautiful but now they give you the option to switch between different classes of templates. You can move between templates for musicians, artists, architects, chefs. They designed those templates, those category specific templates so that you can find the one that looks right for the project, for the business, for the industry that you’re trying to represent. On Squarespace 7 the developer platform is now on a beta which means that you can customize your site exactly as you wish. If you’re a developer you have access to the same platform that Squarespace uses for its own site – complete code control They also give you e-commerce with all subscription plan levels that includes the ability to accept donations which is great for non-profits, cash wedding registries and school fund drives and it’s easy to use. Yes, sometimes you’ll run into a ram but it’s easy to get it solved because Squarespace offers you support; 24 hours a day 7 days a week. They’ve got an army of folk in their forums giving you self-help articles and video workshops to browse at your leisure. It also starts at just $8 a month so it’s not going to break the bank. That includes a free domain if you sign up for a year. The Squarespace portfolio, the note, metric and blog mobile apps are on the go extensions of your website so that you can monitor and make changes from anywhere. They include the hosting so again it becomes a 1 stop shop. You don’t have to worry about buying different services from different providers. It’s all from 1 place. It’s all in a square space. Here’s what we want you to do. We want you to start a free 2 week trial with no credit card required and start building your website today. When you decide to sign up for Squarespace make sure to use the offer code c101 to get 10% off and to show your support for Coding 101. To begin using Squarespace 7 now existing customers can go to the setting tab to activate all of your new features. We thank Squarespace for their support of Coding 101. A better web awaits and it starts with your new Squarespace website. We’re here with Steve Gibson from GRC. He is our security guru and also a man about programming. Steve, let’s go back into that because I want to tease out a bit more of your knowledge about learning the foundations. When we started Coding 101 we wanted to do exactly that approach. We wanted to give people the foundations that could translate between all the languages, and what we found is that there was an initial boom of interest, but then people just started dropping off. People didn’t really want the foundational knowledge. They wanted the project knowledge. And that’s more and less what we’ve shipped it into now. We’ll have a little bit of a project so people know what they’re building and they can at the end say “I did this”. But as you mentioned, that can be an issue. Because if you don’t have the foundational understanding of why those elements do what they do, it means that if something breaks, as one of the members of the chatroom said, it’s a lot of trouble for very little consequence at the end.
Steve: Right and I guess a platform like the Arduino is a perfect example of sort of a compromise. You’re not actually dealing with the hardware and the true processor programming. That’s been abstracted to a basic like language where you say oh I want a delay for this long and now raise this input and lower that output and so forth. So that’s sort of a compromise. I think that if a person isn’t curious then there is not a way to impose curiosity. And someone may not be curious because they’re unfortunately afraid of failing. And one of the things that these self-contained sort of Meta solutions offer is a guarantee that you won’t fail. They make it “easy” to achieve something. And one of the famous statements is that if you’re not failing then you’re not trying. So one of the things that a person has to become really comfortable with, I think, is being able to say “I don’t know, I don’t have the answer”, and geeks tend to have a problem with that because they grow up sort of, the whole notion of being a geek or a nerd is sort of the whole know it all persona. They’re like the only computer literate person in the family and so they sort of adopt this “oh yeah, I have all the answers”, because they’re supposed to. But it’s necessary to shed that and to be comfortable if only with yourself. And the problem is unfortunately we tend to internalize who we are. And so it doesn’t help you if it’s only with yourself. You need to be able to be comfortable with not knowing. And not having all the answers and being stumped and being willing to struggle and to be able to be comfortable staying in that place for a while and teasing out an answer. And so are you a person who enjoys puzzles? I love puzzles. I used to be a pain in the butt for my family at Christmas time. Sort of the couple layers removed, the aunts and uncles, because what they knew what they could give me that Stevie would love was a puzzle. And so they’d go into the toy stores we had back in the 60s and say okay, I’ve got this annoying nephew who solves all the puzzles that we ever give him, so what’s the latest and greatest puzzle? So the point is, I enjoy being confronted with something I don’t know and don’t understand. A puzzle. And that’s always been my nature. But I recognize that’s not everybody’s nature. Some people’s personality, they don’t want a puzzle. They don’t want to feel stupid. They don’t want to feel like there’s something they can’t do or that someone’s going to find out because they’re personality, identity, is wrapped up in having all the answers. And so I don’t know how you get from that position of comfort into what is going to be fundamentally uncomfortable. You need to be okay with that. You need to just not know. Because it’s only if you get yourself there that then you can start to really find out, really start to learn things that aren’t already prepackaged and predigested to make sure that you succeed. Maybe you won’t, but in not succeeding, you will learn things that you can’t learn through any sort of a guaranteed prepackaged system.
Fr. Robert: Absolutely. Next week we’ve got Mark Smith, he’s one of my DefCon friends, he’ll be coming in and we’ll do a crossover between Coding 101 and Know How. Because he’s an embedded systems programmer/ electronics engineer. So he’s going to show us how he takes embedded processors and turns it into something, and then we’re going to program it. But he was on a panel with Lost, he’s a genius at DefCon and he makes all the badges and he’s got embedded programming in his sleep, but on this panel, one of the things they all kind of groaned about was when someone in the audience brought up the Arduino and how its changed everything. And they all said the same thing. They said okay, let’s be clear, we’re not hating on people who use the Arduino, it’s actually a fantastic platform and it gets a lot of people interested, that’s all great. But, you have to understand, we were doing what the Arduino is trying to do for decades. And that the Arduino is great because it’s like a Lego set for people who want to get into that sort of making. That sort of DIY-ing but you still need that person who makes the Legos in that shape. So if you don’t have that person, and if you all become Arduino people and you all just color within the lines, then there will never be the next Arduino. And there will never be the next electronics kit that will perhaps inspire the next generation of electronic engineers and embedded system programmers. Let me ask you this, since we’re now heading into this territory where you’re kind of laying down your 46 years of knowledge upon our audience, if there was somebody who is listening to this and saying “well, I want that foundational knowledge and I want to know if I’ve got that proclivity to create like Steve Gibson”, what’s the advice you’d want to give them?
Steve: Okay, I’m holding up here a little $10 circuit board that Texas Instruments sells, called the Launch Pad. The answer to your question is do something. The way to learn is by doing. And that’s for whatever reason, I got started at age 4 building. And I’ve never stopped. And so I got the sense that hey, I can hook these wires up and the battery has juice and the light bulb is not burned out, when I close this knife switch, that light is going to go on. And it did. And then I thought hey, I like that. And then I got another light and hooked up the other side of the light switch. And then I got a doorbell and made it ring and so forth. The point is that you need to switch from being passive to being active. And you also need necessarily to cut yourself some slack. There’s no hurry, no deadline, no one is going to grade you, this is not about achieving anything other than for yourself. What this little $10 this is a beautiful little chip sitting here in the middle. It’s got a micro USB connector, and they provide the cable as part of it. And so this is bare bones. There is no code in here. There’s no Arduino interpreter. This is a venerable chip. It’s a 16 bit micro controller which I think is perfect. 32 bits is too many, 8 bits is not enough. 8 is a pain. 16 is sort of a sweet spot. It’s beautifully designed. The IDEs are free for this. You download them from TI’s site, and you can start programming. So it’s got a couple of LEDs on it, it’s got some push buttons and you can get a start with something that is- this chip is used in embedded applications. I love it because it is incredibly low power. So you can create things with it that you cannot create with the Arduino, where, things like smoke alarms or IR sensors and all kinds of things. The point is, it doesn’t have to be expensive of anything other than your time. And it will be a time synch. It will be unbelievably expensive of your time, but unfortunately there is no way around that. So it costs nothing in dollars, it costs everything in hours. Because its hours of you fighting with the compiler, why doesn’t it like the syntax that I just entered. And scratching your head at why the program doesn’t do what you expect. And that’s not many people’s cup of tea. But there isn’t a way of cheating that. There isn’t a way around it. If what you want is to really gain an understanding of bits and how the ad instruction works in a conditional jump, and like where all this stuff came from, then this is the way you get it. You get it by starting with something that is nothing and building something of your own from that. And it’s not expensive in dollars, but it will burn up time. But if there’s a passion, if you have that desire, then it’s absolutely within reach.
Fr. Robert: I think you absolutely have to have that. You have that passion to build something of your own. Every kit I’ve ever done, every project I’ve ever created, every circuit I’ve ever bread boarded has always reached that point where I could say, I could buy something for X dollars and do way better than what I’m programming or creating now. But there has to be that but I want to finish this, this is mine, this is my version of it. And that might be better, and I may end up buying that for a permanent installation, but I want to see if this will actually work.
Steve: And it changes you. That’s the point. Is that while you are doing something to it, it is doing something to you. You are changed when you come out the other end of that. One of the reasons that there’s frustration is that it doesn’t do what you think it’s going to. Well, that’s because what you think is wrong, and it’s going to teach you what is right by you insisting on finding the answer. The answer is there. And that’s what’s fundamentally different about being a hobbyist and being active rather than passive. If you’re playing a video game, sure you’re discovering what the video game designers hid. You’re figuring out the puzzle that they laid there for you. But you’re not fundamentally changed. If you start with a project as a builder and you decide I’m going to build this and it involves a micro controller and you want to start at the beginning, then you don’t know how to do that when you start. You, by definition, will know how, when you end. Because you will have learned. You will have figured it out. You will have solved more problems than you can even enumerate. There are more things you don’t know than you can imagine. And that’s the point. You don’t know. But when you push this thing through, you will end up knowing because you will have had to learn in order to solve this problem that you set yourself. And again, I get it. That it’s not for everyone. And the Arduino certainly has a place. Because for many places you don’t care about the details of how it operates because what you want is to treat it like a macro block. It’s just going to be this black box that you give it some stimulus and it gives you some effort, inputs and outputs. And if that’s what you want, if that’s what you need, fine. Don’t ask or expect more. But if you are interested in understanding more, it is possible to get that. But not quickly because there’s a lot to understand.
Fr. Robert: Speaking with Steve Gibson the security Guru at TWIT TV. We’ll be right back for some final words of wisdom to all you programmers out there. But first, let’s go ahead and take a moment to thank the second sponsor of this episode of Coding 101 and its Lynda.com. What is Lynda.com? Lynda.com is a one stop shop. A repository for knowledge. Both of new knowledge and knowledge that you just need a refresher course on. Lynda.com is an easy and affordable way to help you learn. You can instantly stream thousands of courses created by experts on software, web development, graphic design, and more. Lynda.com works directly with industry experts and software companies to provide timely training, often the same day you get the new releases on the new versions on the street. You’ll find new courses on Lynda. So you’re always up to speed. All courses are produced at the highest quality. Which means it’s not going to be like a YouTube video with shaky video or bad lighting or bad audio. They take all that away because they don’t want you to focus on the production, they want you to focus on the knowledge. They include tools like searchable transcripts, playlists and certificates of course completion, which you can publish to your LinkedIn profile. Which is great if you’re a professional in the field and you want your future employers to know what you’re doing. Whether you’re a beginner or advanced, Lynda has courses for all experience levels, which means they’re going to be able to give you that reference that place to go back to when you get stumped by one of our assignments. You can learn while you’re on the go with the Lynda.com apps for iOS and Android and they’ve got classes for all experience levels. One low monthly price of $25 gives you unlimited access to over 100,000 video tutorials, plus premium plan members can download project files and practice along with the instructor. If you’ve got an annual plan, you can download the courses to watch offline. Making it the ultimate source of information. Whether you’re completely new to coding or you want to learn a new programming language, or just sharpen your development skills, Lynda.com is the perfect place to go. They’ve got you covered. They’ve got new programming courses right now including the Programming the Internet of Things with iOS, Building a Note taking app for iOS 8, and Building Android and iOS apps with Dreamweaver CC and Phone Gap. For any software you rely on, Lynda.com can help you stay current with all software updates and learn the ins and outs to be more efficient and productive. Right now we’ve got a special offer for all of you to access the courses free for 10 days. Visit Lynda.com/c101 to try Lynda.com free for 10 days. That’s Lynda.com/c101. Lynda.com/c101. And we thank Lynda for their support of Coding 101. Steve, final words here. So we’ve talked a lot about what we should be learning and how we should approach coding and programming and figuring out how things work. But digging back again into your 46 years of computer programming experience, and knowing that you’re one of the few people that I know who can do assembly well, what is something that you want that young novice to get into? What other tidbits of wisdom can you give them?
Steve: The only thing that really comes to mind is not being in a hurry. I think that that’s one of the problems, is that we’re all used to using very sophisticated subsystems and systems and tools that are amazingly empowering. And there’s a shock which occurs when you realize by looking at something that has like none of that. This little guy, where there’s no assistance. It’s a micro controller. It’s got EE prom. So you can program it and its nonvolatile, it’s got RAM, it’s got an amazing array of peripherals, it’s a fun little chip. But the point is that because it is so low level, doing anything with it, making it do anything, is surprisingly difficult. And so there’s a reality shock that occurs where you realize, wow, I had no idea this would be this hard. Because it’s completely out our experience. It’s out of everyone’s contemporary experience. Where we’re booting an operating system with phenomenal capabilities. We’re running applications with phenomenal capabilities. It’s a little bit like the example I drew with the guy I bumped into at the electronic store, whose students he was hiring out of college couldn’t do anything unless they were surrounded by the sweets of tools that they had grown used to using while taking courses in college. Without them, it was like they were standing there naked. They couldn’t do anything without all of that support. Without that massive support. So I guess the last thing I would say is be prepared to be really surprised, to be sobered by what the reality is of what the actual underlying foundation is upon which we have built. Because no one’s experience of using stuff today can prepare you for that. And again, maybe it isn’t for you, it is for me. I program today in assembly language. Squirrel, the squirrel client that I have written is all an assembler. All of the code on my server that runs all the stuff that is there is all an assembler. That’s the language that I prefer to use. I code rather quickly in it, because it turns out when you code correctly the language you’re writing in doesn’t make that big of difference. And we’ll probably pick up on that topic with my next visit to Coding 101.
Fr. Robert: Steve Gibson from Gibson Research at GRC.com. It’s the home of my favorite tool in the world. If you don’t have SpinRite I don’t know what you’re doing with your life. Steve, SpinRite was written entirely in Assembly, he does what he preaches. Can you tell the Coding 101 audience where they can find you on the internet other than GRC.com?
Steve: My company is Gibson Research Cooperation and I was on the net early enough to get those initials. GRC.com. so that’s where I hang out, all my stuff, SpinRite, it’s on the main menu when you go to GRC.com.
Fr. Robert: Steve it is always a pleasure to speak with you, no matter what show it may be. A few of the people in the chat room figured out my plan. I’m trying to get you on every show that I host. In some way shape or form. And I’m pretty sure I can do it. I think it’s pretty easy to get you on Before You Buy and Know How. So we’ll get that done. Thank you very much for being with us. Now folks, don’t forget that even though this is the end of this episode of Coding 101, you can find all of our episodes by going to our show page. Drop by TWIT.tv/coding. You’ll find all of our back episodes including our module. So if you want to know what we’ve been doing, the projects we’ve taken up, our notes and our code base, you’ll find it all right here. Also we’ve got a Google+ group, go ahead and go into G+ and look for the coding 101 group. It’s filled with newbies, intermediates and expert programmers. It’s a great place to go if you want your questions answered by people who are working in the field. Don’t forget, follow me on twitter. Twitter.com/padresj. @padresj. You can find out our guests and find out what I’m doing between episodes and shows on the TWIT TV network. Be it Coding 101, This Week in Enterprise Tech, Padre’s Corner, or this. Finally, I want to thank everyone who makes this show possible. To Lisa and Leo who keep the lights on for me, to my super TD Bryan who has abandoned us. His stand in Zach, you’re going to see more of once we get rid of Cranky Hippo. Zach where can they find you?
Zach: You can find me on twitter @eskimozach. Thank you Padre.
Fr. Robert: Thank you very much Zach, and until next time, I’m father Robert Ballecer, end of line!