Nigel is the author of the books Mastering Django and Build a Website with Django 3. He also maintains the website djangobook.com. We discuss teaching Django to newcomers, print vs video, testing, and more.
This podcast does not have any ads or sponsors. To support the show, please consider visiting LearnDjango.com, Button, or Django News.
Will Vincent 0:06
Hello, and welcome to another episode of Django Chat a podcast on the Django web framework. I'm Will Vincent joined by Carlton Gibson. Hello, Carlton.
Carlton Gibson 0:12
Will Vincent 0:13
And this week we're joined by Nigel George, who runs Django book.com. has written a number of books has video courses, and lots more we'll get into welcome. Hello Nige.
Nigel George 0:23
Hello Will. Hi Carlton.
Carlton Gibson 0:25
Thanks for coming on the show.
Nigel George 0:28
Sure, thank you.
Will Vincent 0:29
So let's maybe let's start with the big one. Django book.com. You took that over years ago? How did you? How did you manage that?
Nigel George 0:38
Um, I'm trying to remember how long ago it was. But it was just I was writing. So I was writing under the mastering django.com domain. And it started out being quite lazy. I didn't start want to start from scratch. And I'd always use the Django book resource that Jacob and the guys had. Yeah, yeah, they published and I had the original book. And then there was the old green and yellow website that was there. And I just started republishing that content, because it was all open content, and started republishing it on mastering jango.com. And a few guys around the community. I know, Danny, Roy Greenfield, he was he was harping at Jacob, can we do something about this site? Because everything points at it. And it's all hopelessly out of date. And I threw into the community. Well, he's mastering django.com. And then I sort of reached out to Jacob and said, Well, I can take care of this website for you. He said, Yes. It's as simple as that. He just he just checked it off with with Adrian, and they handed the domain over. And I've pretty much been the somewhat reluctant, sometimes caretaker of it.
Will Vincent 2:04
So there you go. Well, I don't Yeah, you know, I think probably, maybe half our listeners are intimately familiar with Django book and half maybe have no idea what it was. But it was the original Django book written by the creators and went through a number of iterations, right, I forget how many they did
Nigel George 2:21
this. Yeah, they got to an unofficial third edition, which was the one that I picked up. But that was always my favorite story about Django because I would get emails early in the piece from people just tagging me tasks for pinching the Django docks and that I was a pirate and I was I was plagiarizing and I was this thing was that I had to patiently explain to a few people um, this is the Django book this is was written by the creators of Django Yeah, it's gonna look a bit like the darks. So it was that was that was that was quite amusing to start off with because now that content has well and truly been retired and it's all pretty much new stuff.
Carlton Gibson 3:05
But there's there's bits where it's not though, right? Because there's like, give you there's bits where it's like, you know, and if you're used to PHP, then it's got, you know, this, these, and you know, you might be a destination and that's just straight, straight from the original source, it's just hasn't
Nigel George 3:19
been alleged that that stuff should all be gone. But the other thing is, too, is that the reason why I like the original Django book is that they write very similar to the way I write like I write just sort of really quiet laid back I've got that, that are the attitude to my authorship is that I just, I tend not to sort of add too much fluff to the writing it's all very direct. And and Adrian and Jacobs writing was all very similar. And like the pragmatic programmer thing is pretty much my career. You know, I I was the one that would always sit on the peripheral of the language, flame wars gun case, really, honestly, and sort of have a ball from time to time. But it was always like, well stop thinking about software as a religion and start thinking about it as a tool you actually use and I have the same approach and I'm very much like that. But yeah, I should have weeded out most of the really old stuff. And and PHP is an easy target, honestly, like, you know, there's,
Will Vincent 4:24
it's had it's really interesting, the Laravel community because it really has a have a renaissance of the right word, but I have a couple friends who swear by Lera Bell, and actually, Django can adopt from that. But PHP, right has gone through a lot of iterations and the language itself first came out as
Nigel George 4:43
the Django but websites WordPress, so
Carlton Gibson 4:47
no, no, nobody's criticizing Django, PHP, but like there was it was the dominant thing at the time at MIT early 2000s. Like and it was like an the Django book and the first version of the docs. And there are still references that start these kinds of sentences in the Django Doc's from from this epoch. Yeah, it's like lovely. Here's a way of introducing Django compared to something that you'll already know. It's not necessarily throwing shade or bagging on PHP. It's just, this is different. You'll be used to doing it that way. Now,
Nigel George 5:18
Will Vincent 5:23
Well, maybe we can talk about how you got into programming and Django because especially, you know, the attitude you have, not everyone has I think Carlton and I are more along the lines of, you know, tool, tool users rather than
Carlton Gibson 5:36
still flame wars zealots.
Will Vincent 5:39
There are but we're too old for them. We'll send Carlin links on Reddit about this and that and Django just to get a rise and yeah, you see it a few times. It's like, okay, we're still doing that. Yeah.
Nigel George 5:52
They never went away. We just lost interest in.
Will Vincent 5:58
Just like we should mention, before we got on I was we were discussing, I was saying the U shaped. happiness in life where you're happiest when you're younger, and then our age 40s 50s it bottoms out, and then you become happier because your expectations change. Not that your day to day changes. And, you know, so what, like, stuff however you manage less stuff worries you. It's like I Yeah, well, that was, yeah, that was a I nicked up my car the other day, and the guy was asking me how much I want to spend to fix things like, Oh, this thing is cosmetic. And do you care? And I was like, I got kids. Like, nothing is perfect in my life. So he's like, yeah, I get that. I was like, I don't care about a scratch.
Nigel George 6:39
Yeah. One that and that. And you know what? The world's thrown at all of us over the last 18 months. And that stuff. It's like, you know what? priorities change?
Will Vincent 6:50
Yeah, I'm just happy with anything where Yeah, he was like, why isn't everything perfect? Now I'm like, wow, it's amazing. Anything, or any
Nigel George 6:57
back to back to your question where we started, was, um, so I that that pragmatism that so I have never actually in my life been employed as a computer programmer. I've never actually been employed as a software developer. I'm an engineer, I'm an electronics guy. And, and programming came to me long before there were courses on programming. So I would like I'm 50 next birthday, admitting that to the world. And I got to see my first computer when I was 10. And computers were brand new when I was 10. And nobody knew what to do with the things. So you know, I remember I had my god disk, which was a das 3.3 disk on a five and a quarter floppy, which most people have never heard of before. You know, there's anything we have Yeah, the generation now got Well, what's a floppy and there and nobody knew what it was. So they handed it over to me and the the basic and the dusk, das manuals, which came with computers way back then
Carlton Gibson 8:02
I used to get mad, they were amazing. Yeah.
Nigel George 8:06
And then I jumped on to the school's Apple two E, which was a recent import to Australia from from great United States. And I started from there and started programming. So by the time I left school, I was playing with electronics, I was working with computers, and this is what I wanted to do. But I went into engineering. So software was something that just came as a part of the the job, the role or whatever, I entrepreneurial. So I actually run my and ran my own computer hardware and software business for a few years in the 90s. right up to the Millennium bug, which is another thing that not many people have heard about for quite a long period of time. I was silly, I tell people the truth and didn't make any money out of it. So I, I just ended up working my way up through technical engineering, design, r&d, and that sort of stuff. So I was always using software to solve problems. And that's, that's where the thing I've only ever come software, which is why over the years, as much as I like taking potshots at some software, you know, don't get me started on Java as well. But you know, I've actually used all of them as tools over time, and they have their pluses and their minuses. So where I got the Django was that I was doing early in before those called the Internet of Things that was just like distributed sensor networks, and that the Internet of Things, you know, wasn't really coined until a few years ago, but I was developing environmental sensors for the local university here. And I'd been using Python, because I know if you've ever used Python on really large text data sets, but it's brilliant, like a couple of lines of code and you can pass megabytes of text data. It's just fantastic and I got bought a winforms and see cuz I've been doing that for a few years and I saw I wrote a desktop interface with w x Python. Just just for the hell of it because I've been working with Python and the university and the local water mob. He said, Well, we want to put this online, we want to look at this stuff online. Can you build a build a website that shows all this data and they want to see maps and all that sort of stuff? Well, I've been writing stuff in Python. So I google Python web framework. And that's that's where we started with Django. But back then Django was point nine, six, hadn't even had a full release. So we're talking 2006 2007. And, yeah, that's where it was. So I went in and out with that. And then I got to a point where pretty much the only resource in the market was Danny's book, Danny's an Audrey's the two scoops. And there was pretty much nothing else out there except this out of date Django book that everybody was complaining about. And by then, I don't know where Adrian had gone. But Jacob had moved on to what's the hosting mob?
Will Vincent 11:16
hurricane? Erica? Yeah,
Nigel George 11:19
yeah. And had no real interest. And that's kind of where it went from there. I said, I thought, well, I am. I fancied myself as an author. And I wrote a fiction book, and it was disgusting. It was terrible. And my wife told me, well, if you're going to write something, write something and stop talking about it, except she used different language. And I picked Django because it was an easy target. And then I just got deeper and deeper, and I enjoyed it more and more. And here we are, what, six years later. Fantastic.
Will Vincent 11:49
And then you've also done, you've done, I saw, I'd love to talk to you about teaching Django because you've done the site, the book, the book, you've done a couple books, you've also done videos. I mean, we started talking you did, you've done a lot of videos, too. So I don't know how to enter into that, I guess, what do you see? or what have you heard from listeners and readers, viewers, you know, who prefers what, because that's what I'm always curious. Because people always say, why don't you have videos? And I find that not everyone wants videos, but some people do. And I suppose I'm sort of prejudiced towards thinking that videos are more total beginner level. Yeah. Do you agree with that? or disagree with that?
Nigel George 12:29
Um, it depends. Yeah, it really well, it depends what mode your brains in at the time, like, obviously, if you do any sort of training on teaching in that they talk about learning modalities, and you know, you've got that you've got your auditory, your visual, and you've got your, you know, in terms of watching videos, and reading and that sort of stuff. And I say, if you if you want people to absorb material as deeply as possible, you've got to actually get them in multiple modes. So I actually think that it's complimentary because I even know my own consumption, like I am. Sometimes when I'm chasing it, because just recently, I've had a bit of a run on on Amazon, and AWS, and that stuff. And when I was kind of getting my head around how that all worked. I not only did online reading stuff, but I also watched the videos and that and I trolled through LinkedIn learning and did a whole bunch of that sort of stuff. And I find myself that I get a greater absorption right across that. And that's most of the feedback that I got, like some people will watch videos, but it tends to be actually what that person's after I noticed the most if somebody is just skimming over something out of interest, yeah, they'll just watch videos, and they won't have the depth in that. But when people are genuinely trying to learn Django, I find they come at me from multiple modes, I know, I have a core group of people that have pretty much been with me from the start. And they've pretty much consumed my content in all modes, they will listen to it, they will watch it now or read it as well. These are guys that have got the course they've got the books and they sort of send me emails and that sort of stuff. So it's um, it's definitely one of those, I think, especially technology benefits from multiple modes, different ways to consume the same content, obviously, the quality varies widely. And there's, there's areas where I want to touch, like, don't get me started on places like Udemy and that where they just exploit authors, they don't teach. But I think having that mix of content out there is actually valuable. And it gives people choice.
Carlton Gibson 14:45
Yeah, I think that's jahmene whatever level you're at, whether you're beginner or you know more advanced, like, you know to have a video perhaps that gives you a high level overview and then when you go to the docks, it's gonna make a lot more sense than you try and take on the high level concepts from the Dogs it can be like, this is hard going,
Nigel George 15:01
Yeah, yeah, and I can get bogged down because programming can get dry you know, it's just one of those things it's it's like learning any language, you know is that to be able to order order a drink and have a bowl and a, you know a Spanish bar, you're sort of gonna get more out of learning the language. But that means having to wade through a lot of stuff that's a lot drier and a lot less fun. And you know, computer languages are like human languages, you there is a basic syntax as a basic structure that we can all get, like, we all know how to open your mouth and make sounds. But the different ways of getting that across, you've just got to, you've got to do the hard yards, you've just got to get there. And yeah, I think depth comes from that, that broad ways of consuming stuff. In terms of what I'd prefer, right, every day of the week, video is a pain in the butt. Just just what you need to do to go through and of course, I'm I'm tired by about everything. So my, you're just never gonna see any of my work where I'm just sitting there. You know, you see those YouTube videos where guys I'm in an hour and and clicking through the screen and explaining one thing and, and typing forward and delete and backwards and all. I can't do that i heavily produce all of my videos, since ally takes. Yeah, well, it's not so much takes, but it's it's an overlay, it's like, if you look at the stuff that I've got there, I do overlays, and then I'll highlight stuff on each line of code and explain each line of code. And, and that's a lot of post, that's a lot of extra work.
Will Vincent 16:38
I think you're probably responsible for why I haven't done any videos. Because we've talked a number of years and I think Well, I think I'm inclined as you are down that route of not being okay with just sort of not winging it, but a more informal style. I want it to be more polished and, and hearing you talk about you know, all these things. I just like wow, that's it's just a whole nother realm. And the challenge with Django, right is it's, it's, it's, there's a new one every eight months. And the three of us understand that. Generally, those aren't huge, huge changes, but it can mean having to redo almost everything. I mean, I'm almost done with finally 3.2 updates, because, you know, something changes and then the web browsers changed so I can't just like swap in a screenshot I gotta do all the new screenshots and, and so the idea of doing it on video seems,
Nigel George 17:31
yeah, it adds a lot I've got your ahead of me, I've only just started my 3.2 stuff, because I'm sort of blending it into my four stuff, because there's not a lot of interference at the level that I'm teaching. So I like my beginners book and that really don't mind beginners book, it was it was a bigger pain going from 3.0 to 3.1 than it was to go from pretty much 2.2 to three because of the change with path leap. Because that broke everything.
Will Vincent 18:02
Yeah, yeah, I have a whole post on that for the SEO. I was like, I'm telling Carlton, I was like, people are gonna muck this one up. Yeah. I mean, it's, well, I've got to know,
Nigel George 18:11
but it's like, you know, the the pathway that the Django is development team has chosen that's, you know, that's the one that they've chosen. But for a Content Developer, yes, it's painful.
Carlton Gibson 18:22
I mean, it's difficult, it just
Will Vincent 18:23
weeds out the weeds at the, you know, weeds things out, right. I mean, you and I are grizzled veterans of content. As much as much as it's as much as it's, I mean, I, I've really worked to adopt the attitude of, you know, it's not my favorite thing to revisit the same thing over and over again, but at the same time, it's something that people want to read. And so it's sort of like a you know, you've got a guitar sitting behind you. It's like a band playing Greatest Hits, like I'm happy to have Greatest Hits I keep I think I keep making it better each time. And you know, have some for me like I'm working on a Python book now and I'll have some for the masses. And you know, I'm happy to have that mix.
Nigel George 18:59
Yeah, yeah, I like a grizzled veteran thing because it definitely some days It feels like I've got PTSD that's for sure.
Will Vincent 19:08
Well, I don't even see it's just part of it is I don't even see things sometimes because I'm on I don't know version six or something of mine and someone will write something in and there's a small note usually it's not code it's a text thing but I just don't even see it. I'm so
Nigel George 19:22
yeah, just don't even see there anymore. And and then you get the the ones where they insist your code is wrong. And you're on like version six or seven minutes. Like,
Will Vincent 19:35
yeah, dude, you know, I I kind of appreciate that. I guess I'm old enough to appreciate the passion. Because I know that. I mean, there's a tiny, tiny percent chance I'm wrong, but I'm like, I'm pretty sure I'm right about this. When it's, you know, there's an error as opposed to Oh, is that the best way to do it? So, I suppose I sort of, you know, like, yeah, I've gotten the same kind of emails for for so long when someone comes in really firing Um, you know, I never respond within 24 hours because half the time they'll figure it out and send me another email being like up, I figured it out. So I just let that lie but then I'm like, okay, like, yeah, you're young buck. You know, you're you're passionate, whatever your age. You know, I appreciate that you can harness that. Yeah, I'm because I'm more like you. I'm like, Well, you know, I think yeah, whatever language framework, like I figured out, you know, I've sort of lost a little of that. beginner's arrogance, or whatever it is. It's definitely something.
Carlton Gibson 20:30
That's, yeah, you started programming. You're like, I can build this in a week. No problem, you know, 10 years,
Will Vincent 20:38
right? Yeah. First two years, you don't know anything. two to five, you know, everything. And then beyond that, you don't know how hard everything is. And yeah, that's why I love beginners. Like, I asked my, like, my dad the other day, he's like, yeah, I'm finally gonna read one of your books. I was like, okay, like, sure. Like, and I was like, Well, what project Do you want to build? Right? Like, why do you want to do this? He's retired. I mean, he's, like, What? Why do you want to actually get through the dry stuff? And he's like, well, I want to he's an architect architect. He's like, I want to build an app that will you take a picture of a house? And will you like figure out what type of style it is and edited and I'm like, Whoa, like that's, that's not a credit app. People come in with these crazy ideas. Yeah, no, but I want you I want people to like before I tell you how, what's hard, like, you know, write down your ideas because everything's doable and then someone like me can say what's hard or not and you know, things change too. I mean, you can use existing API's for image recognition So anyway, so I enjoy someone I'm like, wow, because I just start thinking you know, how would I actually do anything? And I'm just like, oh, that's hard. That's hard. That's hard. That's how I you know, I get kind of discouraged whereas you know, they don't they don't know the difference so
Nigel George 21:47
well, I had a I had a reader that sort of took me through a similar similar journey. I didn't understand what he was trying to achieve but it sounded kind of cool. But he sort of he worked his way through it and I answered a few stuff and like in the end I basically said Matt, you're doing really really well. Yeah, once you work it all out come and tell me because you'll be teaching me something
Will Vincent 22:12
true, yeah, that that happens
Nigel George 22:14
on that too like that there's a lot to Django and I find I've got plenty of bread but not a lot of depth in in some areas like you know you I can sort of talk to a lot of the top end of of most of the stuff that's in Django, but when you're writing about it all the time, you know, you're not actually in the thick of the code writing really deep and working stuff like our like you know, and you're doing things like professional for me you know, when you're writing it's different to professional programming. And I find that so like with mastering Django, when it got to 650 670 pages, it's like Oh, come on enough is enough, I just can't do any more. And then and then you know, I get taken to task because I've skimmed over some sections and said just go read the docs. It's like what I've typed into my fingers have bled for a thing months go and go and have a look at the docs. So when people come to you where they've had the time and they've gone into the project they've got really deep you actually find yourself learning from them and I think that's just great.
Carlton Gibson 23:24
Like teaching materials almost gonna necessarily be at the beginner to intermediate level right because the assignment the market there is much more addressable. Like there's lots of beginners there's lots of intermediate there aren't so many advanced people so if you're going to produce learning content, it's got to target the people who were there
Nigel George 23:42
and it's yeah and it's also difficult to take them to the next stage where they'd be doing what they would be doing in a in a professional setting like I made a conscious choice not to you know, have get running in any of my courses or anything like that I made a conscious choice not to build test suites and that sort of stuff because it's like these are the mechanics of being a professional programmer they don't teach you programming and I you know, like that, and I've kept thinking well one there's plenty of resources out there for that stuff and to ID test testing anyway, so I would have avoided like the plague and let somebody else teach it.
Will Vincent 24:22
Now we should have we should have an episode with you and Adam Johnson on to get broken
Carlton Gibson 24:26
on the fight. So then, Nigeria building us a site what do you do? Do you sort of click through and make sure it works?
Will Vincent 24:37
Nigel George 24:42
No, I just get somebody else to do the test. Right? Okay. Yeah, I so I've been building software with agile, like long before they call it agile. Somebody gave it a really fancy name about 2000. But we've been doing it since the end. Be nice, because you're working in small development teams. So, you know, the whole idea of em, you know, MVP, and iterations and all that sort of stuff. So I, I've read the testing guide, and all that sort of stuff. And I understand that stuff, I would rather just hand it off to a que se. But at the end of the day is that I'm more of an advocate of of the whole idea. Yeah, I could go off on a tangent, but the whole red light green light, refactor thing is that it's like write something that breaks and then put in any old thing that will that will make the test pass is like what? Yeah, no, that's in the trivial doing trivial stuff. So I do it, but at module level, so like, I build a module that I know works, and I throw on everything, I can add it, and then I add something to it. And then I add something to that and add something to that.
Carlton Gibson 25:54
And sometimes, like, you're not sure what behavior you're you're trying to write at the beginning, because you're just exploring the domain. So to write a test, it's like, well, I can't write a test yet. So you, you kind of craft up the software, and then you're like, Well, I better have a test just to make sure that I don't break it later.
Nigel George 26:09
Yeah, yeah. But that'll get you off Harry Percival, his Christmas list, sign that so well,
Carlton Gibson 26:13
I'm already off his list. I think I like the
Will Vincent 26:20
I just didn't, I fall in the bucket of I mean, I don't think anyone's truly test driven development at the extreme. But I find I, I'm more playful with it, I want and then rate went up before I push something up to master I'm like up, I need some tests for this. Because that is the best time to write the test is Yeah, but after I've gotten it working, and I'm happy with it, because there's no for me that it slows me down to write tests when I'm switching around the code often a number of times before I get it.
Nigel George 26:48
So a product of of the environment where it's like I'm I'm intensely creative with software, because I've always worked in the r&d end of the spectrum. So like I'm solving problems early in the piece, I've never been the one at the end that has to, you know, make this work for a million users. And we're just a product of that experience, like programming to me is create creativity, and the things that I use it for as creative pursuits, which is why I end up writing about it, I'm not out there grinding out code every day, because that's just just not my place in the world. Like, I've employed programmers like that. And I respect that. And you know, I've worked with quality engineers and those sorts of things. And I'm about to step into a product management role in a couple of weeks. So I'm going to be dealing with those sorts of guys again, on that, but see on the product manager, I'm not the guy who has to make tests work, I say, I'm still working at the creative and problem solving in so I think it just our experience with that it comes back to that pragmatism and saying, Well, I have my own views of this, I understand how it all works together. But I know what I like, and I like it that comes down to our discussion about being an old fart, you stop caring after a while. It's like, these are the things I like these things I don't like so I'm not gonna do the things that like anymore.
Carlton Gibson 28:05
But there's a big difference between that and then going a step further and saying you have to like what I like to write this.
Nigel George 28:12
Yeah, absolutely. But that gets back to that slide was that we're not interesting, remember?
Will Vincent 28:20
Well, Carlton, I mean, you, Heidi, I'd be curious, just your public take on testing. Okay, so itself. Django is eminently you know, massive test suite. But very test, very tested. Yeah.
Carlton Gibson 28:31
I mean, the key bit is regression tests. How do I know I didn't break something. So what you want is for every existing behavior, you want a test that covers it, so that when you adjusting the code, and you change the behavior that's flagged by the test suite, and then you might be like, actually, that's an allowable test, you know, that's an allowable behavior change. But What you don't want is gaps in the test suite, where the behavior will How does it behave? Well, we don't know. We don't know how it behaves, because it's not covered by the tests. And that's where you run into difficulties because someone comes on with a fix will all the existing tests pass, we push it out. And then you know, Django is, you know, x, x point y, new feature, bla bla bla, and then we get, you know, reports on the tracker saying, this is a change of behavior from previous version, then we got in trouble. But that's different from the situation Niger is talking about when you first creating something, you don't necessarily need to begin with a test, right? But as it starts to get bigger and bigger regression tests become more and more important. And for something like Django, which is 15 1617 years old. You know, and a lot of people rely on it. We can't break things. So we need tests.
Nigel George 29:39
Yeah, if I were if I was a Django Dave, I wouldn't be saying now we don't need tests.
Carlton Gibson 29:45
Yeah, it's not it's not creative in that same way. It's not new business.
Nigel George 29:50
No, it's just not a space I inhabit.
Carlton Gibson 29:53
I mean, sometimes sometimes I'll test I'll do test driven development. Like if I know if I've got like, all I needed to do this particular part. The behavior, so okay write test for that particular part of the IV and make that work. And then I can move on to the next step of the problem. And I've got a test covering the first bit, and then I can build up to like that, um, sometimes I do develop that way. Other times I do it may get it working, and then write some tests to make sure I don't break it later.
Nigel George 30:15
I think I think to like with that, because because I most because I'm from an engineering point of view, too, we're working in very, very small memories. In C, and you don't have test suites, you basically have a text file that has all sorts of rubbish in it, that you throw at it to see what breaks. And in your kind of testing, from that point of view, use
Carlton Gibson 30:36
an integration test now.
Nigel George 30:39
It's similar, it's just that your your type testing, you're basically saying, Well, you've got five inputs to this thing, let's let's throw a mix up, text, everything. Obviously, in Python, it's not such a problem with dynamic typing, although you do get really weird results. But of course, embedded C or any of the C's absolutely detest, you know, when you throw the wrong type of a variable. And then you know, with those embedded system, you get memory overflows, and all sorts of lovely, interesting stuff that we don't see in the Python will happen. But you know, you just don't have the overhead to have a test suite on a chip that's got 256k memory on it. Yeah,
Will Vincent 31:20
I think the other bit related to testing and I'm curious, what your experiences is that people who are learning Django sometimes will say, Hey, I got my first job, or I switched jobs. And they have this sort of sense of shock when they work on a commercial code base, because it's not as clean as
Nigel George 31:37
furniture. I think we all go through that shock phase. It's it's like, what you look at a commercial code base, and I've been around long enough to seeing good ones, bad ones, and plenty in the middle. And I've also been around long enough to be you know, to blame for some good ones and bad ones and some in the middle.
Will Vincent 31:59
Get blame? Yeah.
Nigel George 32:01
Will Vincent 32:50
DMX HD max saw? Yeah,
Nigel George 32:53
yeah. It's, it's like, I've only just starting to decipher that. And I think it's much much harder, like, like, everybody has to be full stack. In that they might hire a front end developer or a back end developer and AWS expert, AWS expert, or something like that. But at the end of the day, if you don't actually understand how it all works together, you don't understand any of it. So you know, that's that's a that's a that's a world that I'm glad I'm actually a fair way away from these days. So yeah, I wouldn't I think it is a bit of a shock for most people. And it's not something that I'd be in a rush to do.
Carlton Gibson 33:34
I think as well like the most code only barely runs like most real code in real life. You know, I mean, maybe the code for I don't know some nuclear rocket launching system is double checked and proofed with theorems and all the rest but real code in most companies like yeah, it runs but don't touch that staple there because
Nigel George 33:54
yeah, yeah, cuz cuz it'll bring the whole building Yeah. Yeah.
Will Vincent 33:59
So speaking of full stack, do you How much do you cover API's in your own material? Like cuz I, I have a whole book on it. But trying to kind of get at that but close to no one can write that
Nigel George 34:11
Carlton Gibson 35:37
Well, that's a good point, how far how, how deep does your knowledge have to be before you feel that you can teach something? Because I mean,
Nigel George 35:48
well, I'm actually I'll tell you the truth, most of the teaching that I do is, is basically I'm the learner with the learners. So whenever I disappear into depth, I don't come from a position of expertise. A lot of my writing is approachable because I'm learning with them.
Carlton Gibson 36:05
So you can learn, right?
Nigel George 36:08
Yeah, so so I've started playing around with it. So so you know, to sort of to answer Will's question. I've started dabbling. But I haven't, I haven't yet decided where I'm going with Django next, like, because you've got this eight month cycle, and you've got this thing that you hit 2.2. And as soon as there's a point zero that comes out, inconveniently three months later, you're explaining to people again, that no 2.2 is or it's whatever point two is no longer obsolete isn't obsolete, we've just gone to the next major one. Because every time when we went from 1.11, to two people the same way as you to book it was the angle 1.11. Still good for another two years, and I've had this conversation, each iteration of Django. And keeping on top of that, when I worked full time, has been a thing in itself. But it's flat out obvious like Django does not work in a vacuum and its future is working with the front ends and how that works together. And Django has got a sink now, but again, that's that's an area that if I was teaching somebody, I think I'd be learning too, because I've never had to work with it. I've never worked with sites big enough where I think makes a difference. I've always worked in in that. I've been around since Ws gi was actually a new thing. It was all CGI. Yeah, yeah. And then yeah, you had to had to write scripts on the server to restart the Python long running process, otherwise, your server just go blank and sit there every hour or so you know, it's like, so I've decided, I haven't decided yet whether I want to keep on the front edge of the learning curve or or just want to sort of, you know, slowly slide back and stick with the stuff that
Will Vincent 38:03
I think what you said about where you are, in your own learnings when you create content is that that rings true for me. And actually, that's something I want to ask you about, because I find so the first versions of all my stuff I wrote as I was learning it, so I had that mindset. But now, years later, six, seven iterations later, the challenges I've lost that, that perspective, I get lots of emails from from readers, which helps me have a sense of what trips people up, but I don't feel that myself. And that's actually something I'm facing with the Python book. It's sort of fun to approach it. top down in a way where I feel like I know Python reasonably well. It's not like I'm learning for the first time. So when I'm doing my updates, or I'm doing new content now, it's, I think it's almost more of a challenge, to be honest, to mimic what a beginner is going through, because I'm not a beginner anymore.
Nigel George 38:54
Yeah, I think we always get that. And the other thing that I get with that, too, is that it's material that I have seen so many times. I just don't want to look at it anymore, too.
Will Vincent 39:03
Yeah, well, I think but that's where the context matters, right? I mean, because it's, as you're saying, with different programming languages, it's the same old concepts, but that's, it's the same to us because we have experience you know, that's that's the thing is that, I mean, when I wrote my Django materials, I actually didn't find yours when I was looking or I might, I might not have. But I had that sense from the docks, hey, this presumes you already know web development. php, which makes sense, but I didn't know PHP or web development. So I often see that people assigned to Django blame for learning web development when you just kind of have to get through it with something and get another framework at another language and then you'll appreciate it. So people lump those two together.
Nigel George 39:45
Yeah, and I think we're never going to win that argument. Like really when you're doing beginners material for a particular language. You've got to make the assumptions because you turn around like I know I I've done a Python primer with my Django stuff. So it's it's on the website for free and it's in it's in the book in the beginners book and that but it's it's, it's never really been hugely utilized. And I've tried to do stuff before you dig a little bit more into HTML and CSS to provide support. But ultimately you go Well, again, it comes back to the same discussion. So me so with mastering Django, and that that is a book that has Django from start to finish. It's 650 pages, and I still had to leave a heap of stuff out. Yeah, yeah. It's like, you're always going to start a journey with people. And knowing some of those people have absolutely no idea of anything. And all you can say is, well, this is what I am going to teach you. And this is what I'm not going to teach you. And I think I've just taken that approach with with the books and the star, you did the same with yours as well. It's like, well, this is what I am going to teach you. If you need to find out here's a whole bunch of links, but I can't you know, I can't be a start you from very scratch sort of thing.
Will Vincent 41:07
Right? You have to figure out where to draw that line. And I think the top Amazon review, the most helpful review for my beginners book is shows doesn't tell, which, you know, I'm like, Well, yeah, that's the point.
Carlton Gibson 41:20
One star didn't tell.
Will Vincent 41:23
Now people are people are generally pretty nice. But I mean, that's the thing is that, you know, my own interest, right? Like all of us, I'm more interested in the details now, because they make more sense to me. But when I was starting out, I was like, Hey, I just want this to work. Yeah. So I try to sprinkle in the understanding as we also get something, you know, as we put up a website, well, but it's I think that's what I think about, like, Where Where do I draw that line? when I'm teaching? Well,
Nigel George 41:50
Carlton Gibson 43:53
And yeah, and the failure modes on the more advanced tools, like there can be mysterious if you don't know what's going, well, it didn't work, you get some error, and you've got no way forward. Whereas if you understand the more simple tools, it's like, well, actually, I can recover from this because it's just a folder with some stuff.
Will Vincent 44:10
I think it's also it to me, it's a mark of, if not immaturity, I sort of dropped my opinion down a couple notches of someone if they are either a incredibly confident, because the best programmers I know are not, you know, they're not bragging about their ability at all. And then if they're deeply wedded to a particular tool set saying this is the one true way it's like well, how many ways Have you tried because I mean, I you know, we all on this podcast, appreciate Python and Django but there's other good ways there'll be new ones, you know, being wedded to a particular ideology seems immature to me.
Nigel George 44:45
Well, yeah, I've pretty much that I've spent most of the last 18 months writing VBA you know, so, you know, you, you know, you've got you've got to have an appreciation that every time has its place. Yeah. And yeah, I agree with you because cuz anybody who has to tell you how great a programmer they are is not a great program because most of the rest of us have learned to be humble a lot time before. Like, if there's no other profession out there where you can be wrong about 900 times a day.
Will Vincent 45:22
And there's a strange, you know, 12 year old girl somewhere who comes up with way, you know, teaches me something about Django, you know, reading, reading my stuff that happens all the time, I mean, age ages and limitation. So you see the the talent that it's opportunity, I wanted to
Carlton Gibson 45:39
ask you both kids, you're both creators of teaching content, for jank, I wanted to ask you your opinion on, you know, where the level should be pitched for the younger adults, because I quite often see criticism of the Dynavox they're too hard, the tutorials too hard to get going. And then I look around the community, I think that but there's lots of great Getting Started material, like awesome material, like your, your to stuff and other other stuff as well. And I kind of look at the capacity of the Django contributors to produce that stuff. And it's just not there. And, you know, I mean, what do you think the balance is? Is there room for I mean, I kind of think it's nice that people have to reach outside the Django Doc's to find more stuff. But
Nigel George 46:21
I, yeah, from my point of view, I can't not I actually think that's just the way it has to be like the Django tutorial gets people started, that's where most people will see it, that'll be at the top of every search term. So that's where anybody coming to Django is going to start, you know, and, like, you look at the documentation for every salt software project out there, you know, at the end of the day, is that most of the documentation that comes out of Django is the same as documentation that comes out of Python, you know, you're writing in doc strings, you're not, you're not actually writing teaching material, you're writing reference documentation. And at the end of the day, bringing that out, it isn't the job of the guys doing Django you know, that that the job of the dev team is to make it stable to help it grow to possibly not bring a major version out every 12 months. So the rest of us can keep up you know, and and that I think it's a valid question, but it's not one that the dev team should actually have to answer they should say no go and say Nigel will or you know the other guys that are putting out huge work out there. I know there's a guy I forgotten his name off the top of my head that he's the simplest better than complex. He does. Oh, yeah, he does some fantastic material. And you know, and there's the tango with Django guys a Django girls like there's a lot of us out here I don't know what Danny and Audrey are doing these days they've been quite quiet for a while. But there's people out here like this comes back to to the discussion before about the difference between engineers and content creators. We come from a different mindset you know, I'm not terribly sure I could get as much out of what I do. And my the people that learn from me can get as much out of it if I was a card carrying engineer like we've seen some of those guys on YouTube and is that stuff dry and hard to follow?
Will Vincent 48:34
Nigel George 48:36
Yeah, but will you put a lot of effort into that too? Yeah, like like your work is very similar in that that like we do something different but it's complimentary. So yeah, push pushing, pushing the dev team to to try and mimic what we do is a different set of skills. And it's also not necessary we need to sell books
Will Vincent 48:58
Yeah, I mean I I understand now deeply the distinction between docs and tutorials I think I was in the shoes of a beginner where I said I just wanted both and I think that's you know beginners or someone who's frustrated just they want both and we all we three understand why that will just never happen but someone who's new new doesn't understand or care they're just frustrated so I think that's a you know, I What would I add to the docs, I think it would be nice to have a simpler introductory something beyond polls something a little more flask like that's hello world. I mean, Carlton's done a whole talk on this, we have you know, there's there's room to add something else. But beyond that, you know, it's just not possible, but I don't know how we explain that to someone new, new to web development, that this is just how it is it's it's unbelievable that the docs are even as good as they are. And if you're frustrated, you know, I mean, it's also Django did purposely doesn't link to doesn't recommend any resources, which makes sense because Jen goes you You know, Django does its own thing, but it makes it frustrating for a newcomer because they don't know who to trust like you were saying people have followed you in your career as a creator. I find that the same way if someone likes a current teacher, they'll they'll take everything from that teacher and everyone does it differently. So that's why I always say, if you like my stuff, here's more and if you don't, there's plenty of other people with a different take on it. You just need to find someone who matches up with your learning style. Yeah, that's what I would say.
Nigel George 50:25
Yeah, I think so. And a lot of them to you're not going to either so many people who will come to that and saying, I want to understand this in 10 minutes, you know, it's this massive multi million line project, but I need to understand it today. And then they'll go to the next thing and this guy's not helping me understand it today. You know, like there's this there's this expectation that it's all going to magically come together. Yeah,
Will Vincent 50:52
but we can see I think we can sniff that out. I mean, I feel like I my ability to sniff that out from an email has gotten Yeah, very good. I'm happy Well, I mean, you know, I, I'm not free tech support, you know, I'm happy to help people if it's related to my content, I'm happy to point them somewhere else if it's a quick one, if someone's just tossing a bunch of code at me or you know, something else, like you know, I'm not getting paid to answer your question. And just because you don't know that this is an incredibly complex question. Even if I provide the answer to you which I'd have to spend time on you wouldn't appreciate it so I don't lose sleep on that. What's the main way someone should find your material? Is it the Django book.com website because you have books and courses
Nigel George 51:33
best place to go is the website because that's where the free stuff is and you know, that's that's where I am publish anything that I'm doing. So yeah, it's just Django book.com and then there's
Will Vincent 51:46
a student login is that still active Can I ask about that
Nigel George 51:50
there was so I've made that course through so I had a beginners course that I was a paid course for a long while but I made a decision that I'm going to make that free so that's open now so anybody can go on they can go and take that course it's um it's still packaged up as a course at the moment but all the videos on Vimeo which I'm paying for so I'm pretty much going to tidy it up for 3.2 and migrate it to YouTube so it's just linked there as that and I'm going to leave that free I'm not actually going to make the course paid again so it's pretty much just the books and the content there. And I do have a YouTube channel but it's kind of like nothing so keep an eye out and the Django book website for when that's actually working. So I got this idea I want to play a little bit more with Django like writing books as you would will know will is is a real mission and as much as it's great great to give birth to that baby at the end it's it's it's definitely hard like but so I'm looking at probably doing doing some much shorter content and just posting that on YouTube and on the site and I don't know you know what I'll do with that I'll probably bundle it up as PDFs and like you know things that people can use a mobile devices and that but definitely much shorter content just like how to do this in Django kind of stuff and that'll all be on the website and then as well so that's going to be the best place and of course as the updates or the beginners book and for mastering Django which will most likely be updates for 3.2 and then just like a free addendum for Django for because again at this teaching level Django 3.2 and Django for pretty much the same beast
Will Vincent 53:46
Yeah, I think that's right. I wonder we both have this I we both have all this different content like what are your like teaching fantasies like mine is to have one book that like instead of having all these sites to take my three books and just have one book and you know that cannibalizes my sales but the idea of just having one thing and being like here you go seems quite nice
Nigel George 54:11
Yeah, I don't know. I am Yeah, I don't really know. I don't think I actually have a what you would call a teaching fantasy with Django because it's for me it's it's it's a hobby.
Will Vincent 54:23
Wow. I mean, that's the healthiest way to that's the healthiest way to do it. Well, I think yeah, I think that what you were saying though, about shorter things like when I think of my three books, the the hardest one to write and to update is my professionals book, in part because I think I'm, I'm a little too far over the curve in terms of, it's hard enough to keep up with what people are doing at scale, let alone to write it and then it also it unlike the other books, the other books have a bunch of smaller projects. The professionals book is one big project lump things in. And so it becomes just this Jenga puzzle, updating anything because everything is linked to have to update everywhere. It's, it's really painful for me like I want like discrete like I understand the two scoops approach a little bit more where I'm like, okay like logging boom, here you go, you know, security like I think I if I keep it up to date, I will have to do that because this whole narrative thread crushes me more than the other books.
Nigel George 55:27
Yeah, yeah, well III, I took one look at that, that well, I took more than one look at that. And then it was like, Yana. I just like, I,
Will Vincent 55:41
well, that was wise.
Nigel George 55:42
Carlton Gibson 57:28
Not much of much changes, okay? Take the path lib, you know, change would have been disrupted the part writing tutorials. But
Nigel George 57:37
yeah, in terms in terms of writing content at the level that I'm at, I don't know if we'll experience assigned. But there was a big difference between 3.0 and 3.1, because of path lift, and there was between 2.2 and 3.0. Because the only major change between 2.2 and 3.0 was a sink. And because of the level I teach async didn't really need to discuss it, we have the deprecation but like we pick up that because the deprecation is actually to nearly a full version behind. By the time I'm writing stuff for 3.2. Anything that was deprecated because it was in 2.1 is it's kind of not relevant anymore, because I've already waited it out of the books. So I tend not to run into those issues. And it's the same with will it's it's more, but yeah, it perfectly killed me. It's like I was I possibly first came up with somebody cuz because I'm in Australia, most of my feedback comes from continental US. So it turns up in the middle of the night. And I got up in the morning, and it was like three emails saying your codes all broken? Like, what's this import iOS, it's throwing an error. And I had to manually write some iraf over that sort of thing. And so it's those things that catch you out. But it's more perception with Jango. In like, it's fair, you look at Java at the moment, like the dot versions of Java seem to come out every other day. At the moment, so it's not as though Django is unique in there. But I'm not sure what it is, but it tends to be doing something
Will Vincent 59:14
right like, I tried to think about this site interrupt Carlton like what, at the same time that not a lot changes. It still is a big poll every time to update the books. And I think it's for me, it's partly like, I try really hard not to rely on external things, but you have to a little bit so Git GitHub Heroku sendgrid. And they they change their stuff all the time. I had way more third party packages and other services like stripe and stuff at one point and I just can't keep up with that. And so I pulled those out, but it's still I find that for me, it's like things build up in terms of people asking questions on areas maybe or in on best practices. So every update, I can't do a huge redo, I go through everything from scratch, which takes quite a while. But this current one I'm on I'm like I'm switching from PIP to Pip, I'm, I have things more on function based views than I had before, like I'm kind of cramming in all this stuff. And so I found to make it maintainable. I can't do that every update, but this is one of those ones. So the 4.0 update, I'll go through everything again and see what's new, I don't think that'll be a bigger one. But this one, I've sort of let things build up and I kind of don't want to release something until it's that perfectionism is kicking in. So I think I think of a week I hope maybe by the time this comes out, the update will be out. But it's been like 90% done for six months. And I think I was going to another point, you know, what's the difference between you and me and you know, people who people will pay money for and someone cranking out free things. And I think it's that, that extra 20% you know, you can anyone can kind of blurt out a tutorial on something, but all this stuff we've been talking about, about keeping up to date about thinking, larger picture, all this, you know, basically like the fellows role, you know, all this stuff nobody in open source wants to do. That's, I think, the difference and people can immediately tell like, I opened something, it's like, well, there's typos, you know, or the codes off. It's just like, I can't trust you. But, you know, when you just wrote it for free. It's like, Well, you know, I'm busy doing my day job. I'm not going to update this thing here. I curious that resonates. I think that's how I view it anyways,
Nigel George 1:01:31
that's I think that's open source. I think, you know, like, you have this this this dichotomy or this this polarized thing about it is that open source runs the world, but nobody wants to support it. It's, it's always been a thing like I with this last book, so I was pretty much no, well, I was doing Django full time for what 18 months or so well, I wrote mastering Django and I did all the courses and everything like that. But it wasn't sustainable. It's just you know, like, if anybody out there listening thinks there's that, you know, we're we're rolling in a writing content for Django, cotton useful here. You know, you know, I
Will Vincent 1:02:13
made I made more 10 years ago than I do now. Yeah, yeah,
Nigel George 1:02:15
it's um, it's definitely a tough job, something that we do, but you know, you get people come on, come on through with that sort of thing. But that open source, I think, is always going to have that sort of problem, it's very difficult to value the work that goes in, you pick up a book like ours of mastering Django, I think was 1200 hours in mastering Django. And the beginners book is probably have to be around about 300 or so with that. And that's before all the updates that I do know, the economics makes notes on the site. Yeah, it makes no sense at all, you know, like, you're just sort of, for me, I just went back into industry. And that night, I do this now. So I've got to balance my time. And you know, you've got a young family will say, you know exactly what that's like. So you're always going well, yeah, I'm putting this out, you put the free stuff out. But some some of this has to cost you. And and this is the extra value that I'm giving you this is the extra value that I'm adding. But to be fair, I know I reckon you got that, like out of that core group I've gotten so my core group, the ones that have followed me all along, you know, there's a few 100 days I haven't old, bought stuff. But there's a core group in there that it doesn't matter what I bring out, I'll buy it because they want to support it. And and they're always the same guards. And they're the ones that I know by name, I can send them an email when they'll respond to me, and I'll say, yeah, you know, what, what do you think of this idea? Yeah, I think that's a great idea. NIJ, or it now I don't like that. And I'll give you good feedback. And ultimately, that's, that's, that's what you do it for. It's not because, you know, you get a certain amount for more. I got to fiddle around with with what I'm doing. To be honest, I'm gonna try a few different ways to just get a few bucks here and there. I don't give stuff away. I don't know about you, but I get a lot of four page emails about how poor somebody is, and why I should give them my book. But I don't answer those. It's like, and like, I'm not belittling a person situation. But it's like, I put hundreds of hours into free stuff, answering emails, doing that sort of stuff. And there's so much free content out there. This is probably the only way for me to get some sort of return which as you know, at the end of the day really just covers your publication costs. Yeah,
Will Vincent 1:04:32
yeah, it's, that's that's where I drove all I
Carlton Gibson 1:04:35
know, I know.
Will Vincent 1:04:37
Correct. That's all that's all true. I think what the requests you know, I view it as a five minute good mood, you know, if it's early in the morning, and I feel generous, I'll do it. But generally, I don't waste too much time on it. I had a case, which I don't know if you want to talk publicly about your one of your books being you know, coming out before publication, but I had to case where Iran I get a lot of emails because a lot of educated people in Iran, and they're not part of the formal international monetary system. So there was someone from the university, they wrote me, you know, this full page letter and I was like, okay, sure, I'll send you the book. He did ebook. And then I literally got 20 emails from like, because this person ran like a Python Django group in Tehran, and I got 20 emails all being like, variations of like, hey, just give me this book, because you gave it to this other person. I was like, well, they probably just gave it to you anyways, but I was like, you know, sorry, I was just like, open source, you gotta be like, you know, if people is gonna steal it, they're gonna steal it. And if I feel in a good mood, there once in a while, I'll do it. But you know, I'm not getting I'm not getting paid to answer your email asking for a free copy of something I've spent 1000s of hours on. So
Nigel George 1:05:48
well, my favorite one with that, like my, my shortest one with that was so my first book was traditionally published when I press it was on Django, CMS. And I got a, a, an email from one of the guys from Django, CMS, and he found that coffee free online before I even received my publisher copies.
Will Vincent 1:06:12
I remember you telling me that.
Nigel George 1:06:15
Yeah, but my favorite favorite one is from one of my one of who a guy who ended up actually buying one of my books, but he sent me this, this email saying, I'm really confused, which is the latest version of your book. And he attached the original 1.8 version of mastering Django to it. And it was like well, so there was three files attached I said, so the first one is a pirate of the latest version of mobile. The second one is a pirate of the one off my website and the third one is a pirate of the pack version of the book. Because packt Publishing actually distributed that book as well any gay fan all these things and all three of them were pirate so different versions of the same book.
Carlton Gibson 1:06:58
But I say knowledge, could you help me out here? I
Nigel George 1:07:03
told him that. So any, but you know, it's good. He asked for a discount, which we are giving credit for. But the website is, I mean,
Will Vincent 1:07:17
what can you do? I mean, sometimes, more these days, I'll get emails from people saying, apologizing for having stolen my books and saying, I'm in university or I'm going to get this job and you know, I, you know, I will buy your books when I have the means to so I'm, you know, okay, like, you know, yeah, we're rambling on, but
Carlton Gibson 1:07:39
we're kind of up until I mean, we're rambling on here, this thesis that publishes story.
Time, I'm gonna I'm gonna call time here, like so. Nice. Really good chat. Thank you for coming on the show. Thank you first, reminiscing we will share it you know, sharing a sensitive moment about part two. Ouch. No, I'm just teasing. I'm just saying but we've got to call it quits. Because otherwise it's well beyond.
Will Vincent 1:08:13
Mastering Django calm to find Nigel stuff. We're at Django chat.com chat, Django and Twitter. And we'll see everyone next time. Bye.
Carlton Gibson 1:08:22
Join us next time. Thank you folks. Thank you.