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!