Nov 22, 2021
In this podcast, with Hour of code coming up, Dan and Lee navigate the world of programming languages from their beginnings to the future.
Join the largest learning event in history, December 6-12, 2021 (hourofcode.com)
Minecraft Hour of Code 2021 | Minecraft Education Edition
________________________________________
TRANSCRIPT For this episode of The AI in Education Podcast
Series: 4
Episode: 13
This transcript was auto-generated. If you spot any important errors, do feel free to email the podcast hosts for corrections.
Hi Lee, how are you?
Hey Dan, I am well. It is good to be back on the what what do we do
we call these the airwaves now or what are they called on
podcasts?
The pod waves.
Pod waves.
I really really don't know.
We're in the bits and bites which is a good length for today's
session. I guess I reckon
it is. is the digital world and today we've got a lot coming up in
the next couple of months especially around coding and computer
science and STEM. I think in December we got our code which is the
global festival of getting kids to to code and spend time looking
at coding through various different uh means and ways through
code.org and there's a competition I think we launched I think
we'll do a separate episode on this so around the Imagine Cup
Junior I think you're involved in that Lee and there's a I know
there's a girl geek mmies uh are running a um girls in STEM program
coming up. I I know we're talking about kids here, but I was on a
call earlier on with one of our new colleagues in our team and she
was looking at what actual qualifications and certifications to do.
You know, she's new to the team so she's trying to pick up some
different elements. So, she's doing some fundamentals courses and
we had this conversation about programming and languages and
things. So, it's a good one for today. Are we going to focus on
some programming languages? Lee Well, that's it. You're right. It's
a really interesting one. And it's funny you say about that
newcomer to your team because when I talk to a lot of people about
now kind of getting into the software industry or into the, you
know, working at Microsoft or companies like this, we tend to think
about the skills being, you know, how to use the UI and how to how
to use, you know, build services in Azure or in some other cloud
service. We don't really talk about the fact that there's some
programming that is needed today in sort of a lot of modern
systems. So, it's probably good to have a bit of time to focus on
coding and programming.
Yeah, totally. I think This has been quite polarizing say in an
education sense. I remember when I was in the UK we looked at
changing the new curriculum. Uh so we changed and added computer
science and that was gez that must have been seven or eight years
ago now and I know they did the same thing in Australia where we
looking at the fundamentals of computer science and where we teach
now with kids and why it's important and things. Uh you know
there's it was quite polarizing with teachers as well and I suppose
it's polarizing in industry in some way as well because do we need
to teach it to everybody? It's like when you say do you need to
teach music to everybody? So
why do you you know as our CTO at Microsoft there and somebody's
been involved in various technologies throughout your life
why do you think it's important to code and does do you think
everybody needs to code?
It's it's a really good question and and you know I'm guilty like
probably many other people when I get out there and I talk about
the modern technology organization and how roles are transforming
in the IT industry and We we do use that term that like you know
the world is running on software and and everything is about you
know software development and coding today and I've I've been
guilty of going out there and saying you like a basic skill
everyone who wants to get into into any industry should learn to
code because it doesn't matter what industry you're in. Coding is
going to be a valuable skill and then I read an article the other
day that kind of said look actually that's really bad advice
because coding is is a quite discreet specific set of skills. It's
an you know it's it's as unique as perhaps data science world where
you know it Not everyone can be a real true data scientist, you
know, that requires a a learned set of skills, you know, you go and
you learn a a particular capability. So should everyone learn to
code? Look, I still think to me, Dan, ke to your views, I think
yes. I think that at some point if everyone experiences coding and
I reflect back on my time at school and I probably didn't see
coding until I was in probably around even university time, but of
course I was born in a in an age quite different to now. But I I
think even just knowing what it is is what it looks like, how it
works. De I think the thing is demystifying it, Dan. You know,
making it clear that it's not it is difficult and complex, but it's
not magical. It's not something that you should be afraid of or
take a disinterest in. I don't know. What do you think? I think
it's important.
Yeah. No, I I agree. I kids need to be taught some of the
fundamentals on two levels for me. I think it's always been and I
know this is polarizing. People will be listening in s sitting on
their side of of of the fence. I think it's an empowerment thing
for me and also a problem solving. element. So empowering in terms
of the fact that I've seen when I look at friends and family who
not maybe not interested in technology that much and take things
for granted, then they struggle with things like connecting a
Bluetooth device or doing something. There's lots of technologies
out there, you know, Alexexas and all of the home automation
services that that are there and you don't take make the most of if
you don't actually set them up properly. You know, at Christmas
time is one of my um uh my my my Or I laugh when kids go out and or
parents go out, sorry, and buy Xboxes and PlayStations and mobile
phones for the kids and they never set it up. They kind of go to
the kids, there's your Xbox. It's in a, you know, in in the in the
package in there. You know, you're going to be the person to unbox
it and set it all up. And we wouldn't set up parental controls. We
would set up the Wi-Fi. We wouldn't do the updates. You know, notes
to self, if you're listening to this before Christmas and you're
buying your kids a new console, do the updates before Christmas
Day.
Take it out of the box and get it done. Yeah.
Yeah. And set it all up. There's laziness for people where they now
go well I'll let my kids do it because they understand technology
or I'll let other people can do it or you know it it really is a
disempowering element and and I think to a certain extent consumer
technologies haven't helped that um you know when Apple first came
out and you couldn't take you know the batteries out and all of
this and you couldn't hack those devices up it was a much better
user experience uh for for for people so it got my mom into
smartphones very easy
but you know it's not that customizable and if you give somebody an
Android mobile phone and they used to
Apple these days they they can't handle the fact that you can
customize it so much and do so much more with it. Um so there's
there's that empowering thing for me and also that problem solving
element when you're thinking about coding you look at a large scale
problem whether it's agriculture and then you say well how can I
break that down into steps and I think that's a
that's a skill that we all need generally it's not just necessarily
a computer science But it's about that problem solving, breaking
things down into smaller components to to see how things work. I
think that's they're my two elements that I feel quite strongly
about and coding does help with that.
That's perfect. And the key thing I mean I I couldn't agree more
with what you said, but the thing that really is kicks it for me
is, you know, when you empowerment, yes, giving people that that
approach, but the problem solving piece because that's if I think
about how we look at, you know, early career learning and people
bring bringing people into the industry. It's less about what
language can you speak or you know languages can you program in or
what computers have you had experience with. It's how do you solve
problems and that's the that's the nature of work I think today is
really about problem solving and and computer programming the
structured approach to it even object-oriented type programming
it's still structured it teaches you to go through a set of steps
so I think you're you're you're 100% spot on so maybe build on that
Dan and let's be you know we'll talk a bit about our own
experiences but why don't you start tell us a bit about well as
simple as it make it. What is coding? Like what is programming?
Yeah. So, well, let's let's take it even further back before we
even get to there. You know, when when people started to make
machines, you know, in the textile industry in the 1800s, they had
punch cards to be able to know where the needle had to go through
to actually create the the rugs and textiles of the time. And then
that technology was used to kind of automate, I suppose, and
program, you know, the way that you could create things. And I
suppose you can go back through time to find out where uh humanity
is actually gone to make things easier in life and and and it's
just everything is programming, right?
So if you so yeah it is and so if you think about it the way you
described it there the punch card system is in a sense it's a
pattern but it's a repeatable pattern and if I kind of in a
programming way that sounds I don't know what you think because
that's what you on a punch card you'd bang the holes in and you'd
make something a pattern that something can interpret
and then you know that every time you put that punch card through
well until it got damaged enough or chewed up in the machine it
will always do the same thing. So that kind of a think in that that
was the thinking was it in the textile world about kind of
creating
that's exactly right that you created you know when the industrial
revolution came in it was all about mass producing things wasn't it
even the way things are laid out on a print printing press was a as
a form of programming um but when we start thinking about the real
elements of programming and and you know mathematical engines and
things like that way back in the in the early 1800s and things and
we start thinking about moving from there and then we start moving
to Charles Babage's era Love Lace who was one of the first computer
programmers uh historically um where you're starting to get
machines that can mechanically solve problems. So Charles Babage
looked at the textile industry and said well how can we use the
same principles to do some mathematical calculations? How can I
build my different engine to do some of those calculations? So he'd
really focused on that.
Yep.
And then a love list is one of his compatriots there who kind of
started to develop program come in per say for that engine. They
never actually made that but then there are uh ones which are now
made in in London and around the world where they've created those.
There's a brilliant exhibition in Sydney where you could see the
difference engine and there's all the the cogs going on there and
the winding handles together adding and subtract numbers and things
which is really really clever. But then I suppose we we had all of
the tube based computing moving forward from there and we went
through vacuum tubes into transistors and semiconductor and right
down to the transistor radio. So all of those different devices
throughout the the ages I suppose from any and all of those machine
touring as well was working on some of his stuff just before that
with Colossus the way they were kind of connecting valves together
and doing the electronics and then that becoming smaller and
smaller and smaller transistors. We needed to come to a level where
rather than physically doing things like punch cards and moving
wires we then could start to program with high level code because
we're starting to get into the phase of modernday computing.
So yeah. Yeah. And before we jump into the coding bit, I think
what's an interesting philosophical question is if you if we trace
it back to the the punch card concept where you had a whole or not.
That was the sort of the binary decision point. There was two
states which led us down the path and which today nearly every
computer, you know, aside from quantum computing largely is built
on this construct of a binary base 2 set. I wonder if we'd have a
if we had a a different way of building computers if we'd never
started at that point where it was all about binary and on because
you know with vacuum tubes with transistors with it's always about
voltage off or on vacuum off or on it's you know it's it's still
very simple almost in its principles isn't it? Yeah. And the
scientist element in me wants to think that that's the kind of
purest form you know if we made it more complicated. Um but but
then we've had to build on top of that haven't we to represent
things like then we we We came up with some of the coding like
forran which is a formula translation um
yep
uh language that IBM created and the basis of HTML these days and
and Dr. Grace Hopper do you know what language he was involved
in?
Well I I I have recollection but I I'll let you tell us for example
I remember in university programming in coal common business
orientated languages all acronyms when they started wasn't it and
uh and I remember if you had one line at the beginning of that code
code incorrectly to compile that language.
Yes,
you'd get pages and pages and pages and pages wrong. If you had
one, if you missed something out at the beginning, then you'd get
hundreds of pages. Everything was an error. So, it was it was
absolutely
terrible memories coming back now. Terrible memories coming
back.
And then we had IBM and then the Microsoft story came into it with
with MS DOSs and BASIC through Bill Gates and Paul Allen. Uh, which
is which is really interesting. Uh, obviously for us from a
Microsoft point of a software company and Then you had all of the
standards starting to come in then like ASI the American standard
code of information interchange where binary could be reflected
globally with particular letters and numbers and all that kind of
stuff. And then we had the high level languages are starting to
become popular around that time. So that's my I suppose my my
twominut history.
Yeah. That's a lot of history there. Um and I always find it
fascinating. I mean look I get the binary bit and you're absolutely
right. I think it's the sort of the purest form of data
representation is yes and no. off and on one and zero. But then
when I and I and we I don't think we could have the time to get
into it, but that evolution of representing binary base 2 into
something that we could map into a bit map that to capture the
characters of the alphabet. So we think about as you mentioned and
then hexadimal as this sort of this base 16 data set which makes no
sense to anyone outside of technology but of course when you work
in technology and I don't know about you Dan but I can count in
base 16. I can go you know my 86 32 128 512 1024 and I could go on
add infin item because it's just almost ingrained in my head now
that that's the number sequence that computers think in terms
of
but the journey we must have gone through over those you know sort
of 50und 50 years from binary zeros and ones to that idea of a
hexodimal representative and then as you said into languages it's
just it's almost incredible to think we get that leap.
Yeah. No absolutely. Do you remember your first kind of coding
experiences?
I do. Do I do remember my first coding experiences? So um and
you've already mentioned it which is unfortunately cobalt. Um so I
did I I I I remember when I was at um I guess it would have been it
was in the mid early 80s actually probably I think it was I can't
remember the exact year now and and cobalt was clearly a not dead
because it still isn't dead today but it was a dying language but
it was the principle of when you did computer computer science I
think as it would have been back then at school you learned cobalt
because that was the b the language of business. So I remember
doing cobalt back then that was but that was probably my very first
and we should talk more about some of our personal experiences but
what was your first I know you've touched on some cobalt yourself
but uh yeah anything else
I suppose I came from it from a bit of a hacking point of view I I
suppose my first memory was in the 80s with a spectrum when you you
know you had to put the tapes in and things and then you'd you'd
often land before you loaded the game you'd land in like the
version of dot I can't even remember what that is now but and I
could I remember you could type in the word beep and then a space
and then a number and then you could make you beep. And I was like,
you know that and it wasn't mine wasn't the glamorous hello world.
It was beep 246 or something and and and when you ran the games a
lot of the time you'd see the code on the screen and then you you'd
catch glimpses of it and you would I started then looking at games
in a different way and then start to hack some of those because so
I remember when I was uh like when when the first I don't know when
386s or 286s came out uh which is the computers at the time and
people listening to the the the podcast here thinking what is what
are they going on about but
I remember there was a game in basic called Gorillas you would
would you you fire bananas back and forth at each other you know
very basic game but you going in and hacking that up and going well
what happens if I did this how could I change the the angles and
the sprites and could I make it more effective and I suppose it was
I I learned by changing other people's chord that's I got the bug I
think I think
that's interesting that so I mean and we should probably talk a bit
about the the difference between what you were writing there which
was basic which is an interpreted code and binary or assembler
which is not because for me so after I moved on to cobalt at uni
and or at school time sorry I was a I was a commodore guy not a
spectrum guy so I had a commodore what I had a various things but I
remember commodore 64 and so I actually started learning 6502
assembler language you know loading and moving onto the stack and
moving your bits around
but if I think back on it now and I don't know if you if you
reflect back on your spectrum days.
I I learned by reading other people's code and I learned by looking
at other people's information and using a disassembler to look at
what they did and then almost kind of correlating in my head when
that stack object got moved up by one bit then the color changes on
the screen. Ah okay make the connection. So I didn't really learn
to program I learned to read other people's programs and figure out
what it meant and that was by no means a
that was that was the same as me. You just reminded me there of
something that I was looking at there was lots of copy protection
on games in the 80s on the amigga and things like that and um I
remember that I looking the my first view of Assembler was I
remember seeing um Assembler code appearing on the screen you could
get this thing which would show the code while you running the game
and uh forget what it was called it was a piece of hardware you
plugged in and you could see where the copy protection was
happening so it was I felt like I was hacking no I wasn't hacking I
was just watching it but you could see where it would ask for the
password or a particular key uh which you had on the box or
something at the time and there was a bene a branch if not equal
sign and and you could see that if you if you didn't type the right
code in it would go back to the beginning and I was like oh that's
a loop and and and you know I could see what so it was like I felt
like I was hacking watching it but it was uh yeah it was looking at
other people's code it's a good point
an assembler is you know for those listening not familiar with it
you know you've kind of got binary which is the absolute true
language of computers they're where they're operating at their
truest nature and then you've got interpreted language is like
basic or you know visual basic or um pearl and pascal and other
things that we're probably going to touch on. And then you got
assembler which is that as close to the wire as any human being
probably realistically ever really gets. You know when you're
programming an assembler you're almost talking to the computer in
its native terms because you as you say you're branching you're
loading you're moving on the stack. The stack being the computer's
memory of what's happening today. You know what data where the bits
are because all you're doing when you're moving numbers on the
stack is you're changing a bit from one to zero. But it's that it's
the abstraction away from it that makes it just accessible enough
for humans. I just remember that so clearly. Not I remember
probably more what I didn't understand than what know those moments
where you go ah like you said your brain's not equal and I get you
get it but um
but it's crazy time do then then for me I moved into the high level
languages properly because then school at that point didn't really
teach coding. It was about word processing when when I was in
school. So it was like using BBC micros and things. Yeah. and and
and it was even before that it was like Edward and all these things
on the BBC micro and it was awful and you know I it didn't turn me
on to it at all
and then uh and then I did did that in university then which was
where where I really started enjoying started to understand and
there was programming languages at that point which you didn't hear
about these days like Pascal you mentioned it earlier
which is really good to help you code and understand you know
variables and and statements and tabulation and commenting and it
got me into a really good process of writing code but it it wasn't
really using industry at that time. I don't you know I didn't see
it a lot but but it was really good for me. It was like a it was
like a language to help me understand you know and it was it was
very much about getting input from people and presenting stuff back
and you could make little games at the time um the fighting fantasy
books were in Livingston and stuff were popular you know kill the
goblin or walk walk east down the passageway and and you know so
you'd start to write it was great coding similarly for basic good
programming languages to write those things uh where you start to
introduce things like looping and and branching so you're going
if this then go to this line and then you know moving around so it
was it was really interesting when my when I first started to see
high level languages
Pascal's and I didn't do much Pascal to be honest with you I know
of it and uh but but of course it's one of those really simple.
It's almost the syntax of it is quite logically it's human readable
code I think is the best way to describe it because it's very
simple to read and understand. Um I was never nearly as cool as
you're doing you know the the building games and stuff for me I
actually got into in the mid 80s early 80s I got into dbase Ashton
Tate dbase which became FoxP pro and then other things and I was
writing these database thing databases which you know doesn't seem
like programming now but back then that was you know you were
writing batch files that was programming
uh you know DOSS you know DOSS BAT files and then you're writing
dbase files and writing databases and this isn't like today when
you go into SQL you UI to kind of build a database you built the
database through code you know you have to execute these things and
write programs in dbase and I started doing that in that point and
I started to realize that two things first of all I I kind of got a
bit of a kick out of building things and seeing them execute on the
computer you know I think that's probably why a lot of us are in
this industry that magical moment when you build something and the
computer responds with what you said it would do and you oh wow
this works and and it and I was at I ended up with a job I think in
in the early 80s writing some dbase code for it was a vacuum
company Kirby vacuums if you ever remember
I was writing some code for them my sister worked there at the time
and they'd asked me to come and fix this computer thing
and so I I think that for me was that moment when I went I can do
this and it's kind of fun and I think we said this in one of
previous podcasts the limits were unseen to me I didn't know how
far this thing could go. So the opportunities suddenly in front of
me became huge you know like what else could I program this thing
to do.
Yeah.
So yeah for me that was it. And then I you know then I did some
pearl programming uh when I worked for Tivoli software in the 90s
uh pearl bit like Pascal in a very simple interpretable language.
Um and that's it until I really got back into Python when I started
today you know doing what we do machine learning.
The other thing interesting thing when I was learning coding as
well was that it helped me with ma my maths quite a lot. So like I
I with you you're talking about the games bit there and I was doing
that I was like hacking up other people's codes but then I also
remember there was a moment where I think it was using basic again
because that was like a great language to get into but when you
could start like I think it was quadratic equations you know when
you go or even Pythagoras you know some of the some of the um
exercises you had to do were were you know signing variables and
doing simple things you know like uh a equals b time c and things
like that. Suddenly it started to the algebra element started to
make uh resonate with me and make connections and I was like okay
you know on the order of operations and bodmass or whatever they
call in schools these days but you know thinking about the way
things happened and stepping through that sort of did a reverse
thing and help me with my maths a little bit because I didn't
really like algebra but then when when I started to do things I was
going oh I could do a program to work out quadratic equations here
that isn't that hard now you know set up your variables, you then
do the the steps a little bit at a time like we saying about
problem solving. Um, and that was that was quite interesting I
suppose for me. But then I started to get when I was in uni then
started to go into object-oriented programming and that was
like
that was very confusing. I remember a lecturer trying to illustrate
abstraction and encapsulation and these complicated topics where
you you talking about like a cat and saying well if you're going to
make a cat you could what what parts could you reuse the eyes, the
years and it was blowing my mind that I was like this guy is
talking talking nonsense here.
It seems so logical, doesn't it? When you look at programming today
and reusable code model, but
but back then it was this like it just didn't make sense that you
could what you mean you could build a thing and then come back to
it and reuse it and it's efficient coding models. It makes it was
kind of hard to get your head around. I think
it was I I really struggled with that and and you know and you had
to use with C++ a lot of function or C. Yeah, you you was just all
function based and you had to think well where I had to call you
end and your code ended up like really small. It was just like
class something or other call call function and that was it you
know you had like
you know what really threw me
when you're talking about C and that calling the classes
I this is that when and C never never gelled with me C didn't
because this idea that so Pearl and Pascal you didn't have to
predeclare anything you could just declare on the go you know and
create a variable when you wanted to use it and But in C, of
course, you had to declare your classes. You had to and declare
your variables up front and then you can and and I just no it just
I could never get my head around C.
And that that's that's interesting because that's why Python drives
me mad. We we started we we toes about programming, but Python used
to drive me mad because mad because I was teaching kids it
and you know they would they would do errors all the time because
in the other languages like say basic or Pascal and some of the
other things and see you'd be you'd have to think about the at the
beginning and go okay well I I'm setting up my name and my age say
not you put age data birth but you put name and another field and
you'd specify them as an integer or a string and you'd know what
that is whereas in Python you kind of go oh well
Dan in one minute it's text and the next minute you can change it
to a number and it doesn't matter and well it does matter but it
doesn't really matter
but it's doable and yeah so you you can set Dan equal to or name
equal to Dan and then name equal to 54 and and it would break a lot
of the things that that would worry me and the only reason it would
worry me is because it took longer to blinking fix when you would
have all these errors so you know you'd be all methodical about it
right let's set all my variables up
that's true yeah
that's true and and maybe that point I mean you said earlier about
the you know the importance of teaching coding because it teaches
you that sort of the the process of problem det problem management
and problem thinking through But it also teaches you logic and
teaches you to think pre-think about your your problem domain
before you actually address the problem. Whereas you know Python
and other more modern interpretable codes. You don't have to you
can kind of start from nowhere and build yourself up to it. Whereas
other older structured code you needed to be thinking about it. I
have a question for you Dan. I got to go back to this one because
because we started our fight C64 versus Spectrum.
Yeah that's right. Yeah.
But something I remember really deeply from the from the C64 era
and I don't know if you had the same thing in this Spectrum World
was the demo scene era. So out of Finland and Sweden and the the
sort of Nordics were amazing. And what was what truly blew my mind
was these people who built a computer, you know, Commodore whoever
built the computer and these programmers could do more with that
computer than the person who built the hardware who who soldered
the chips together had ever thought it was possible to do. You
know, they were putting scrolling text in the borders, which
was
technically impossible on a C64, yet it was possible to do with
amazing programming techniques. It just shows you that how
important programming is in its relationship to the hardware
because programming changes the hardware. Yeah. Did you have a was
there a similar thing in
Well, well, I went on to I went to Commodore Amigga, you know,
later on and that was like
deep like the demo stuff, you know, that's really it feels really
nostalgic for me that because
you know it still goes on now by the way. It still I've well I've
seen some of the I every so often I'm on YouTube or whatever. I'll
have a look at some of those demos because like they they're quite
emotive. You watch some of them and it's just a bit of music and
scrolling text and things and then it just got better and better
and better and smoother and the graphics the people you the way
they used to manipulate graphics and and 3D was phenomenal using
you know the the code you know it wasn't no no other um
tools around it I remember um one of the activities I had to do in
um in uni where I I had one 3D graphics module and we had to code
and and my my lecture assignment was religious and we had to do a
church our assignment was we had to do a church the spire on it and
rotate it and and I could get it like like about 200 degrees around
and then it would explode. Like I I still pass the module, but I
just could never work it out, you know, the maths and the the and
you know, that was 15 years after all the amazing stuff on that
demo scene, you know, is it's amazing stuff. It was amazing. The
demos are amazing.
They were certainly amazing. And as I said, I think the key thing
and to kind of get us slightly back on topic is to just address
that issue that you know whilst the development of computers and
hardware has been an amazing innovation in humans capacity for you
know innovation in technology it's really actually programming that
has broken down the barriers of that hardware to see what's really
possible I mean programmers are in many ways the the pioneers of
what's possible the hardware builders create the platform and then
programmers seem to just take it up
the shoulder of giants exactly so when we look at the programming
languages then Let's just do a a quick kind of whistle stop tour
around some of these. You've mentioned Python quite a lot and I'm
seeing that quite a lot now in you know in school you see it but
I'm seeing it a lot in industry you know when I was teaching the
school like I said earlier on I thought it was a bit of a jokey
language you know is on Raspberry Pies and you know kids are
learning it and like I said the variables are all over the shop and
then suddenly in Microsoft people are getting paid heaps of money
and in our customers because they're actually coding in Python um
to do machine learning. This is quite popular now.
Oh, it's it's crazy. You know, one of the things I remember that
just threw me when I got into the IoT well, when I was the product
manager for IoT and we started to see this real uplift in
agriculture sector in the farming industry. Um, and of course now
it's, you know, we talk about it's agrich and it's a whole industry
of its own, but we were starting to see these farmers and and I
don't and I say that with the deepest respect whose lives were
nothing to do with programming and code, but getting access to
these sensors or putting technology on their farm or just having
cameras in the farm to can see things and having to write simple
code in order to automate their lives. And that's what it got me
thinking was it's not so much even about the industry it's in or
anything else.
Why do we program with computers? We do it
to automate our lives or we in industry a lot. We do it to automate
processes. We make things simpler. And it makes me think now back
to those the punch cards. Why do we build punch cards? Yeah. To
automate a process and make it repeatable so you get the same
response. And that's we're seeing it now in in as I said in
agriculture in all range of other industries and it's um it just
shows me how prolific programming has the resurgence of programming
has become as a way that we now operate almost every industry you
know back to that point every industry.
Yeah. And and when when you're looking at where kids are learning
to program these days nowadays you see where they start to do block
based programming in Scratch and other tools you know sometimes
adults have started programming through that as well. There's a
flick switch usually between where you can swap between block
coding and Python now because that's quite popular. So you can code
in say Minecraft and flick it into Python or you can code directly
into Python in Python uh uh you know in in into Minecraft and the
other language in there which is really popular uh as JavaScript
you know and that's obviously not Java we got to be clear about
that this is you know the name you know throws it a little bit but
that's very much around your kind of web- based technologies uh you
know things like Amazon and Wikipedia and Twitter They're all
running in, you know, J on JavaScript. All your browsers run on
JavaScript. So, it's a really handy like language to have if you're
looking at that web development site, right?
Yeah. Look, and I mean web development, I remember learning about
it when it was HTML one and we were learning how to write, you
know, pretty code. And then now, of course, when you look at any
any website today, any good website, of course, there's HTML
structure around it, but it's Angular, it's JavaScript, you know,
there's going to be all sorts of stuff in there that maybe even I
don't know these days, you know, you have Swift because it's on iOS
or other things. It's it's it's quite a rich ecosystem, isn't it,
in that web development environment and and I guess different code,
different programming structures, different languages make better
are better tools for different services, I assume. I mean, I'm not
a deep programmer these days, but you know, I hear Angular's much
better for that client side side of things in Java or in in
web frontends where you want uh interactable front-end code on the
client side that operate that runs on the client, not on the
server. Um but it's become very rich and very um you know your
choices are are very wide these days aren't you as a
programmer.
Yeah definitely and and the other ones I've seen on on the web
obviously Ruby on Rails is quite a a popular one as well and it's
and it's interesting what you mentioned swift there as well because
obviously you know you've got that element with Java the program
language for that Java is a program language I'm going mad here but
yeah Java is uh useful Android app ecosystem predominantly and
Minecraft and things like that and and then Swift is used for like
your iOS and your the Apple Watch OS and the Mac OS and things like
that. So, it's an interesting one where there some of the
proprietary software and hardware uh require their own coding
platforms as well. So, there's even though we're saying that it's
leveled things up sometimes, you know, Apple have now really tried
to focus in on their coding platform and Swift to really drive the
maximum out of their hardware as well, you know.
Yeah, of course. And of course that makes a lot of sense to them,
you know, and when you what what I remember when um when Zamarind
became, you know, some I think Microsoft acquired them and but they
started to appear on the market to kind of fix that problem of
that's right,
you know, I want to build something. I don't want to be just on on
Android with swift on iOS with Swift. I want to be on Android. I
want to be on all the other platforms.
And I still struggle. I mean, Zamarind's a bit to me it's like one
of those it's like quantum computing. It's just this idea that it's
it's an open- source crossplatform development to let you build on
any of those services and runs and it just interprets between them.
So it knows what a you know a a toast popup on Android looks like
versus an iOS one. You build once and deploy across those. I think
those kinds of tools are really they're those moments that just
completely change the way programming people think about
programming because now it's
just become even easier to reach a broader set of tool sets and not
have to be a Swift expert and a you know a net expert and a C
expert. I think it's it's it's incredible just how how much
that's
definitely yeah the other side of it just I was just thinking as
you were talking there the other angle on this angular but the
other angle on this is also the coding that happens in the back end
I don't know if we can distinguish those two in in another way but
what I mean by that is like the SQL coding or bash coding and
powershell which we use a lot in Microsoft there's kind of like a
there's almost like a functional coding element as well where it it
isn't necessarily it is a high level language but it's not as you
know it's not like you're creating code to make the Amazon website
or or whatever it might be or Netflix which is done in on on a new
platform called cotlin the you know you're actually developing
databases and actually coding to you know put user permissions
across user accounts and things like that as well so there's other
element of coding which isn't under there
well and the thing to think about it is if you look back you know
in the in the old days when you and I think about programming and
you'd write a a game or you'd write a piece of software and you'd
basically write it in its entirety in you know C++ or whatever your
language at the time was and now of course everything is more
distributed object-oriented and separated but the key innovation
that's kind of making all that easy to do because yes you've got
SQL over here and R over here and Angular over here the big thing
is APIs and of course you know we we could do a whole episode on on
APIs but the fact that application programming interfaces the way
that a program and another program can communicate ate using a set
of common languages or common interfaces really changes the way now
yeah you build an application run some SQL over here you run some
Ruby for the back you know service application framework you've got
some swift on the front end you've got Java pulling over here you
might have some IoT MQTT functions running over here
and APIs are what ties it all together so
that's really good point actually yeah we we could do an entire
episode on APIs as well I suppose but that might shut everybody off
apart from the two
yes I think so I think So you know what we should do? We should get
back to what you and I do best which is talking about popular
culture.
Yeah. So absolutely. So you know like it does evoke a lot of things
for different people and it definitely evokes some movies for me
when I'm thinking about programming and coding because that was one
of the things I don't know if it was a part of the time. It was
really driving. There's a lot of movies around in the 80s and the
90s to kind of make you think about um coding and computer science
and there's lots of things that when When you look at that, you
know, there's entire reels and Reddit posts about where they get it
wrong in movies where they p, you know, they they they type in and
code just flying through, you know, in things like Jurassic Park
and things. There's some classic classic elements there. But in
terms of like the things that made positive impact on you when you
were when you were growing up, what were the kind of uh popular
culture things and movies that were that were driving you?
Look, there's there's probably a lot, but I had to thought about
this and so um and we should put it in the in the show notes
because I if you go dig around on the internet there are people who
spend their entire life debunking the code you see on the
screen.
That's what I was talking about. Yeah, exactly.
I've got an interesting one which we'll talk about later on. But so
they're out there. So look um okay look so number number one for me
if I think back on the time was war games which I think was around
1984ish I guess probably
and I remember watching War Games and if you kind of for those of
you older listening mid 80s if you were a computer programmer, if
you were into computers, you were kind of not in the cool sect. You
were the kind of nerdy kid that was into computers. And I remember
watching that and Matthew Brick was a cool kid and he was doing
cool things. You know, thermonuclear war was probably not cool, but
stopping thermonuclear war was pretty cool.
And I watched that movie and it for me in many ways it kind of
legitimized the idea that because I was interested in acoustic
couplers and modems and computers and dialing and connecting via it
was okay. It was normal because on on the screen and we talk about
today in modern thinking around you know you can't be what you
can't see but right then I watched war games and thought well that
looks a lot like me so I feel legitimized so that's my that's my
earliest memory and the one that I think about most what about you
what's your first
yeah well I think war games was one for me as well but then I think
you you got Tron as well where it they weren't necessarily
programming but it was there was a lost fighter was another one as
well where you where you I suppose mine was like game orientated
angle. I started to get interested in that because I enjoy playing
games and they brought me along. But then there was a there was a
series of movies and after war games and then and then in early 90s
which was all predominantly focused on hacking. So there was like
one called hackers, there was sneakers, there was and and it was
very much a these cool kids like teenagers or whatever which were
trying to hack in or get into systems and things and that. It was
it was sort of like the the good and bad side of it all. And that
that kind of like started to spur me on because it kind I I kind of
that resonated me because I've always wanted to I suppose when I
was changing people's code that initial experience for me that was
where I was kind of coming from and I think that those things made
me and and like it's always the bad isn't it that kind of drives
you sometimes you kind of sit there and think wow you know like
there's some really interesting things there and often the you know
whenever something is invented always the negative side of it
drives, you know, even more innovation sometimes, you know, with
security and encryption and all that kind of stuff. Um, but that
that those kind of genre of movies where they started to push the
boundaries
um and and started to, you know, hack into things like with war
games and they hacking into the the NSA and whatnot. Um, yeah, it
those those films kind of started to drive me, but they were quite
superficial though, really. Not really in there.
Well, I mean, there was Yeah, not really. And and as you say, They
really kind of still put hacking hackers or whatever they termed
that was badge for them into that bucket of almost a bad thing. You
know, it would took a long time for hacking to become a legitimized
kind of activity. I mean, it was always considered in that n in
that 90s era
as hackers were bad people. You know, they were trying to bring
down the system. They weren't necessarily working for the system.
And then I and and again, everyone will know the movie, but
I think it was 1999, which seems ridiculous now when I say it, but
of course, The Matrix. Yes.
Which was the absolute kind of the idea that in fact we are
programs
and you know that was this kind of the you know the the if you if
you made your head around the matrix the idea that we were all we
were just programs in a system we were we were operating within the
construct of a computer in of itself they we were the beings within
it the programs within it and the you know agent agent Smith or was
the uh um Mr. Agent Smith was the bad guy he was a bad program a
virus if you like or you know bit of code and I think that was
always a you know it's a fascinating idea on the ab action away
from it. I won't say that it necessarily inspired me in any way
because it's not a inspiring movie, but it's an interesting one.
And then the last one I'll sure you got some others, but the one
that I wanted to share with you because I watched it recently. I
don't know if you saw it. It was on Netflix. It's called The
Billion Dollar Code.
I haven't seen it yet. It's what I want to see.
Yeah. So, yeah, it look Netflix series. So, it's kind of dubbed in
into English if you want to watch it in in English or you can watch
the subtitles, but it's about the the guys that essentially created
um and my mind's gone blank now on the name of it, but they built
the precursor to uh Google Earth, or at least it was arguably they
said they built what Google Earth is, showed it to the people at um
uh who built the Oh god, well, I've just had a mind blank. It'll
come. I'll put it in the show notes. Um but they showed it to the
people that were building the the computer system, silicon graphics
computer systems at the time.
Oh yeah. Yeah.
Which ultimately made its way to Google and Google created the
Google Earth. And it's a whole story about the kind of the who did
what first and who stole what code. But it's it's really about
program and what they could have done and how they solve problems
and how these code changes the world. How code like Google Earth
and data created a world today that is incredibly smaller and
different and how we can see the world from anywhere from our
desktops here.
Yeah. So, it's a great series you should watch
and there's I will definitely and there's there's also several you
know the the one about uh jobs um pirates Silicon Valley one
there's a whole heap of social network which have talked about the
actual um
uh I times and significant times where companies have been born
whether it's the Bill Gates, Paul Allen, Steve Jobs components or
uh Mark Zuckerberg. The other interesting one though on a purist
note so it's not technically programming but
the one that was really powerful was the imitation game because
that was the one which looked at Alan Turin's life and the way he
deciphered the enigma machine because obviously all of that was
hash and with a colossus machine at Bletchley Clark and so on. and
and I suppose the impact of that saving you know the reducing the
war by two years and saving up to 14 million lives so important
historically to have things like that on record even though it's a
dramatization I think I suppose when I'm looking back at popular
culture they kind of talked about some of those stories but then
also those ones looking forward are the ones I enjoy as well so I
like the nostalgia things looking back and thinking about what we
could learn from you know I think we can learn lots all the time
about the Apple Microsoft um shenanigans and and you know all all
through history you know it always repeats itself. So it's always
good to to kind of look at those things um uh all the time to
refresh your mind and and to kind of make sure you learn going
forward but then the things that push you like um Black Mirror and
things that allow you to where where some really interesting
screenwriters like Charlie Brooken so they know what the technology
can do. They they technologically savvy and then they extrapolate
the the future onto those things. I really like those movies now,
you know, because, you know, I I I don't know whether they're going
to be nostalgic for people and what effect they'll have on my kids
like War Games had on me. I wonder if it's going to make people
more ethically um sound um about users. Who knows?
No, it's a good point actually is the impact they're going to have
because you're right. I mean, something like War Games or Pirates
of the Silicon Valley, which you know, I've seen and they're not
necessarily that old from my youth, but they tell me a story about
something that is intrinsically so deeply embedded in my psyche of
this world I live in of computers and Microsoft and Apple and the
history of all the valley and what went on there. Um, you know, do
those other movies that they tell a different narrative around the,
you know, the the the imperative of of taking responsibility and
ensuring we're building a good future. I don't know. Look, who
knows? But, um, there's a couple of other ones, by the way, you
should uh add to your viewing lists yourself, Dan, and others
because Pirates of Silicon Valley is an awesome show. Just really
well acted beautifully done. Um, if you haven't seen it, there's
one called Triumph of the Nerds, which is a similar retelling of
it, but a bit more of a integrated story, but more than just Apple
and Microsoft. And then there's another one which I've actually yet
to watch, but I've seen it and I've heard people talk about it. I
want to watch it is called Halton Catch Fire, and it's actually
about the broader story of Silicon Valley, birth of Silicon Valley.
Uh, so the history of Hula Packard and IBM and Apple and Microsoft
and and um Sun and all these companies popping up probably a super
nerdy drama dramatization, but I heard it's a really good show.
It's all connected, right? You mentioned Sunday and that reminded
me of Java as well because there was, you know, it's it all
connects. It's always, you know, it's always important to to look
at these things and see where it all comes from. So, you talked
about the future.
Yes.
Um, we've talked about why programming and where we've gone and
where we are at the minute. So, where does the where do you see the
future in coding? So, the people listening in today, what what
should they start be thinking about in terms of the future, where
does it where is it going?
Uh, look, it's a it's a hard question. I mean, so I think a couple
of things I'd probably say is what what we said earlier that
frankly coding is no longer an activity that people in it do.
Coding is now a thing that is changing the way that almost every
industry does. So when I talk to to young people or others, anyone
about kind of careers in technology, I say look, if you're
interested in agriculture, banking, farming, science, research,
academia, whatever you're into, programming is going to be some way
a tool that's going to help you do it better. So I see that as
being I still see that as a fundamental skill set. But of course
the big thing that the world I live in is the fact that all of the
artificial machine learning evolution we're seeing now is driven
largely by an effort of programming. You know we know that it's
about data and it's about algorithms and about the models. But
those models and those algorithms are coded instructions knowledge
representing or code representing knowledge written down. in
Python, in R and other things. And so for me, that's, you know,
that's the next big sort of leap wave leap we're going to take is
just how much pro we to the point we said earlier about how people
were cutting, you know, writing uh text outside the borders on the
C64 in the 80s for the demo scene. What are those demo scene coders
of this generation going to do with AI programming
given the amazing hardware they're getting their hands on today?
That that I think that leap is where we're going to see.
I agree. And I think from from my point of view as well. The the
nuance in it is also about the the fact that there's a lot of tools
and technologies now which are democratized AI and and all of those
kind of industries and segments within in those. So you citizen
developers are being empowered. So I think there's going to be
we're going to see lots of people doing stuff with drag and drop
interfaces you know creating machine learning models training
things for example and doing stuff. Then underneath that we need
people to be a ble to be the power users to be able to take it to
the next level. So I think there's going to be more people thinking
about coding from the citizen development point of view where
they're using power platforms and whatever but you know Unity and
those engines that make it so beautiful to create some complex
algorithms to shine light on things but the the people who are
really going to excel and take things to the next level are going
to be developing that. So somebody working in medicine should learn
to code and you know there's people probably people thinking to the
podcast thinking well really do they Well, maybe 70% don't. They
they they need to understand how to use software and get it done.
But the ones who are going to cure cancer and the ones that are
going to do something that's extra special that moves humanity on
are the ones that know to hack the system and get in and go, I
don't just want this visualization. I want a better one. If what
happens if I correlate this with this, would that give me a better
the result, you know. So that's where I that's what I see it
because I think sometimes when people are listening into you and
I've said it myself, you know, you need it in agriculture and it'll
be farmers thinking, "Oh, well, do I really need it?" But they're
going to be left behind or they're not going to be on the edge of
something special. I think
I think excellent point. It's not everybody. Some people will, but
everybody if you I think everybody needs to learn that code is not
something to be afraid of. Code is something that can be used. Um,
definitely definitely. So, I've got one thing left for you because
as you were talking Yeah.
and as we've been chat about it, I went looking around at this
whole movie trivia programming thing. Um, and we've talked a bit
before about, you know, I'm a Star Wars nerd and and I think Star
Wars is an interesting universe,
but I went looking so so that I was going to talk to you about the
whole binary evaporators and the language of binary evaporators
because I think that's also Oh, go look at No, no, go Google
moisture evaporators. I didn't realize just how important the
learning the binary language of moisture evaporators actually is.
But in the Star Wars law, this is the very f this is the way in
which people live on these planets like Tatooine and others is
because they can pull moisture out of the air using a binary
moisture evaporator which is very similar to those binary load
lifters. However, the point I wanted to share with you and we'll
put this in the chat in the uh in the show notes. There's a
screenshot from Star Wars uh with C3PO doing some talking about
something and in the background is a computer screen with some code
on it. Yeah. And somebody has gone into that screenshot looked
looked at it, zoomed it in, trying to figure it out, and they've
determined that it is C64 assembler code. And I kid you not, line
three, B& branch if not equal. Dan, you are you are vilified. Your
coding knowledge exists and it is referenced in Star Wars. You win
today's nerdfest.
Oh, that's brilliant. The binary moisture evaporators are going to
be my next search now as well because that's I love that low inside
Star Wars. Brilliant. Thanks, Lee.
So, thanks today for listening to this podcast. We've got a a
couple more coming up because there's lots of exciting things
around um STEM and Imagine Cup uh Junior which I know you're
involved in Lee but thanks today for sharing your knowledge on
programming and let's see you next time.
It's always a pleasure. Thanks mate.