Hello and welcome to Django for Everybody. One of the things that I like to do at the beginning of each class is sort of say, why? Why should you take this class? Why did I make this class? And in particular, why Django? There are some questions like, why not Flask? And I'll get to that. So I just want to take you back in time a little bit. Three years ago, I was a happy professor. We were teaching Python for our beginning users in our data mining and then I thought it was really important to learn a second language and so I taught PHP for our web dev. I like PHP. It teaches you like how the web really works. I taught SQL and I love that, and taught about all the good stuff. Then we taught JavaScript, jQuery, and JSON as well. And I had been building that class literally for five years. I had been building the graders for it, the stuff. And one of my metrics as a teacher is how far do my students get at the end of the class? So I look at 15 weeks and what was the last assignment. And then that to me is the way I judge whether or not I've done well or not. And over the years, I try to get the students farther and farther, and I adjust the first part of the class to be more efficient so that I can be more effective at the end and so I can put more useful stuff, because there's so much in the beginning classes that is just like all the mechanics of it. And you've got to learn the mechanics, and then you can apply those mechanics. But you just can't start off and say here, cut and paste these 4,000 lines of code, it does you no good whatsoever. So three years ago, I had a very well-developed PHP class and in not too many words, I was told that they didn't want me to teach PHP for web dev anymore because everybody wanted to do Python. And a lot of people were actually doing Flask in some of the more advanced classes like our mobile application classes. So I was told to switch to Python, sort of told to switch to Flask. I've done Ruby on Rails, I've done PHP, which is pretty raw. I've done CakePHP, which is a framework. I've done a lot of programming with and without frameworks. Another teacher taught a class using Flask and I didn't like how that class turned out. I looked at the end of what they were doing at the very end and I thought, whoa, that's not very much stuff. But I started with an open mind and so I actually had a whole year when I was teaching PHP for one whole year. They let me teach it for the last year. That's also when I developed Web Applications for Everybody and that's also become a MOOC as well, and which I love and I think a lot of people use it. It's really a great MOOC. And I'm still convinced that learning more than one language is a good idea. So you might want to take Web Applications for Everybody after you take Django for Everybody. So everywhere I would go, I would ask everyone that I would meet do you use Flask or Django? I mean, luckily, five years earlier there was like 25 choices in Python. But five to three years ago it really narrowed down to Flask and Django. There's other cool ones like Sanic that are specialized, but Flask and Django are kind of like the big ones that everybody, not Web2py. There were so many of them that I'm like, "Oh man, which one am I going to pick?" And that's a problem with PHP frameworks is there's so many of them, although Symfony and PHP is kind of winning. So I would ask people, Django or Flask? And people would give me very passionate responses. They would say, "Django is the greatest thing ever and Flask is absolute trash." I would go onto the next person and they would say, "Django is trash and Flask is awesome." Fifty percent of the time they would love one thing and hate the other one. It was amazing. I really got no trend whatsoever. But halfway through that, I'm like I'm getting no data. I mean, I'm getting half the people love one thing and hate the other thing, and so I changed the question. I stopped asking whether it was Django or Flask because they were saying, "What do you like?" I was really asking what do you like better, not what should I teach? And so I said, "Look, I can only teach one, Django and Flask, and which would you teach first and then which would you teach second, what order?" And then universally, everybody just had to accept the fact that Django was way better, way, way better to teach as the first class. And so I felt I got really strong data on that. So I picked Django. I wanted to use Django, and in retrospect, it's brilliant, right? I've been working on this Django class for two, two-and-a-half years now, and each semester I make it better. Each semester I improve the slides. And I do that thing where I try to like compress the beginning and get efficiently done with the beginning part so that I can do better stuff at the end, and I'm really pleased. And so what you're seeing in this Django for Everybody MOOC is that two years of careful engineering of the class. And I'm really proud. You can go to projects.dj4e.com and see some of the things that the students have built. I'm amazed at how much they can actually build on their own and literally couldn't have done it with PHP and couldn't have done it with Flask. Django is the only way that students would be able to produce complete functioning websites with a real user interface at the end of the 15 weeks. And so that to me made Django a great success. And I'll close with, I just got done looking at the most recent Python programmer community survey and I was surprised to see that the number one use that they had of Python was web applications and the number two use that they had was data applications, which like floored me because I know that Python is great for data applications and it's just super dominant. Part of the reason that it worked out that way is it wasn't like web was twice as much. Python is used for so many things and so there was a lot of things on the list and then web just edged out data analysis by a little tiny bit. You can be critical of Python web development and my answer is, if it's not perfect, it's going to be perfect because people like to write in Python and they don't want to write in Rust or Elixir or Scala. Those are harder to learn and honestly, whatever the shortcoming of Python web development, it's going to get fixed. So welcome to Django for Everybody. I really enjoyed and I've been looking forward to the moment where this was mature enough and well enough developed to become a MOOC and so here we are and I'm glad to make your acquaintance. Cheers. [MUSIC]