Computer Science isn't programming! // How to become a Master Programmer // Featuring Dr Chuck

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
- 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)
Info
Channel: David Bombal
Views: 462,799
Rating: undefined out of 5
Keywords: python, dr chuck, dr chuck python, dr chuck python course, learn to code, software development, software developer, computer science, software engineer, software engineering, how to learn programming, free python course, free python course online, free python class, free python tutorial, free python training, how to learn to code, coding tutorials, how to code, learning to code, learn to code for free, learn to code python, python jobs, coding bootcamp
Id: z3o6yEzcnLc
Channel Id: undefined
Length: 78min 53sec (4733 seconds)
Published: Sun Apr 10 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.