- And I'm like, really? You're gonna make me restudy my trig just to pass the quiz
in your stupid course. I wanna learn how to program. I don't wanna learn
how to do trigonometry. If I were to start a startup,
I would go kidnap them, you know, go to their
farm with a helicopter and say, sorry, you can't just
stay on your farm and fish. You gotta be in my startup now. Oh, wait a sec. (upbeat music) - This is an interview
with Dr. Chuck Severance about becoming a master programmer. He's a clinical professor at
the University of Michigan, school of information where he teaches various
technology orientated courses, including programming database
design and web development. However, Dr. Chuck is probably best known for having the largest
Python course in the world. His course Python for everyone on Coursera has 2.4 million students. This course also has a huge
amount of views on YouTube. That's not his only course however, he has 50 courses on Coursera and in this interview, we are going to talk about
some of the new courses, which he's making freely
available for you to learn Python and other of technologies to
become a master programmer. He's done many things in his life, including being a TV host
of a show in the 90s. He's also been a longtime IEEE columnist and has contributed to
various open source projects, including Sakai and has
co-authored IMS learning tools, which are used by sites, such as Coursera. He's not only into technology,
but he's also a race driver. You can see a lot more about
him using the links below, but without further ado,
let's cut to the interview. What I liked about what Cisco have done, I got my CCNA 20 years ago. Probably more than that now
is it's a structured path. It's like, if you hear at zero, if you walk down this road like CCNA, CCNP, CCIE it gives you
a nice structured path and it's great for employers, because if you are looking
for someone on a job site, a network engineer or sort of
a certain level of knowledge, like beginner, you just search with CCNA or CCNP for like mid tier and then expert would be like the CCIE. - Well, you chose a great
path to augment, right? Because you can build from
kind of the skeleton thing and the other thing that's cool is that Cisco lines up well
with the needs of the industry. - Yeah. - And it used to be that Cisco was the only router on the planet. I'm sure that CCNA is now
more of a generic concept than it was in the earliest days. - Yeah. - Meaning that you kind of
know what an IP address is and you know what layer three is and you know, that kind of stuff. And so it doesn't matter so much exactly what router you're
going to be working with or what brand of stuff. - It's still the defacto and it's still very Cisco ish focus. So at Cisco CLI, but Cisco CLI like the
interfaces become defacto. - Really, so people
imitate the Cisco CLI now. Okay, why not, right? It's kind of, it's like Unix for-- - Yeah exactly. - For software development
and run servers. - If you go to Aruba, which is now HPE. So HPE originally, they
interface is very, very similar and if you go to Arista, they interface, Cisco actually sued them. Their interface is very similar to Cisco, like too similar in some ways. Yeah, some of the vendors are different, but generally Cisco just became
like that defacto standard. other certs are nice to have but if I was like recommending
someone new in the industry in networking, I'd always
say, do CCNA first, if you wanna be in networking, and then you can decide where to go. - I think for programming that
solid backbone isn't there. - Yeah.
- Right? There is no industry
or academic credential that is programming and I separate that from computer science. That's kind of one of my big things is that is computer science
the way we prepare programmers, you know, and that I would
ask the same question as is the best way to
become a network engineer is to go get a degree in computer science. - No. - No, exactly. Exactly, it's not one. And I don't know how much you program or how much experience
you have programming but my observation over
many, many, many years is that that's not true for actually computer programming either. Computer science is not the
way to prepare for programming though computer science is the way to prepare for programming. There is a lot of filtering
going on in computer science. It's hard to get a computer science degree without having a certain set
of very foundational skills. It's really a measure of horsepower rather than driving skill. Computer science builds
you up to be strong. There's no question about that, but it's not like they can
just drop you in and say, here's your steering wheel go drive. You're just kind of raw material at the end of a computer science degree and that's actually my
current fascination. - You saying that there's a difference between computer science and programming. You know, if you look at the industry, computer science is the
way it seems to get. - It is the way. - To become program.
- It is the known way, right? It is the known way. And the reason it's the known way is that there is no other known way. - Yeah. - And so it's better than nothing, right? Saying, I need a computer
scientist is better than saying, I just need a random
person off the street. And what you get when you
get a certified degree, whatever computer scientist that you get someone who's trainable versus someone who is, you know, and again, a CCNA person in networking can do the work pretty soon.
- That's right. - At least the simple work, right? They know what's going on. They know what the rules of the road are. So, but programming is really different. I mean, I don't know how
many brilliant programs that you've known in your life, but all of the people that amaze me and that if I were to start a startup, I would go kidnap them, you know, go to their farm with a helicopter and say, sorry, you can't just
stay on your farm and fish. You gotta be in my startup
now, oh, wait a sec. They could stay on their farm
and fish and be in my startup. (host laughing) But If I was gonna go
grab them in recruit them, these are not necessarily people with computer science degrees or if they were the reason
that I'd want to work with them is not because of their
computer science degree. It's because of their skill it's because their skill is pro, their skill is programmers,
which to me is very different. I think one of the weaknesses
of computer science is that so few computer science faculty have ever been programmers. - Yeah.
- I mean, they, the way to become a
computer science faculty is be good in a computer science program and then get another
degree and another degree and if you think about a
computer science master's in PhD they are narrowing
rather than a broadening and what happens in the real
world is it's a broadening. You move from basic skills to broad skills and more importantly, working with people. If a professional programmer that is absolutely not
taught in computer science is the notion that if
you're working on something that's 20 years old in
a million lines of code, there's a lot of people involved. There's a lot of personalities involved. There's a lot of people involved who aren't in the project anymore. - Yeah. - And yet you are faced
with a tiny little bug that happens in some really
arcane set of circumstances and you gotta track the bug down. You gotta build tests for that bug. You gotta reliably do it and then you gotta submit
it to a review process. And it's 14 lines of code, but it's 14 out of a million
that literally nothing, zero of what you were
taught in computer science helped you on the path to a 14 line patch in a million lines of code. - You, I mean, this is a
very interesting discussion 'cause I mean the networking
sphere and I mean, I get it in whichever sphere. There's this whole thing is a degree necessary
to be successful and-- - Yeah
- I think, you know, In networking like using the CCNA example, if someone's got a CCNA
and it depends obviously, but generally CCNA, CCMP, you can hit the ground running
with a bit of mentorship. You can hit the ground running, you know how to configure a device, but what you're saying
is the problem with an... I'll just play devil's advocate here. The problem with university
students is they come out and then they need to be taught. - Well, you're not really, you're in the wrong place to call that a devil's advocate position because I would say the exact same words and partly because that's
who I was when I came out and because I have interacted
with 1000s and 1000s of some of the brightest
computer scientists by far the programmers that are amazing were amazing before they started
a computer science degree and they got better in a
computer science degree but it's very rare for me to meet someone even at the world's best
schools that I would say, I wanna hire you right now
because I work in open source. - Yeah.
- So I can't afford to hire a top level computer
scientist for $125,000 and then not have them be
productive for two years. Well, they actually figure it out. Imagine a CCNA comes in and it's like, well, okay, I'm, you're gonna pay me 90,000, $100,000 a year for two years and I'm gonna learn
networking on your money. And so that's the problem and the places unfortunately, if you hire someone with
no skills whatsoever and you give them two years, they're not gonna be as good as that computer scientist
will be after two years, but if you look at Google and Amazon and you look at their
insane coding interviews, they're not interviewing for the job they're interviewing for
your ability to learn on the job at a prob probable cost of a quarter of a million
dollars per employee of training and what's frustrating to
me about that whole scenario is that it is difficult to be smart enough to pass a Google programmer interview. - Yeah, I heard a lot of bad things, yeah. - But it turns out it's far less difficult to be a great programmer and if you took 20% of the time that you took preparing
for the Google interview and prepared to be a
great programmer instead, you would be a great programmer and be ready for the programming interview but why is it that computer
science can't do that? And the answer is, you cannot find in a
computer science department, at least someone with credentials and on the curriculum committee and influence who's ever written a program more than, you know, 450 lines of code and that lasted like maybe a week and then they threw it away and that's all what computer science is, you're right, you know, 1000 lines of junk code
that passes the test, you get your grade and then you're gone and you throw that away
and it's not onto next week and it turns out that
that's exactly the opposite of the skill required for a, what I'll call a master programmer and all the master programmers that I know there's not a college class they ever took that created them. And I would, I'll say
that about myself, right? There is no college class. I'm really glad I have a
computer science degree and training. It saves me all the time but the thing that makes
me a good programmer are the people that
I've met and worked with and known over the years who
were had skills I didn't have and they mentored me up to the level of that they have. You know, I've been
doing this for 40 years and I still have mentors in various areas who are smarter than me. So it's not like at some point you're the guru wizard
and you know everything. No, you're always in a network of mentors and mentees and you are a mentee. I will throw my coffee
cup across the room, just like a person who's 22 years old and I will be so mad and then I'll get ahold of my mentor and he'll say, oh yeah,
you just forgot that. And I'm like, yeah, that's right. I thought that, oh (laughing) and so you're always being
mentored in programming. I'm gonna guess, you know, if
you are connected to people who are really wizards at networking 'cause one of the things
that I, that, you know, there's sort of like IP
addresses and routers and VLANs, but then there's also thing like, things like being connected
to of the whole internet and having dynamic connections and multiple dynamic
connections and air failure and I'm gonna guess that's
not all in books, right? - No, it's interesting
because, well, I'd say it's quite a surprise to hear you and I just told people who don't you well, you've got a PhD, is that right? - I do PhD in computer science. - Hence Dr. Chuck. You've been in teaching in
universities for a while, is that right? - Well, I started teaching
at community college in 1980. So yes, a while. - So it's been a while and
you saying that the system, I don't wanna put words in your mouth, so correct me if I'm wrong, but it sounds like the system is broken. - Completely (gears chiming). The system is completely broken and it has to do with the fact
that it's an echo chamber. I mean the faculty never get out and they stay in the
research that they do. The way they're rewarded is
all about narrow-mindedness and even when you talk about things like software engineering, which as a word, software
engineering lower case is very different than software
engineering upper case, right, and so software
engineering upper case is book learning and terminology and little
statements that you make like I'm the business no, I'm
the business owner of this. Okay, do you know anything? It doesn't matter. I've been appointed as
the business owner of this and so software engineering
had the potential to bring the real world in, but no the software
engineering was reduced to some kind of formulate
powdered knowledge that then you just add water
to make real knowledge. But because of the fact
that it is the gateway to $150,000 entry level jobs at Google, they don't have to fix themselves and so I don't expect to fix themselves. I'm not in a computer science department. I am not a faculty member in
a computer science department. I'm a faculty member in
a school of information. My stock and trade when I
first was hired to teach was to teach Python to librarians. - Oh well, yeah. - And so I see myself more as a Mr. Wizard or a bill neither science guy
than I see myself as like, you know, a guru on top of a mountain waiting for my students to crawl up to me. I mean, I'm just trying
to say, look what happens when you pour this in with this and then like smoke comes
out, isn't that fun? So for me, I'm more of a outreach person trying to outreach to things that I love and that bring me joy
and financial success. I wanna share those with
others the way, you know, a television personality would do so to explain it to the masses
and that's been my success. - This is something that I've noticed in the last number of years. I used to train classroom based training that morphed into like online training and that's in my journey,
that's morphed into like Udemy or Coursera like yourself and you've got millions
of students on Coursera and your actually looking into YouTube. You've got like at the moment, 3.8 million views on that one, yeah. - Yes, yes, I don't monetize those. People think I'm very wealthy 'cause they just look at my views, but I don't monetize my teaching views because then people can't
embed it into their course. I don't wanna them teaching Python, having little ads crawl across the bottom. So I go carefully, anything
educational I don't monetize. - There's this whole mindset
I think in recent years that university is gonna be more obsolete and I said a word carefully because education is
available now on platforms like Udemy, Coursera, YouTube. I think a lot of people can't
afford to go to university. It seems to be for an elite
or you get into crazy debt to, especially in the US. To get a degree not everyone
can earn the kind of money to go to a Harvard or MIT or whatever. - Right, and so one of my goals in life and that lined up really well because I'm at the University of Michigan, which is a public university, you know, Harvard and MIT are
just corporations basically is that we are marinated in
a soup of public service. As public service is not our main job our main job is to make
money and do research, but it is just part and parcel of the environment where I
am at University of Michigan, that we're supposed to do something good with our riches, right? I mean, we are privileged,
we are in the Ivory tower. My building is beautiful and
my students are well prepared, they're amazing from all over the world and I enjoy being with them. At my school that's, that it
doesn't stop there, right? I have a responsibility
to create greater good and each year I'm evaluated
on the kind of greater good that I've created and so at
the University of Michigan, our success in massively
open online courses, MOCs, Coursera, edX,
Future Learn all those is because it is in our DNA
and so when Coursera arrived, it wasn't like we've went, Hmm. I think we'll make money
on this, we didn't. We thought, wow, this is a great way for us to
achieve our outreach mission, not to change completely
to making money online, but instead keep doing what we're doing and then use this to prove that we are changing the
world in a positive way and taking that which is give
to us and sharing it in a way. And so that's why we just dived into this and I just dove into it feet first and when we started,
there was no money in it. There literally was no money. I mean, it was close to five years before they really started making money and what happened there is by
not focusing on making money from the students right away. They figured out what the students wanted and then all of a sudden, okay,
now we've got them coming. We've got the right
material and the way we go. And I think that the prediction
of the end of universities is way overstated. I think that there are things that universities get away with that are not long for this world. I think the universities that
have a inward looking brand and not a outward looking
brand are going to suffer and if you look at the top
20 universities in the world and look at them 20 years
ago and look at them today, you probably will figure out that those that went up in that ranking were those that had a real external, a much more external
brand and influence lives other than the ones on their campuses. And if all you did was influence
the lives of the students that come to your campuses,
you are sinking in the top 20 and if you are influencing
people broadly around the world, you are going up in the top 20 of the worldwide universities and that's a tough nut to crack 'cause some of those
universities in that top 20 are 800 years old.
- Yeah. - Nearby where you're at, right? - Yeah, sit down the road. - And so, they've been at it for 800 years and some in the US have been
at it for like 200 plus years and so to crack your way
up in some of those things with Nobel prizes and
all that, it's not easy, but public service outreach,
greater public good is a way for a university
to distinguish itself. - If you were 18 today
or 25, it doesn't matter, but like, I'd say, you're starting out. How do I become or how would you become if you talk to your younger self become this master programmer, so can you define what that is? I think you kinda did
and then kind of like, what would you suggest is the part? - So I'm gonna say that the path directly to master programmer does not exist and I'm spending the next
five years of my life to make it exist and I would
alter your question to say, what is the path from an 18
year old to master programmer if you live in rural
India and have no money? - Yeah, let's start with
that, that's a good example. - Let's start with that, to
some degree the hardest case. - Yeah. - First our university's involved in that and I think absolutely
Udemy, is full of garbage and it is hard to signal what's good and what's bad at Udemy and a little university logo in the corner is a signal of quality. Meaning that the University of Michigan is not going to let me
put out a piece of content that is not of high quality and then put their logo on the side of it. So university brands have a
signaling capability, right? - Yeah. - I have the world's most
popular Python class. There are literally
probably three or 4,000 if not more ways to learn Python, how do you become the world's
most popular Python class? Well, part of that is signaling and I have the Coursera brand
and I ride with Coursera and I ride with University of Michigan. Those are powerful signaling mechanisms to make sense out of an
otherwise impossible way of figuring out where to start. If you look at the world's
most popular Python course, you think, oh, a dude just
like grabbed some stuff and like threw up a
camera and talked to it and the answer is no,
that course developed over a five year period of
teaching it on campus and online 'cause you have to figure out
what your learning objectives and I don't mean like learning objectives, like tell me what your
learning objectives are, but in your mind, as a teacher,
you gotta know what to teach and you gotta know what not to teach. And I was really fortunate in that I was teaching
librarians how to learn Python and so any mistake I made in terms of I taught too much material was like magnified and they
would end up in my office and yell at me because
like, what are you trying? What what's going on here? So what you see in my, the world's most popular Python course, five years of sanding off rough
edges of the imperfections and if anybody just started today, how would they get to the point where they had five years of iteration? Every course I taught,
came from a classroom. I'd look at my classroom as a beta test for a scalable online experience. The rough edges are filed off. I gotta say, how are you gonna
develop the content, right? You could develop your content 'cause there was CCNA content and so you could kind of like say, I'm gonna do a better job
of this table of contents. - Yeah.
- But for me, I develop all my table of
contents as in person classes and sometimes our students
are frustrated with that and they're like, I'm taking your class and it's the same as the free thing and then I remind them of
our public service need and the fact that you get me and you get my teaching assistants and you get all this
stuff when you're here, that they don't get and it's much harder to
take that stuff on Coursera than it is with me. So I think universities have a place, the problem with the universities and it's actually the
problem I'm facing right now and that is everything I've
taught on Coursera right now is what the first half of what I'll call the path to master programmer and it's like very foundational stuff and it turns out it's material
that our curriculum committee is willing to have me
teach to our students because we're not a
computer science department. We are a school of information
and we do libraries and social media and stuff like that and they need to know programming and they need to know
programming up to a level, but what I want to teach next is the second half of what I'll call the path to the master programmer. I don't think that my curriculum committee is going to let me teach that on campus because they're really not in the goal of producing master programmers and if I was in a computer
science department, they wouldn't let me
teach it either, right? So I'm at the point now where the next four
Coursera specializations that I have in my mind to create that will lead to the master programmer. There is no university
that would let me teach 'em because of the curriculum committees that will say, no, you can't teach that. - That's interesting. - I may sort of teach it on campus and say, oh, it's a special topic and I do one class and
another special topic. So I might sneak it in but
it's not the core curriculum of any school on the planet. - So Python and then you've
got like four courses, which you can share or
not share if you want. - Yeah, so the first half of the path to the master programmer and
I'm the teacher for all of 'em and I'm gonna to be the teacher
for the rest of them too and I know that you have a long series where you're the teacher and
I think that's really cool. So you got Python, you got Django. Now the interesting thing about Django, I've been teaching Django
for three years now, and you might think that Django of course is
a Python web framework and you might think that
I'm preparing you for a job in web development in this course. It turns out that the learning objective for the Django class is
object oriented programming because object learning programming turns out to be the worst taught and hardest thing to understand. - Yeah, I would agree. - And so I tell my students, I teach object learning programming like four times during
that semester and I'm like, this is a class about
object oriented programming, because if you just cut and paste Django without understanding what's going on in all those like extensions
and PHP and MySQL, that is a web app that actually
web applications class, but it's more of a get
to know your browser, get to know JavaScript,
get to know all this stuff and the thing love about
that is it's kind of like the non-object oriented
version of how to write web and it's like, you're at the wires and you it's like harder
to write something in PHP than it is Django, but you have more power when you're near the wires and so it's sort of like dropping down in a layered architecture down one layers. And then I have a another
specialization on Postgres and database in any real
programming environment. Database is taught in computer science mostly is a joke add-on, right? But in the real world
database is the core skill and so that's what I have and I call that the best the core skills and that's the first half of my path to the master programmer. - That's the first half did you say? - Yes.
- And then you got these, you've got four more courses or something that you developing. - I got four more equivalent
courses that are like, when I have an in my infinite
spare time I'm going to build. The rough outline of the
four more courses are C Programming for Everybody, Assembly Language for Everybody,
Hardware for everybody, and then Java for Everybody
and then an internship that within learning, how
to learn in the real world. And the thing that I kind of realized is the hardest thing that I face as a professional programmer is object oriented
programming in large programs. Half the time we use object
oriented programming brilliantly and the other half the time
we're solving some nasty problem and it isn't particular elegant,
but it solves the problem and you, at some point you gotta just switch to the real world and that's where scalable internships are part of what I wanna achieve, right? First I wanna prepare people to be useful and then I wanna put them in situations where they can grow under a mentor. - Yeah, that's neat. - But I wanna do that at scale,
I wanna be able to graduate let's just say 250 programmers a week and I want them to walk into literally, almost any company on the planet and I want them to be worth 60 or $70,000 and they literally never
got a college degree. They have taken a bunch of stuff that for me is gonna
be 100% free and online and they've got an internship and they've worked with a group of people, they've been to meetings. They know what a bug tracker
is, they know what a patch is, they know how GitHub works, they know how software its version. They know how production works, they've actually used very
complex software in their lives. Someone's gonna say, I
mean, you're you come here and we're a loan company and we got this backend written in Java and the front end written
in React and dive in, right? My hope is that these
journeyman programmers will be master programmers quickly and have paid nothing for their education. - That's amazing, I
mean I'm a big advocate for stuff like that and that's hence why I put
so much stuff on YouTube. I'm hoping to scale it because YouTube it's just
like Coursera, it's an outlet. It's an outlet to let
people learn for free. - Well, and the thing is that
you don't have to block access to your premium content.
- No. - To make money with content.
- No you don't. - 'Cause you make money
with things like credentials and mentoring and technical
support and assistance. You don't have to make money
with just the mere content. The, you know, open source has taught us that the intellectual property itself is a small fraction of the
value proposition of something. - What's the definition
of a master programmer? - A master programmer to me is someone who can drop into a million lines of code and within about a month can understand and begin to work in that code base, whatever that code base is. They can't say, I know, React and Node and our application is in jQuery and Java and so you come in and you go like, well, how come you don't just write, rewrite this in React and Node because I was trained
at a bootcamp in React and Node.
- Yeah. - It'd be like going into a place that's using something other
than Cisco and saying, well, how come you just don't
tear all your routers out and go to Cisco 'cause that's
what I was trained in, right? - Yeah. - And so the key thing is that the master programmer
is one who is not afraid when presented with a
seemingly, infinitely large impenetrable piece of code and understands how mentors
are going to guide them through their first steps in that code to the point where then
within a month or two, instead of paying for two years
of training for this person you pay for a month or two of mentorship, and you're actually getting work out of that person right away. Another important part of getting that job for the first time is trying to figure out the kinds of jobs that people can go into and one of the things that I'm targeting is quality assurance jobs
and so a quality assurance is a lot of people think
of that as a crappy job. I think of that as the first job. - Yeah. - So if you come in with
a good programming skill and you've already done quality assurance and you get a quality
assurance job at a company, you're learning their product, right? By doing quality assurance,
you're learning their product and then you move on
because you have the skills eventually to contribute to the product. - If I was someone in middle of India, let's say as using our example,
doesn't have any money. I could go and take your Python for everyone course on Coursera
today and then I could do the other four courses that you mentioned, is that right?
- Yes. - And then the C Programming,
assembly, hardware, Java that's coming? - That's coming, I actually
have the first chapter of the C Programming class done. - Right, so can we have it tomorrow. - I got a lot done. I have the first chapter
of that class done and I've got an auto grader built for it, kind of got busy writing
my own code for a while and so I haven't worked on
that website for a while. So, but this week is coming and I've got somewhere in here, hardware, and I'm gonna make a
hardware kit that you can buy and you can put things together and make lights blink on and off and talk about half adders and
full adders, a key element. - That will be for the hard course, yeah? - Yeah, a key element
of my whole philosophy and I'm curious if the CCNA is like this. Is the, is never over teach
but when I teach C programming, I am gonna know what my learning goal is and my learning goal of that is not that you're going programming C 'cause very, very, very few
programmers ever program in C, but I want to be able to use that the end, the last lectures of C
Programming for Everybody are how Java and C++ implement
object oriented programming in a lower level. So understanding the
layers and how the layer, the upper layer depends
on the lower layer. So I wanna show you the lower layer and when I talk about hardware, I'm not gonna teach
you how to make a chip, but I am gonna teach you enough so that you could imagine how chips work and so it'd be like, okay, let's look at this really tiny thing and let's understand it really well and let's take a little bigger thing and understand that really well. And now I'm gonna imagine if you wanna go on a career
as a hardware designer, then you've got a lot of stuff
to learn and go to college and go to get electrical
engineering degree or whatever, but I want you to believe that
that's the next lower level. So I like exposing the abstraction. - I see it too.
- Down, down, down, but not necessarily
becoming an expert in that and I'm sure network, people
do the same thing, right? I mean, there's--
- Oh yeah. There's people who are good at each layer and they trust the layer below it, but they probably should know something about the layer below. So you can't just say, look,
I know how to debug TCP and I don't know anything
about IP addresses, but, or, you know, I don't know about anything about packets, I don't care because I'm a TCP person saying, no, you gotta
know everything a little. And so the whole idea of the
C assembly language hardware is not really competence in that area, but a sense that when
you're finally writing Java and a million lines of Java, and you look at some
lines of Java you have a, like an x-ray vision that says, I do know what's going on inside of that, Java just happens to be
the high level abstraction that many companies have chosen and it's a productivity enhancing thing, but it doesn't mean that Java
is really what's happening. Java is just our way
of expressing our code. The more succinct your code can be through object oriented programming. The more you need to understand why that succinct code does what it does, 'cause when it breaks or
when you need to extend it, you need to dig all the way in through the abstractions at some point. - I'll say this, there's a
lot of criticism of the CCNA and Cisco's like other certs but I think over the years, the reason it stood the test of time, if you like, I mean, people can say it's just because Cisco the
biggest networking company out there, but what I like about
it is they teach protocols. So there's not always a focus
on this command does this. It's like, I need to teach you OSPF or I need to teach you TCPIP so you'll learn the protocol and what I've always try
to emphasize is learn, get an understanding of the protocols because then it doesn't matter
which vendor you work on. You could go to HP
Aruba, it doesn't matter. 'cause if you understand BGP or MPLS or whatever the protocol is, it's easy to move from one to the other. There was this trend a few years
ago where network engineers were told that they need
to learn programming and network automation becoming
more and more important and the industry was like
shifting from doing everything through a console on a
CLI individual device to like using code, to
program multiple devices. I saw this trend and then I thought, okay, I'm gonna take a course at a university and I won't mention the name. So I went and did this Python course in, at university here in the UK and I did some other courses and honestly, I just stopped that because the amount of
theoretical irrelevant knowledge that was in those courses, didn't help me for what
I wanted to achieve, which was like use Python
to automate network devices. And I created a course and
that's on UDB and other places and that literally in an hour
teaches a network engineer, why you wanna learn this stuff. So it gives you the why and then you can straight away do it. So even after just a few hours, you can code network devices, not great, but you could at
least you get the, you know, the light bulb goes on and I see that in your courses, you, I went through some of
your Python for everyone course and you kinda like teaching the why. Give people a reason to learn rather than just intellectual concepts. - I had a similar experience before I did Python for everybody. I thought I will take this Python course. That is a university that
I won't mention (laughing) and offline, we can decide if we took it from the
same university (laughing) and here I am, I am a
PhD in computer science and I'm like, I'm sure I can roar through the I'm teaching Python myself. I should be able to
roar through this class. It had a fun name to it. It had, it was a very engaging concept and the faculty were really funny and they were very engaging and I'm like, this is gonna
be a great experiment. A great experience, right? - And that was Python, yeah? - It was Python.
- Yeah. - It was Python and so I go into this class and I'm like, yeah, Python, blah, blah,
blah, blah, blah, blah. You're variables, blah, blah, blah and I get to the first quiz and the first quiz is asking
me about trigonometry. - Oh wow, yeah. That's that's my experience, yeah. - And it's like, what is the inverse of
the R tangent hyperbolic or something stupid like that? And I'm like, really? You're gonna make me restudy my trick just to pass the quiz
in your stupid course. - Yep. - I wanna learn how to program. I don't wanna learn how to do trigonometry and only difference between those people who now have not the most
successful Python class and my successful is that
they're computer scientists and they believe it's good
for you to know trigonometry and by the way, it was
in a prerequisite course. And so they're in this echo chamber that basically says you have
prepared your whole life to be a priest, the high
priest of computer science and part of your training, Wax on wax off with
sine and cosine, right? And so if I just hit you
again with sine and cosine, that should not bother you a bit. You're just that's review for you and the answer is, it is, but
I know sine and cosine still and I still know tangent, but whatever the question was. I'm like this one, I don't
know, off the top of my head and I wasn't gonna look and
I dropped outta the class and then I built my own. I did a view source on how they had done some
of their auto graders and assessment and I'm like, oh, I could use your library way better than you're using that library and it was an open source library and so then I built that. And so the first purpose
of Python for everybody was to receive the dropouts from that then quite popular course. And then I then became, because of exactly what you
said, not over teaching, including why, having a reason
for everything in the course, not putting stuff in that
didn't have a reason. I became in the prerequisite for literally every other technical thing and people would go do like John's Hopkins data science specialization, and they'd be like, oh yeah,
go take Chuck's course first. And then you'll be fine in the
data science specialization and so what happened was is everyone, I mean, even in this course that I took, that I gave up on after a
while the teaching assistance in that course would tell
people to take my course. Right, 'cause they're
like, I can't help you. I mean, you're not ready for this course and the answer is I built
Python for everybody to teach people how to take
a programming course, right? Not just a teach you programming, but teach you how to learn more and that's part of the success. So offline, we can
wonder if we encountered the same highly popular,
but unsuccessful program, Python programming course. - I think it was a different one, but I-- - Okay.
- But it's yeah, I did that through
university here in the UK and it was an online--
- Okay. Mine was not a UK university. - But it's this, the key is the DNA, the emotional mental DNA of the professors that you
interacted with is the same because they were probably
computer science professors and for them, any kind of
calculus that they might drop in is just like a favor to you, 'cause those are easy
questions for your typical, well prepared computer scientist. - And I didn't do this so long ago. It's a few years ago. - No, computer science
hasn't changed a bit. I mean, we could go on
and on and on and on computer science used
to not be a disaster, but it has been a disaster since 1981. - My team was saying that
you, when you started, I believe and you can correct
me and go through the story, computer programming in those
days wasn't like it is today. - That's absolutely true. - It looks like you did programming and now we do computer science. So perhaps you can explain what
it was like in the old days and then, you know, how
you see computer sciences, like kind of messing it around
or messing it up if you like. - When computer science first and it called itself computer
science from the beginning but what computer science
really was really smart physics and math students were willing
to solder and build things 'cause the first computers
on university campuses were generally built on
those campuses, right? And so this was your DIY
tinkerers fooling around and you spent so much time
getting the dang thing to work that the programming was
like a completely trivial afterthought. I mean, if you had to build a computer with a soldering iron, writing code for something
that you had built sort of one tube at a time, the code was so easy to you 'cause they wrote machine
language back then and so you have these smart people who could conceive of the problem you might wanna solve with computers, build a thing that kind
of solves that problem. The programming was the easy part. And so you had these
people that really formed the first round of computer
science departments that were basically the kind of people that you'd find in the garage, tinkering on some weird metal
sculpture or something, right? It's just, it was a bunch of tinkerers that they kinda knew that everyone wasn't gonna
be building computers that eventually companies
would build these computers and they were creating people
who knew the programming and to them, the programming was simple, easy to master and easy to understand because you're just
teaching the syntax, right? You're not teaching the
theory of programming. You're not teaching the
order of algorithms. You're not teaching like a bunch of math just for maths sake, the faculty members, the affect of the faculty members was not like that they were gods and we were the supplicants
begging them for knowledge. They were really good at some things, but programming was
kind of a hobby to them and they were like, here,
I'm gonna show you my hobby, right?
- Yeah. - And so it was, it was more
of apprentice journeyman, everyone can figure this out. This stuff we're teaching
is actually really easy and we're easy going when we teach it and we'll show you some things and look how this works together. Oh wow, and this thing works together and it was sort of a joy and a curiosity and a sense of the faculty leading you on this like discovery
of what computers are and how software has come together in the first 20 years of technology and so I was, that was the 70s. And so I came into computing
when there was fun and joy and curiosity and
diversity actually, right? If you look at the physics
students, you know, women in the 20s were a tiny fraction, but by the 50s, they were a
significantly growing fraction and a computer scientist was likely to be from some other field. So if you had a 40% women in
math and 40% women in physics and 40% women in this,
computer science is 40% women. It just was 'cause they
did that's the population that wandered into computer science and so another thing that
happened in the late 70s was as companies began to build computers, there was this cybernetic
view of computers and this is where like robots that destroy the earth showed up and computers took over the
world and all this stuff and they went from like, we
can calculate the weather to this computer is infinitely powerful. And we believe that we
could quickly it was going to be very quick before
computers would be self-aware. I mean, we're talking like 1978, that computers were gonna be self-aware and this notion that
programming mundane things like keeping track of friend lists or something was not destiny of computing and the destiny of computing was this higher kind of purpose and we needed to become disciplined that computers were a new law of physics. There was like we'd found gravity and so we need to study gravity
and we need to be scientific about the study of gravity. Computers were a new piece of physics. There was this notion that we needed to train a set of people with theoretical foundations and this is where the
math starts coming in and all that stuff that
you didn't like came in and there was a debate because
the computer science faculty were kind of these
practical, diverse folks that were having a great time and then there was another tribe of like hardcore math authoritarian types that basically said this, "we need to kind of
filter out the hoi polloi and we need to create sort
of these perfect scientists who are geniuses of computing and then these genius of computing will build the true order of
computing, which is whatever." - Hmm, wow. - And you can kind of guess that the pure, the math purist one.
- Yeah. - And the math purist one and Sandy Pat's paper
kind of describes this. The Grace Hopper and Edward Dijkstra were the two combatants in this thing and so it was kind of a male versus female view of computer science and the male view of
computer science was louder and lasted longer and the
female view of computer science sort of just stepped aside and said, you think you know
what you're doing go ahead. And the result of that
battle in the late 70s was a programming curriculum that standardized the first
year of computer science and that programming
curriculum is called CS one. It is like CCNA, it is the
backbone of computer science week by week tells you
what the first 15 weeks of computer science are supposed to teach and week seven is recursion and so literally you have
had 10s of 1000s of textbooks that have been written since the 1970s that follow that as dogma, right as truth. Now I will just tell you, recursion should not be taught until the your 40 or 50
weeks into programming and teaching recursion in
week is absolutely insane and drives people away. - Mm-hm.
- And so this CS one, was aimed at creating
math savvy, theory savvy people for a four year, very math savvy, theory savvy degree. Now programming, programming was fun. Computer science was not. My first act rebellion
is to say that CS one has destroyed computer science. The curriculum committee has
destroyed computer science. Most people who look at
like the gender imbalance in computing think that
it's because of video games or something or whatever advertising and the answer is no, the battle was lost in computer
science in the late 70s, whether or not this was going to be kind of a male
misogynistic authoritarian you're all my little slaves and stuff. That was laid in place
and it's still to this day and so I'm a revolutionary, I'm saying I'm not gonna use CS one. I'm not gonna consider
theory as even a minor part. I might not later in
some of those classes, I might talk about theory just because you're gonna run into people that will throw theory at you and say, you're no good if you don't
know what order and log in is. Tell me the difference between
N log in and order N squared. I mean, do you know the difference
between those two things. - You're asking me? No, of course not. - Okay, then you're
not a worthy programmer if you don't know those two things because that's one of the dumb things. I mean, turns out that N log
and N squared are wonderful, but they're not the end of your knowledge. They're like why
databases are really cool. I got a tweet the other day, someone said, "I know you don't teach recursion. When do you teach recursion?" And my answer to that is when you need it and it turns out the only time that you actually need recursion
in real world applications is when you parse an XML file. - Interesting. - Because an XML file is a tree and so recursion is the
perfect way to go down a tree and back up a tree and literally, if you thought about parsing XML and printing all the nodes
out in like a tree thing where the depth being right, it's almost impossible to
do it without recursion and if you think you can
do it without recursion, by the time you've done it right, you will have invented recursion and then used your own recursion but recursion makes it really easy. This notion that students
can absorb something if I just teach it to you
as a flat piece of knowledge that you memorize, believe me
later you're going to love it. Oh, by the way, I love recursion, right? Recursion is great, but it really kicks a lot of
students out of programming to try to have to learn
recursion too early. - So I gotta play devil's
advocate as always, but it works. Look at Google, look at Facebook, look at all these so-called
successful companies is doesn't the system work? - It does work. If you look at Google and
Facebook and even Amazon, and you say, what was the degree that was achieved by
the founders of Google? What was the degree that was achieved by the founder of Facebook? And what was the degree that was achieved by the founder of Amazon? - Zuckerberg dropped out,
Bezos didn't he do like finance and the guys who started Google didn't they were in a
degree program I believe. I can't remember the details. - [Chuck] You're quite right.
- Yeah. - So the founders of Google
dropped out of a PhD program because their PhD was seen as like, not really being all that great. It was just a little too practical so they never finished their PhD. The idea for their PhDs was Google. - Yeah.
- And that wasn't good enough. - For the PhD? (bright music) - Bezos of course, was a business guy. The essence of Bezos is just
the understanding that markets and long tail and all that stuff and then programming comes, I mean, programming is driven from that and of course Facebook, was guy who took like a
couple semesters at Harvard. The basics of programming and a really smart guy, right? And capable of handling
the Harvard education but realizing that Harvard education was taking nowhere and quit. Bill Gates, I don't know
what Bill Gates has, but the point is-- - Yeah, he also dropped out I think and Musk was the same, he
also dropped out to his PhD, didn't he?
- Yeah. So the answer is no and then what happened is these smart people
who gathered around them, master programmers who were
created through one other, something likely other than a traditional computer science program. If you imagine the first
10 employees of Google or the first 10 employees of Facebook it's pretty clear they
probably didn't have PhDs in computer science and it's pretty clear that they actually had
programming experience. And there's a kind of a joke
that says inside Facebook, there's always 20 neck beard
people who run everything and without those neck beards,
we would not have Facebook and there's neck beards
inside of all these companies. The neck beards are what I
call the master programmers. Right, and the key thing
is they are experienced in the ways of the world
and they have scars and they're not very pretty, and they're not, they don't have theory and they can't tell you
about N login or N squared, order N log in or N squared
and they are the essence of it. And so you gather around you when you have a 10 person company, those who've experienced, not
those who have been educated and then what happens and that's why this is still successful. If you're right, and those
11 people make something that with which you can make money, then you make so much money that you can afford to
hire computer scientists and literally you don't
know who else to hire 'cause computer scientists
are the only people that capable of coming up to that level of master programmer and so you test them when you hire them on computer science things that have nothing to do with a job and then you pay 'em a
quarter of a million dollars over a couple of years
and you either keep them or fire them. They either become master
programmers or you fire them. I'm sure there's lots of people
that get fired from Google because they could not grow, but can Google afford to drop
a quarter of a million dollars on an employee that they
fire after two years? Of course they can. So what happens is computer
science gets no feedback that they're producing the wrong product and so it's like this,
you know, death grasp that the computer science
and these companies have. The companies have no way to hire people that are going to be useful to them. They hire people that will be useful after a quarter of a million. They interview based on what
computer science produces and computer science can't change. If I some Dean of computer
science at some school said, "I, oh, Chuck, come be my
associate Dean fix it." I'm like, no, you don't understand. First you gotta break it, right? You can't just fix it. There will be ways to fix it and I am working with some schools. I've got a set of universities
about 40 universities that are slowly but surely
building this curriculum, but they are not the universities
that you would expect. I'm working with about 100
small liberal arts schools and we're creating a degree
we call computer science, but it's not computer
science, it is programming. So small liberal arts schools are having a hard go of it
right now in the United States because people think like
liberal arts is terrible. - Exactly. - And who wants a history degree and mom and dad take out
the loan and do whatever. A large fraction of the
liberal arts schools don't wanna lose what is good about them and that is building these
broad talent people with history and all this other wonderful stuff and yet we want to make
them suitable for employment on the first day, if they
wanna get a bachelor's degree. And so what I am being
given as a curriculum in these schools is probably about 25 or 20 to 25 credits out of 120 and they'll get a degree that
they'll call computer science, but I will call programming and they will be able to
take their romance languages and history and all that stuff and at the same time
be taking these classes that are not themselves painful to take and then when they graduate, they will be both complete human beings and damn fine programmers and
if I get 'em in an internship, then they'll be, they'll
actually almost be job ready that the exit to the internship is the entrance to the job to me. And I don't know if it's true
in CCNA, it might be easier, but in programming you
kinda need an internship because you're gonna
learn from your mentor and if you haven't had a
mentor and you go to a company and you don't know what a mentor is, and you've never
experienced being mentored and how you learn as
a, in that environment, we need to have low stakes
options for students. - It's a problem because
I get a lot of comments like David, I've done CCNA or David I've done whatever Cloud certs or programming courses, stuff like that but I can't get a job. - That then turns into
the last nut to crack that we haven't talked
about in my master program or curriculum. I can create a curriculum and education for the basic skills,
for the advanced skills, but then I've gotta finish
it with an internship. - That's a problem now. - I, in the next five years
am working on scalable, distributed paid internships. - That's amazing. - Well, no, I haven't accomplished it. I just dream of it all the time. - Yeah, but I mean, the point is that you're
working towards that, 'cause that is always the problem. - If you're looking at the abstracts that I'm submitting to
conferences right now, and I'll submit abstracts
to the conferences and people in the back go like,
oh, this guy's really smart, but he's so far out. So my abstracts right now
are talking about this. So I believe that I can execute on the second half of my
curriculum pretty easily and these liberal arts
are ready to consume it and what I just described is actually this programming curriculum for these liberal arts
schools that we're slowly but surely rolling out there and it's really very successful
and the kids are liking it and I will be working with those schools 'cause they're gonna need internships too. So they're gonna be graduating kids and they don't have like an
alumni network in tech companies that can help their kids get internships. - It's a problem 'cause
I've seen on Twitter. A lot of people complain
that they, I see it a lot. People will say I've been
programming for 10 years, but now I gotta go and study
for the stupid computer science kind of interview and
learn all this math theory for an interview but they
don't accept my 20 years or 10 years or five years,
whatever it is of programming. So it, the system's broken
in that like you said. - Well, but there's a lot of
companies that don't do that. That's just the big three or four that do that stupid programming interview. If you're an insurance
company, you do not do that but at the same time, it's
hard to find people, right? And so what I need is an internship system that has an alumni network that has people in companies like insurance companies and there's 100s of 1000s of companies that need technology that
are not the big four. I'm gonna leave the big four to the computer science departments and I'm not gonna try
to crack the big four. - There's so much demand for skills and I mean, the world's becoming
more and more connected. We need people. - If you are running a company
and you post a position, say entry level programmer wanted $40,000 and you need that person. If you put that up like on LinkedIn or on indeed or whatever.
- Yeah. - You will literally
have 1000 applications in the next 24 hours and
you won't know what to do. - Yeah.
- But if on the other hand, you're part of an alumni network that has an internship program that tells you something
about beginning programmers so that you know that this person came through this internship program and that means that they're this good, you're post your job on the board that is the internship program and you know that you're gonna get people with a certain number of
guaranteed in knowledge and they have been through
an internship program. They've done work and you
can see their real work 'cause it's gonna be in their portfolio and you can hire that person the next day and here's the interesting thing. These people don't need $120,000 a year. So I'm gonna create a master programmer that actually has more programming skill than your typical computer science student going to work for
$125,000 a year at Google and they will be happy with $60,000 a year or even 40 and in some
economies 20, right? And they'll be ready to work and so these companies will
have people that are at or below market for the
average job ready to program and if I can get that connection made, then I can create 100s of these and get them jobs per month, right? I haven't told you how I'm gonna do it. I've told you what the problem is. I'm gonna tell you what
the solution looks like, but I haven't told you how I'm gonna do it and so that's where
opensource software comes in and so I am the leader of an
opensource software project called Sakai. We are poor 'cause we're opensource and so I can't hire people for 125,000 unless they are master,
master, master programmers, which we have a few of those, but we have so much work
to do so much QA to do, so much bug fixing to do,
so much development to do. In the Sakai project, we have seven or eight meetings a week with a bunch of people
working on a project just like any software company would do. We have processes, we have bug trackers, we have ways to get things done, we have quality assurance teams. We have accessibility teams, we have everything that a company has. First, I'm creating people
that are worth mentoring because if you don't know anything, I don't care who you are it's
just like, I can't mentor you. I'm not, you're not worth my time. If on the other hand
you are worth my time, then I'm gonna mentor you, right? Because I'm gonna get much out of you that I don't have to do it myself but the mentorship has to be
value for effort expended. If I'm gonna mentor you one hour a week, if I can get 10 hours of
good work out of that, then I am way ahead. What I'm trying to do right now is structure the open
source projects Sakai in a way that I can receive these interns that are properly trained and
pay those interns not a lot, but pay them some and then embed them in a team of people doing work. Their work will then be in GitHub. You will see them contributing to a 1 million line code base. After about three or four months, If they've done everything right, they should be contributing
to the core product. Maybe do QA for a while and then they convert to programmers. Then they're sort of like
functioning in a professional way, not being highly paid and you also then have a bunch of people who are gonna give you
LinkedIn recommendations, who are themselves highly
credible individuals with years of experience and leadership. And now you walk into that
company and you show 'em, here's the work I've done, here's the people that think I'm great. You can take a risk on
me for 40,000 bucks. That's an easy call for a company. - I think the problem you're gonna have is you're gonna have like
100,000 applications tomorrow. - No, I am not. Because you can't apply until
you finish my curriculum. I would have 100,000 applications tomorrow if I would take anybody but I'm sorry, I don't have time for someone
who doesn't know Python. - Yeah. - Django, PHP, Postgres,
C, assembly language, machine language, and Java but literally if you can get through that gauntlet of knowledge, I actually wanna talk to you now and I tell this story about, you know, you wanna learn basketball. So you go to the University
of Michigan basketball coaches door and knock on his door and say, I've never played basketball before and I hear you're a basketball coach and you know something about basketball so why don't you teach me basketball? And the coach says, look, there are people that from the
time they were two years old have been playing basketball and they're the best
kid in their high school and I don't even talk to them 'cause they're not good
enough to talk to me, right? I mean, literally the I'm
gonna talk to 15 kids each year and if you're not one of the
top 15 kids in the country, I'm not teaching random
kids off the street how to play basketball and that's exactly how
I feel about mentoring. I love mentoring people who
are smarter than me, right? Who took my courses and know
stuff more than me, you know, I'm not gonna teach you like,
hi, it's our mentor session. Do you know what a variable is, no? Oh, well let Dr Chuck
explain what a variable is or it's like you like, oh,
I'm gonna take on a mentor. Have you ever heard what IP address is? No, tell me, tell me, David,
what is an IP address? - It's not gonna happen. - I don't I'll have time for that. - Yep. - I got like 1000s and
1000s and 1000s of hours of stuff for you to learn
and you can come back when you've made it through my gauntlet and the other thing, okay. And then the other thing
is that I am at this point building structures in Sakai, that show how to receive these
highly qualified students as journeymen or apprentices and I'm gonna show this
to opensource project after opensource project,
after opensource project and it turns out that what
I'm doing is actually not, it's not the first time
that this has been done. There's a thing called
the Google Summer of Code. Open source projects apply
to the Google Summer of Code at tell us what you want
and write up a little pitch as to who, what you need and then students write
a pitch of who you are and then Google does a matchmaking where they kind of get to know each other and then once a open source
project and a student agree, Google will pay the summer salary for the student to work
on the opensource project. Yeah, and so it's the idea that I'm kind of modeling this after of like a kind of a matchmaking
between open source projects and students. The problem with Google is Google is really doing
it for their own good and they're trying to make a harsh filter on the student side and
use the opensource projects as a further filter just
figure out who to hire. Your aim if you're coming
through the Google Summer of Code is to get a job at Google and
to do the Summer of Code well to prove that you're worthy. And it was okay in opensource
projects to get free folks, but my goal is like any good
mentor, friend, manager, is that my students go
on to something bigger and better, right? That, you know, I mean--
- Yeah. - Because imma get more
they're coming in, right? And on the way out, when
you're go get your job, please train this next
guy that I just brought in and then it goes, and then I
get 100s of opensource projects who get free QA and
low costs of bug fixing and documentation fixes
and all these things and I get it to the point
where Python itself and PHP and engine X and elastic
search and all these folks now know exactly what the
shape of the entry door is and so I'm gonna build what I consider the perfect entry door to these people in Sakai but then share that with everybody else. - I like it, I mean, the, at the moment you've got
the first four courses if I remember right?
- Yeah. - On Coursera, so if someone
wanted to start down this road, they could start immediately tomorrow with your Python course?
- Yeah. - Or today?
- Yeah. And I've already met my first student, but like all students, this I did not create
my current apprentice. My current apprentice came
to me from high school, pre-created and that's
the interesting thing is that you don't have to be
25 years old for this to work. These younger kids can get to the point where they literally could
be done with everything I just told you by the
time they're 17 years old. - I've been dealing a lot
with the hacking community and what I like about
the hacking community is you don't need a degree to be a hacker, like talking to some of the guys who've been in the
industry for a long time. Some of the best people like in Bug Barney are like in their teens because they, all you need is a
computer internet access, and you can go for it,
no one's stopping you. There's no, you know, you can hack PayPal or hack whatever these companies
are as part of Bug Barney. There's no like artificial door which you have in universities. - Right, and I bet you'll
find that that community, when they meet someone who
is young and starting out and talented, that there are
lots of mentor and community. - Yeah. - Are well a way to welcome talent, right? - Yeah. - And let talent grow and
that's because it's just part and parcel of that community
that somebody helped, you know, you might be the hotshot now, but somebody helped you
at some point in time. So you kind of understand that sort of public service outreach that you gotta renew the
resources that make it up, right? And we gotta get that way in programming that the good programmers
renew their own resources. - Yeah, I mean, it's the same with CCNA. I mean, I think that
the age limit is, well, you have to be 13, I
think is Cisco's policy. - And so part of my problem is I can't get this into high schools, certainly in the states, I
can't get into high schools and the UK has this
kind of this initiative to put technology into high schools and I'm gonna guess it's a
complete and total failure. And the reason is that
some idiot publisher with a fancy computer science
PhD showed up and said, "don't worry about figuring
out what this curriculum is. I have it for you and it's
just a kind of a reconstituted computer science curriculum, which is just gonna students off, right?" I mean, I have friends who are in computer science education, and I do not consider myself
a computer science educator. I find computer science
education mostly reprehensible and what it means is
they're gonna go into kids who are 13 years old and they're
gonna teach 'em recursion, and they're gonna do
anything in their lives to avoid programming at that point, right? And so the idea that computer science is what you're supposed to
teach to kids in seventh grade is that like a travesty to
me, the Dr. Chuck University doesn't have as much credentials as the entire computer science field, but that's part of the reason I'm working with these
small liberal arts schools is if I can get them successful and I can get high schools to see, I wanted to convince high schools and so the curriculum
I just described to you is really a curriculum for 14 year olds. It's not a curriculum for 20 year olds, but it works for two 20
year olds and 50 year olds and 60 year olds, but it really is a curriculum
designed for the curious and that's the saddest part
of our educational system is that the human mind
is most ready to absorb from like 13 to 18 and it's so much harder to teach somebody a 25 foundational concepts. And if I get this
curriculum in eighth grade, ninth grade, 10th grade and 11th grade, and you do it, you do your
internship in the 12th grade and you come outta high school and you make $60,000 as a
master fricking programmer. - But I think that's
where the power of YouTube and the power of Coursera
and platform U, even Udemy whatever the platform is. The power of those platforms
is it reaches beyond the, like the, the normal
barriers that you up against. - The problem with that to some degree is then is a diversity problem. When I talk to students who are like 13 and they're wonderful and
they're right on the market and they're right on target and they're learning the right thing. I find that their gender and
race are pretty consistent and the reason is, the reason a 13 year old is
ready to learn this stuff is because their parents who are educated in that previous generation are putting that young
person in a context to learn. So that means that it's a not, it doesn't enhance diversity
when you do that right? When you say, oh, let these 13 year olds will find it on YouTube and
the answer is, well, some do, but the diversity problem is
if you just are only selecting for the people who are gonna go out and hunt it down and grab it,
there's a problem for that and so if I can get into the high schools. - Yeah, no, I understand that. - I can expose a wider population. The fact that, mere fact
that things are online does help diversity a little, but it doesn't necessarily help the age at which people come to the, come to it and if we're gonna get the
youth get at younger people and a diverse population younger people, I think we've gotta get
it informal educate. - I think Cisco have done
a great job with that. I dunno the details.
- Yes. - They've got a networking
Australian schools. So I mean, yeah and I'll
say this as a joke ingest but this is the way I look at it as well. It's very clever because
if you teach young people, Cisco technology, while
they in high school, which technology are they're gonna work on when they're adults, yeah. - Absolutely, so there that's,
it's hardly a joke at all. It's hardly a joke at all, but the other, but let me say something about Cisco and you tell me if I'm right on this. I have known some of the people that built some of the Cisco training, like in the in Phoenix area and there's one thing that I
have great respect about Cisco and their training, and
that is their assessments and the way they teach. So it, I haven't seen it in a
long time, but when I saw it, it seemed like one of the
things that you have to do to take a test is they
give you a bunch of routers in a screen and you gotta
like drag some stuff up, and then you gotta log into
the console of this router and type some stuff and they log some and the traffic is trying to move and the traffic's not moving
and you're setting up a VLAN and you got a bunch of routers and you got an internet out here and the traffic is like
animated and not moving. And then you're typing
and then the traffic moves and then you make a mistake and the traffic gets dropped again. Is that how it is still works? - Yeah, so there's a product
that they have a free product called Packet Tracer, which allows you to build virtual networks like that on your computer
and it's fantastic and it allows you to visualize
how the traffic flows. So you can literally build
a whole bunch of networks on your computer for nothing. The exams used to be have simulations in and unfortunately in the most
recent revision they done, which I think is a mistake. - Part of Cisco's like
amazing worldwide success is that they've got good assessments and the part of the, what
makes education work at scale is assessments because if
the only thing you've got is a multiple choice quiz, that's like the worst
possible assessment for, at sum of assessment. The key we have to understand is teachers, is that the time they
spend during the assessment should be a time of learning. - Yeah.
- Not a time of misery, right? - Yeah, I like that to, yeah. - Right, and so if you're sitting there and you're struggling with getting a VLAN
working with three routers, and it's taken you an
hour and it's frustrating, well, guess what you just did for an hour, you were typing router
commands for an hour. - Yeah.
- And you were seeing the effect of those router
commands for an hour and finally you got your homework done, but ha-ha my learning objective is for you to learn how
to work with routers. - Yeah.
- And even when you're failing you're working with the router. - Yeah.
- Right? - I like that. - And so whenever I build courses, the most critical element of my course is the grading environment
and the assessments and so the reason I have
50 courses on Coursera, more than any other person, is that I build a way
to build auto graders. I build an auto grader building framework, and then I build my own auto graders and my auto grader framework and then I plug them into
canvas for on campus, Sakai for other people, Moodle,
Coursera, edX, Future Learn because all my real valuable
intellectual property is actually written in
PHP, running outside. And I literally have to write
code for every assignment and so I customize every assignment to the learning objective
of that assignment. I'm not just like, oh, what's
my learning objectives. Then let's write 12 quiz questions that meet those learning objectives. No, that so foolish, not everyone has a PhD in computer science and has built an auto grading
framework that you can use and so not everyone sees it
as that's the way to start, but me, I, and that's why
I'm going to eventually build an entire curriculum
with online auto graders that are on the auto graders that will be engineered to
achieve the learning objectives that I have for whatever
material I'm assessing. - This is great, so me just
summarize, if I understand. You've got some courses on Coursera and other places at the moment, you're gonna be creating some
new courses like C, assembly, hardware and Java?
- Yeah. - And you're working on an internship and the way you're gonna do
that is with your company and other open source people and the whole idea is
get some base knowledge and taking those courses and then get into a mentorship program, prove that you can do the job and then you can get like a
full-time job type thing, yeah? Did I summarize it?
- Perfect. - That's great, I like, I love it. It's a problem, I mean, you know, how do I get my first job
if I don't have a job? How do I get experience
without experience? I get this all the time from my audience and I'm pretty sure you
must get the same thing. You know, like I've done the course yeah, how do I get a job now? 'Cause that's the aim
at the end of the day is to get employment and I think you you've hit it on the head where when, you know, you're not just teaching programming, you're teaching actually okay, programming for a real world position where you can hit the ground running, but you're also giving them
the mentorship to start a job. - Yeah, I have a saying that
I say to myself over and over and over and it's when
you think the journey ends is when the journey begins. - Yeah, exactly. - And I had imagined to,
you know, many years ago, almost 10 years ago now a series of increasingly awesome courses and two years ago I finished that what I thought of as a curriculum and I'm like, okay, this is great and then the problem
is that you look around and you say, well, I'm on a plateau, but there's still a mountain there. The question that I get
from my audience as well of how do I get that job? I did everything you said, I followed you. I've been loyal and
followed you all the way. How do I get a job? And I'm like, okay.
- Exactly. - If that's what they're asking me, that's what I gotta think about and I gotta struggle
with that and it's not, it was easy to make another course, but I gotta figure out
where the end game is now. And I hope that if I'm done with that I can just let that run for a while. If I can get to the a
point where I create a path going from anywhere in the world, going from I'm 14 years old
to I've got a middle class job and I did it all remotely
and I did it all online and I even made some money on the way by, I'll be really proud of
myself at that point. - That'd be amazing and I mean, I gotta ask you the big question. What's the cost? So if I'm an individual, can
I take these courses for free? Do I have to pay to go be
part of the membership? How does it work? Or how do you envision that? - When I'm done with it because of the way I create my materials, that the entire courses will be free. - Wow, yeah. - By then I will be
paying teaching assistance and have some built kind of
an online teaching assistant environment to help students. I'm probably about a year
away from building that and when you get that
internship and mentorship, you're gonna be paid for it. So not only do you pay
nothing, you will be paid and when you get that internship, you're not gonna be paid a lot, but you're not paying for anything. 'cause I have met students and I understand their financial situation and the moment right
before they get their job is often where money is least. I mean, maybe I'll do
some fundraising at that. If I get this thing all working and funds are the only problem, but my model is no unpaid internships. You might not get a lot, but you should be paid for your internship and you might then ask, how are you gonna fund all this, Chuck? - Yeah, my next one is, is
it open internationally? 'Cause I've--
- Absolutely international. - Cause, large international. - Absolutely, actually with a
lean towards internationally, partly because it's the costs
are lower internationally. The cost to pay an intern internationally is actually much lower than
paying one in the United States but no, and for now I'm lucky because I make a lot
of money from Coursera with these same materials. Fundraising is a painful thing and whether it's, you
know, from foundations or from venture capitalists and thankfully I've not taken
any money from anybody else because I can independently fund this and so I'm just investing,
I'm reinvesting my own bounty and expanding it and as long
as that bounty continues, as long as my Python course is really successful on Coursera. And I thank Coursera every day that they gave me a revenue
stream to invest, research, do the research into all the things that I wanna accomplish next five years. - I mean, it's an
interest of big companies to give you money to fund this because they might be able
to choose the best people that well, the people that they want. - Yeah, absolutely, absolutely and then you might find that
the companies find themselves wanting to overlap a little bit in this and even get some of their
staff sort of in the mix with these people, with these mentors and establishing those relationships before the mentorship is done and I also think it could be a way to revitalize open source. I mean, that's a whole
different conversation that I'm gonna have on our podcast. - Yeah, we should have that. - But now, is that open source and all this free stuff is in some danger and so I, it's not lost on me that I am also potentially
through these companies and through foundations going
to create a way to invest in open source and keep open source from sort of diving under of
the covers are proprietress which is a increasingly
sad trend in open source. Is that some of those
things that we have thought were open source forever little
companies form around them and then sort of go kidnap 'em. It would make me happy
if I could also create a better sustainability
model for open source. - Big goals.
- Yeah, yeah. - It's great though, I
mean, the problem is you, we need people like you to champion this because my biggest concern, like being involved in
education for a long time is it, education was and still is
in some cases the, you know, for the rich or people who can afford it and the more education can
be made available to anyone the better everyone's gonna do because you don't the best talent doing something that they don't wanna do. I saw in one of your videos, you were talking about
how you don't have to go and work outside doing
bricklaying and stuff like that. You do--
- Yeah. - You do programming 'cause
that's what your skill is and it's, it would be a sad, I think it's a sad thing
that many very clever people end up doing jobs that they hate just because they didn't
get the opportunity. - Yeah, my brother-in-law's a carpenter and I've known him for 30 plus years and when we get together
for family gatherings, he talks about, you know, standing up to his
ankle on freezing water, digging the foundation
and I'm sitting in a warm and so when I said that in that course, I'm thinking of my brother-in-law, who's a super talented
individual, brilliant. I mean, if you've ever
had construction work done on your home, you know that there is
a wide range of talent. - For sure. - There are master carpenters and those carpenters didn't learn how to be a carpenter in a book. - Yeah.
- And so the whole, when I use the whole notion of
apprentice journeyman master, well I know a bunch of
people in the trades and I know how the trades work and I see programming more
as a trade than a theory. - We've been going on for quite a while. Any closing thoughts or
anything else you wanna share? - My mentee this morning
was texting me, right? 'Cause I have one mentee. Right now I have the first,
one of what I just described. - That's amazing. - And he's from rural
India, it starts with one and then the one becomes the prototype and then he is going to
have to help the next ones and so I have one paid
employee from India right now who found me through my courses. Now what he found, the way he found me was he
started sending me pull requests for all my content on GitHub and I'm like, who are you anyways? And he's like, "well, you know, I'm trying to find my way in open source." I was like really son of a gun. You just, he sent me a note
called the pull request that changed my life. - That's brilliant. - Yeah, and so without knowing it, the ability to understand
what I was doing in GitHub and then help fix my stuff in GitHub, that was his entrance
exam without even knowing. - Yeah.
- What his entrance exam was. He sort of showed up
and demonstrated to me through his acts, not through his words, not through his resume.
- Exactly. - I'm optimistic that this can work. I just know it's a lot
of hard work to get there and it's hard work is to scale it and that that's the key thing and that's why all these
courses make so much are so important is not just,
I could make five internships. I, you know, I could help people get five people get a job per year, but I don't want to do that. I, my goal is much higher than that. I want not to be the only mentor and not to have Sakai be the only project doing this mentor activity but instead just scale that, right? And so I'm all, 'cause
I'm a computer scientist. It's what we do, we want things to scale. It's just a thing and then log in that's which we talked
about a couple times is about scaling. It's not that hard to do something it's harder to make it so
other people can do it. - That's brilliant. Dr. Chuck really wanna thank
you for sharing your vision. You know, it's fantastic
to meet other people who have a passion to help others and you're not in it
just to make millions. You're here to help millions, which I think is an amazing
thing so thank you very much. - Thank you for having me. (upbeat music)