Will Vincent - Django, Writing Technical Books
Well, Will Vincent, thanks for, showing up. You're on Django chat with Carlton Gibson. Right?
Will:Yes. That's correct.
Brian:And you were on the board for a while, the treasurer of Django the Django Foundation. Is that right?
Will:Yep. Yep. The Django Software Foundation, nonprofit that runs Django.
Brian:Okay. And one of the cool things that I think is neat that you did was while you're there, I think you were involved or did the merchandise store?
Will:So I pushed over the line. So there was lots of efforts over the years to have official merchandise and with all things with volunteers because the board is a volunteer position. It just takes a final push. So, you can go now. It's on threadless and buy swag.
Will:Not a ton of people do, but it makes it makes some money for Django. All the profits go to Django. And during, COVID, the conferences were virtual, and they were able to put up their swag on there. So that was a good community building thing.
Brian:Wow. You can even get the DjangoCon Australia T shirt.
Will:Yeah. So that that's that's perfect example. So Jangocon or Pycon Australia, which has a Django track, is happening right now. So they put they put it up, for anyone who's, who want who's attending online and wants to have have swag. So, you know, we could I I look at it and we could do a lot of things that are better, but, it exists and it's there.
Will:And, you know, you go to a DjangoCon conference, which I suggest to anyone everyone should do if they can. And there's, like, swag from almost everyone but Django because Django, even though it has a huge reach, is ultimately a nonprofit. It's a nonprofit with an annual budget of less than, like, a West Coast developer makes. So, though it feels big, it's quite small, and it's, all run by volunteers. So there's only there's 3 3 paid people.
Will:There's 2 fellows, and then there's a a woman, Catherine Holmes, who assists the board part time. So that's it. That's the entire cost of Django.
Brian:Yeah. But even just like, yeah, a green T shirt with Django on it, it's neat. I like it.
Will:Yeah. Well, I think I was inspired actually partly by, your, your cohost, Michael Kennedy. He had some swag, and I asked him about it. And so that got the ball rolling. And then when I applied to run the board, 44 years ago, I guess, that was one of the things I asked around, and everyone said, oh, we've we've talked about it, but we didn't quite have it.
Will:So I I definitely joined the board and hit the ground running being like I wanted to do a bunch of things, and one of those was the merchandise.
Brian:Yeah. I was thinking I I wish think it'd be cool if Python did that too because, there's pipe there's Django and Python conferences going on all over the world. I think it'd be fun. I don't know. I'm kind of the one of the kind of dorks that would totally buy a conference t shirt that I didn't go to, just because, it's their need.
Brian:Sometimes they're need. They get, like, the the Python, what? The the one the the one that happens in, New York. Oh, Gotham. High Gotham.
Brian:Yeah. They often have really great t shirts. And I'm, like, man, I wish I could get one of those. That that'd be cool. So
Will:Yeah. Well, it's I mean, it's interesting when you get on the so so these are all volunteer positions. I suggest everyone get involved, because you just get to meet the people. And one of the things is the Python Software Foundation. They have a new, executive director, but through working through Django, had conversations with them because there's overlap around grants and legal things.
Will:And I was always surprised they don't have more of a push on merchandise, but, you know, they're they're growing in staff, but they're still small. I think they're still 12, 15 full time people in different roles. So, you know, there's always, you know, just like open source. If you see something and you wanna change it, you know, raise a hand and, make it happen.
Brian:Well, can I volunteer somebody else? No.
Will:Well, so this is you know, and this is, especially with Django. So Django, I I've had this discussion, so I I stepped away from the board this this year, because I did 3 years, and I think it's good to have new blood. You know, there's constantly people have ideas for things that Django should do, but, ultimately, it's 7 board members who on paper meet once 1 hour a month, and that's it. In practice, the the president, and the treasurer in in particular do a lot more work than that, but it's not really sustainable. And, you know, so I'm kind of at the point where and, again, we had a whole track at JangoCon Europe in Edinburgh this year about this.
Will:People say, well, why doesn't Jango do x y z? It's just not gonna happen unless we, have an executive director and or raise more money, and we're not gonna raise more money until we know where it's gonna go. We're not going to know where it's going to go until, you know, the community agrees on doing it. So this is sort of the tyranny of the of a democracy is that, you know, sometimes it'd be nice to just have one person in charge who could make make things happen or have a paid executive director who can do these things, prioritize the list, and actually make them happen because, you know, we all have other jobs. So
Brian:Okay. Speaking of other jobs, so you also wrote, you wrote some books. Right? How about Django?
Will:Yeah. Yeah. So I have, 3 books on Django, Django for beginners, APIs, and professionals that, we are discussing before we started recording. They first came out in 2018, and I've updated them all at least 5 times because Django updates every 8 months. So in a way, I've done, what, 15 updates versions of the books.
Will:But on the other hand, you could look at it and say, I haven't written a new book in 4 years. So those are the those are the primary ways, I make my money these days. I do some consulting and mentoring, but I've been able to make the books work. I also have it run a Django newsletter. We didn't mention Django.
Will:Django News, it's a weekly newsletter I run with Jeff Triplett because going on, I think, 3 years now because, Django itself doesn't have a newsletter, and there's plenty going on. So that's a weekly newsletter with projects, news, articles, packages, just because no one was doing it. And Jeff Triplett is he's a partner at Revsys, which is one of the preeminent Django, consultancies, and he's also been on the PSF. I forget his title, but he's a director, so he's as high as you can get. So he and I do that together for the community.
Brian:Yeah. Plus just a really swell guy.
Will:Yeah. Yeah. No. Exactly. Yeah.
Will:And he also has he's still involved, but he's helped been on Defne, which is the Django Events Foundation of North America, which runs JangoCon US. So, you know, it's good to just get involved and find out who people are because, it's just people and usually volunteers making things happen. And Django, in particular, is all about community. You can't really see from the website what an amazing community has, but it has a incredible community. I mean, you know, and just not to take a potshot, but in comparison to Flask, Flask is an amazing tool, and David Lord does great work.
Will:Flask does not have a community like Django. Right? Django has a board. Django has conferences. Django has podcasts, meetups,
Brian:you
Will:know, different tools for different things. But it's it's, you know, it's one of the marketing challenges, I think, in a way of Django compared to other web frameworks is that how do you communicate the community? Because the the saying is come for the framework, you know, stay for the community.
Brian:Well, I was just talking with, Carlton, and he had a great quote. He said, the Jango community, is the home he'd been missing before he found it. And he he said that, like, for instance, he would not have done 5 years of of being a fellow if he if it wasn't for the community being so wonderful. So and I I feel that about the Python community as a whole. I, I don't think I would be such a an an advocate for Python if I wasn't if it wasn't for the community being so awesome.
Brian:So,
Will:Yeah. And it's it's just all about telling people that and then having opportunities for them to get the first experience of it. So, you know, conferences are a great way. You know, it's been hard post COVID. A lot of meet, meetups have gone away.
Will:But people, you know, you hear it, but you need to experience it. You need a touchpoint.
Brian:So, so I'm looking at, learn Django.com on a separate window. Yes. Is that the best place for people to find your books?
Will:Or Yeah. That's that's the best place. So I'm in a bit of a transition of, I have physical books on Amazon. I also have them through Gumroad, and I'm working towards having everything just on learnjango.com. So learnjango.com has a whole ton of free tutorials.
Will:You can get the books. And I'm moving towards a model of having, everything just online for a number of reasons. One one of which is accessibility, actually. You know, people all over the world wanna learn Django and Python and the how do you translate it? Right?
Will:Like, I get offers to translate my books, but given the pace of updates, it just doesn't work to go through you know, to update it in all the different languages. But if you use, all the major browsers have pretty pretty solid translation built in. So if it's in HTML, someone can translate it into Japanese, Chinese, whatever language and get, you you know, kind of 80, 90% of the way there. And it's maintainable for me. Whereas doing you know, I would love to have Brazilian, German, French, Russian, whatever translations of my books, and I get offers for it.
Will:But, it doesn't make sense given the amount of sales and given the update pattern.
Brian:So if I buy so
Will:I think buy
Brian:one of your ebooks, I can view it through the browser then?
Will:Not yet. Okay. So if you buy the ebooks, you get it. You get a PDF or an EPUB through Gumroad.
Brian:Okay.
Will:So the plan is to have it just all seamlessly on one site. Right now, I've got a whole constellation of sites. Like, there's different sites for the book. So you can get you can read the first, like, quarter of all 3 books on their dedicated sites.
Brian:Okay. Well, so I have some more so you've got 3 books, Django for beginners, Django for APIs, and Django for professionals. Which one sells the most?
Will:Beginners. Beginners.
Brian:But but
Will:but it's not crazy. I mean, beginners is probably beginners is probably, like, 40%, and then, maybe, like, 30, 30 for the other 2.
Brian:Okay. Now do they build on each other? So can I can I read?
Will:They do. So Okay. So this is the thing that I, you know, I I wrote them boom boom boom 4 or 5 years ago initially, and now with the updates there, there's the question, like, which one do I do first? They progress. They do progress on each other.
Will:There is a tiny bit of overlap with the APIs book. So, you know, which comes first? Like, should after beginners, do you do the APIs? You do professionals? Professionals guides you through Docker and production, level deployments and all the other kind of full goodies that Django provides.
Will:It doesn't go into APIs even though most Django developers will be writing APIs
Brian:for
Will:a front end.
Brian:Okay.
Will:So, I don't have a perfect answer. I usually say, depends what you need at work. If it's just you and you just wanna, like, get a site up or you're a small team, the professionals, but the APIs one is written, you know, for Django REST framework and APIs because there there wasn't any book that I was aware of at the time, and there's still very few that kinda show you how to do authentication, how to do security, how to deploy. So, you know, all the first two books definitely started off as my own notes to myself on how to do all this as I was learning.
Brian:Okay.
Will:And then, I actually had a a break in employment. I joined a company that then was sold and, was not asked to continue on. So while I was interviewing, I decided to publish these books, and that led me on the path I am today.
Brian:And I'm actually amazed that you make a living, like, full time living off of Friday.
Will:Yeah. Everyone everyone is, which I'm always, like, not sure how to respond to that. But, it's, you know, it's a couple of things. I mean, one is that I before I learned how to program, I started my career as a book editor, which is probably unusual. Editing trade fiction, nonfiction, all that kind of stuff for 5 years.
Will:And then I got and and then I learned how to code and got an MBA, and then I worked at startups in San Francisco. I I was the 3rd employee at a place called Quizlet, which is an educational
Brian:I remember Flashcard.
Will:Yeah. Flashcard place. Yeah. So there was, you know, employee number 3. It's supposed to IPO at some point.
Will:That would be nice. And so I had that experience. And, you know, what I took away from that is so I'd never lived on the West Coast before. But, you know, there's such a divide obviously between people who can code and people who can't. Yeah.
Will:And I remember thinking, I'm young enough. I've got a brain. This is the like, I I helped hire the entire technical team, the first 10 developers there. But the one thing I couldn't do was, like, code code. Okay.
Will:I had learned how to code and build build basic websites while I was actually transitioning out of publishing. So I had a small business building websites for, book authors because that would be a couple $1,000, and we'd hire people to do it. And I was like, oh, I could do that. So I learned how to do that, you know, not award winning, but good enough, and did that for a number of authors. And then I wanted to make the transition to the West Coast.
Will:But yeah. So I came into all this later in life, which I think informs my perspective in a couple of ways because I'm not formally trained, and I'm also not as malleable in terms of I I still get upset at how hard it is to learn how to code. I still think coding itself is not it is generally not that complicated. It's just poorly taught as poorly taught because most people learned it when they were like 12 or they learned it in an engineering course. And, you know, so they think that's how it should be taught.
Will:And I think that is how it should be taught if you're getting an engineering degree bottoms up. But if you're just trying to learn on your own and get a job and be functional, much more of a mixing of context and theory is relevant. And so certainly my beginners book, there's a lot of like we're just going to build this thing and then I'll backfill. I will cover the information, but I'm not going to like barrage you with fundamentals upfront. I want you to get that.
Will:Uh-huh. Things working and then I will show how it all fits together. So the but the irony is over the years is I've been doing all this for. Over well over a decade now. I find that the small things interesting.
Will:So I've become kinda what I didn't wanna be. I've become one of those, like, engineering professor people. Like, now I'm, like, excited by the details. And so I every addition, I put more and more in there. But I try really hard to make clear, like, it's sort of like as an aside, like, you know, you this is what's you know, this is how password stuff is actually working.
Will:Like, you don't need to know that, but I want you to know that it's there for when you're ready for it or you have the inkling. But, you know, somebody who can kind of say, here's the main course, and there's all these side quests. But when you're starting out, you don't have anyone to sort of tell you. I mean, I see this when I mentor people. There's how do you there's no way to separate what I should do, what I shouldn't do.
Will:Like, you can spend days, weeks on something, and someone's experience is like, oh, that doesn't really matter. Well, one of the frustrating
Brian:things I have is how hard it is to write a write and self publish an e book and still today. So I'm. Yeah, I'm curious. Okay. So you you sell through Gumroad, Amazon, and on your site, where does where do you get the best where does most of the traffic come from?
Brian:Is it
Will:The well, the traffic comes from me because I have the I have a whole lot of free tutorials.
Brian:Okay.
Will:And then I have the free first, like, 3 or 4 chapters of all the books available. So it's very much, like, you know, try it. Like, see what see what you like. So the progression generally is people find a tutorial, and then from there, they find the book, and then I give away quite a a lot of it. And, you know, if they like my teaching style
Brian:Oh, nice.
Will:Then they'll they'll fill it in. So it's all, it's all you know, I I'm I've been doing this long enough. I'm at a point where I wanna keep creating content, but I need to focus a little more on the marketing side and think about how to do that because most you know, as you can attest, most people who write a book have a full time job and, you know, it's it's something they focus on, but it's not necessarily the full Yeah. Focus. But you can get kind of wrapped up in, like, I need to make my content better and you should.
Will:But how do you it's like anything. You know, if you believe enough to create the product, you should believe enough to sell the product. And so I've been thinking a lot, especially this summer, I've I've been stepping a little bit away from the keyboard trying to think about, like, okay. How do I, you know, is this what am I do the next 7 years? Like, how do I how do I make this work?
Will:And so, yeah, so, you know, actually, you were just telling me, like, you know, videos is one thing. Right? Like, you just you're thinking about videos. I'm thinking about videos, but, you know, time is limited. So as a content creator, you have to balance learning, creating, and marketing.
Brian:Yeah. So, like, for instance, I don't even have a way for people to find the video. So I've started doing the Pytest book as a course as 3 courses, actually. And by the time I air this episode, it will be atpythontest.com/courseorcoursesoroneofthosethings. There'll be a page that talks about it.
Brian:Right now, all it has is I did a a a course for, for Michael on his, talk Python. So there's a a little short course there, but I had fun doing it. So I I'm I'm really enjoying doing the course because, with especially with working with an editor, and I think that the pragmatic editors really did help make the Pytest book better. So but you you have, you you know, multiple, like, 5 versions of this stuff or 3 versions at least. 5, did you say?
Brian:Five versions of each, Brooke? I think I'm
Will:on I'm on the 5th update.
Brian:That's amazing. I
Will:think it was, like I mean, it's, you know, but I think is it is it where I need to most spend my time? Because every every update, I'm I'm thinking about so 5 point o for Django comes out, in December. If there's a way to have just, like, a 5 point o release or 5 dot x release that covers for 2 and a half years because the reality is 99% of it is like Django does a really good job of being mature and not breaking things. Yeah. And for me as a creator, I it's just such a burden.
Will:It's not it's not even the code. It's just all the logistics of updating the text and then updating the books and then updating the websites and updating the GitHub repo and, all that takes up a lot of time that could be spent on new courses or new things when, you know, the the code is fine. But, you know, again, from the outside, you look in, you say, oh, it was 4.2 and like, full stop you. Well, since you're doing, like, the marketing side, we'll like, full stop you. Well, since you're
Brian:doing, like, the marketing side for it, one of the things I would suggest that I plan on doing with the marketing of the pie test book is just letting people know that it still works. Like, the like, make make test it and make sure that the and maybe update the site and say, yeah. It still says in the book 4.2, but it works fine on whatever the current version is or something.
Will:Yeah. But I I know I've done yeah. My experience is I've said that and done that, and people still, like, kinda wanna see the shiny new number, which which I understand. I mean, I think it depends. The interesting thing for me about video, I mean, because you you know, Pytest, I guess, is a little more advanced maybe than some other things because you're you know, you have to know Python.
Will:You have to have some sense of testing. I've always thought of video as being certainly designed for true beginners who get fully stuck. I'm curious you know, how you do and how the market is for more advanced video courses. I mean, on the one hand, you see you see people like West Boss and Kenzie Dodds and some of these in the JavaScript realm who charge, like, premium prices. But I don't see most people seem to just go to, like, Udemy and get, you know, a $9 whatever course.
Will:I'm curious how how big the upper end of that, sphere is.
Brian:Well, we'll see. I I'm not sure.
Will:Yeah. We'll see. We'll see.
Brian:For instance, I'm I'm working on right now, I'm working on chapter 3, which is which is the big the biggie for Pytest, which is fixtures. And
Will:Yeah.
Brian:And Pytest is really pretty easy to work with, but it's a mind shift. And fixtures are definitely one of the mind shift things. So I'm really enjoying, like, between the second, the first edition and the second edition of the book, I re completely revamped how I teach fixtures, and I go a lot slower. However, I'm going even more slow in the in the course, the video course, but I can also do it different. So I I have I like I start with some visual slides with drawings and stuff and say, this is, you know, I can move boxes around and stuff and say, oh, this the the, you know, setups over here and turns over.
Brian:I get I like to do more, like, drawings and just and artwork. And then and then do a demo and then go back to and then I'm gonna redo the demo and say, okay. Let's do it again, but do it slightly different just because you gotta have that repetition. But the cool thing about the video is pop somebody can watch it and then go all through all 3 of these models at like 1.25 speed or something and. Right.
Brian:And see the whole thing in like 10 minutes. And then they go, I still don't get it. They can watch it again. And yeah.
Will:Right. Well, it's it's more how you would do it if you're sitting next to someone with the video. I mean, because when you write a book, you you kinda have to predict what's gonna be confusing and address it. Yeah. But you're you're just kinda guessing.
Will:I mean, because all on some level, ultimately, it's just a it's a cook. It's like a recipe book. Right? It's just like to do do, you know, this this this this this this and this. And you have to somehow make it readable and somehow be like, and you're probably gonna think this, but really it's that.
Will:So for me is when I'm writing stuff, I'm always trying to think about where is that line? Because I I yeah. I'm my email is very available. I email every day with with with readers. So I have some sense of, you know, what's tricky.
Will:But I had if figure out where to where to put that line, you kind of have to guess. Whereas if it's just a video, I think it does open up ways to be a little more yeah. It's just more visuals, you know, other ways to show stuff.
Brian:Yeah. And, like, say, chapter 2 was maybe just one chapter, but I did there's probably 15 or 16 videos in it. So and they're only, like, a few minutes each. But I like I'll I'm enjoying that granularity. So in the future, if there's things that break on a new pipe test, I can maybe just update that section and not all of it sort of things like that.
Will:Well, yeah, that's the sort of the the the problem is always upgrades.
Brian:Yeah.
Will:With everything. I mean, even, I forgot his last name, but Anthony, who runs, there's a YouTube channel pretty printed, and he's done a number of Django courses. And he's stopping doing courses just because it's too much for him to do the updates. And I see this happen again and again and again, and I certainly feel the pain. And that's that's in some ways, that's what I most worry about with video because unless, you know, can you just go in and snip and just change changes a couple of things that that are different, or do you have to redo the whole thing?
Will:Because, you know, with text, you can just jump in and do it. We'll
Brian:see. I don't know. I'm having fun with it, though. So is learn Django is the site, a Django site?
Will:So it is it is a Django site. My personal website, WS Vincent, is it still what is it? It's, oh, Jekyll. So it's it's Ruby and it's something I set up a long time ago, a static static site, and I just can't be bothered to change it. But learn Django is actually a Django site.
Will:So I'm I'm sort of excited about having having a a personal site that I can just do, I can just make it perfect in a way that you never could in a professional setting. Like, if I want to have a 100% test coverage, I can. If I want to do all these over optimizations and stuff, I think it's important to have one project at least like that that's, a playground, but with users. Because for me, I have so many tutorials and books, and it's generally relatively simple toy projects that I'm creating. Yeah.
Will:So it just sometimes that's a little less satisfying than, like, taking a week and just being, like, I'm just gonna do, like, you know, real in quotes, bingo now and, you know, do all the stuff that I wanna do that I know, you know, in a professional setting, you don't have the, flexibility to do it. But if I find something interesting or challenging, I know that others will too. And so that leads me to a course. Yeah. So, like, I'd love to like, I mean, if you Google right now, Django testing tutorial, I'm pretty sure it's something I wrote, which I would love to do a testing course.
Will:But, I don't know if there's a market for there. But, you know, once I fully add, I've sketched it out once I fully you know, I'm like, well, one thing I could do is really get to a 100% coverage and all these cool things I wanna do with Pytest and the rest and then, you know, turn it into a course. So, trying to get that flywheel of, like, learning, coding, teaching.
Brian:Well, I think that would be cool, and I know of at least one platform you could sell on. And, anyway so the the the the Python course I'm working on is under a test code banner, and I think, I would have no problem with trying to with bringing on other people to if you wanted.
Will:Yeah. Okay. Cool. Well, that's that's always the, you know, this is the progression. Right?
Will:It's sort of like the progression of, like, you see a YouTube channel. Someone starts with a niche, like, coding and then they end up doing like personal productivity hacks. They go like more general. That's like what people actually want to see. Like, I find that you.
Will:Yeah. Like, it's hard once you've done the marketing to create, you know, the testing thing or the Python thing. Right? Like, Michael Kennedy has or the Django thing. Then it's like, oh, well, why don't I just bring in other content?
Will:And that makes sense. But I also see that then you're spending as a maintainer of that, then you're spending a lot of time, like, editing other people's stuff rather than doing your own stuff. Oh, yeah. That never question of size.
Brian:Never mind. No, no, No.
Will:I'm not saying you shouldn't. I I don't know if you can tell. I overthink everything. But I've seen, like, my friend Michael Herman, who runs test driven dot IO. He created he was one of the creators of real python.com.
Will:And they they spent a lot of time doing this, and he had frustrations around updates. And that's one of the reasons he sold it, to Dan Bader. And then, he and I worked on the early versions of test driven dot io, which is a Django site together. And now he's kinda recreated it in a good in a in a good way, but it's it you know, it's just I sort of know that devil a little bit in terms of, but yeah.
Brian:So I,
Will:Not a genuine discussion.
Brian:I actually know what you mean about, like, the having a website that you can work on. I've got a side project that's Django that I'm I've going really slowly because of all the other stuff I'm doing. But the, but I I I'm looking forward to having that be the playground where I can figure out figure out testing in Django and, and deployment and all that sort of stuff. And and and then also just make it something I I wanna, that I'm proud of. It's completely not targeted to programmers, so I'm not even gonna plug it here because nobody's gonna need it.
Brian:But, but it's sort of fun. As far as, like, my personal site, it's in Hugo. But really Yep. Really, it's in markdown. I don't Yeah.
Brian:Exactly. I don't touch the anything with Hugo other than I, like, configure some YAML files and I write in markdown and that's it. So, do you say
Will:yeah. I mean, say my Jekyll site's in markdown. I mean, my Django learn Django. I write in markdown, you know, in terms of writing.
Brian:So your how about your books? Did you do your own custom pipeline or do you use, like some other pipeline to generate?
Will:No. I do it. I do it manual. I'm kind of old school because I know people have great test suites and stuff for their things. I've found that I like just 8 months have passed going through it all from scratch, and I have to kinda do it anyways because I create a whole new I don't I don't trust the code enough to do it.
Will:Like, I'm it's not just that fixing things that break. It's also do I wanna it's like the subjective things around style because that changes over time. So I go through them all from scratch and do it all from scratch, each time.
Brian:You're you're manually writing the EPUB document?
Will:Oh, no. Sorry. I I to generate to generate that, I use Leanpub.
Brian:Oh, okay.
Will:Sorry. I use Leanpub, to generate it.
Brian:Alright.
Will:But in terms of, like, the text itself and the code itself, I go through that all that manually. Oh, I some people write a little script and then use that to kinda update their additions for the for the code.
Brian:Oh, right. Yeah. I'm not sure how I would do it now. I I did I did market a little, Leanpub based book on testing long time ago. So I'm in familiar with the at least what Lean Pub was 10 years ago.
Will:You know
Brian:what it's like now?
Will:With getting older. You're like, why does things change? You know? So, like, Leanpub, I started with it. They had a they had, like, a 95% or 8, 90% royalty rate and the and great tools.
Will:And then they switched it to 80%. And then Gumroad came along, and Gumroad was, like, 97%. Like, that's great. But now Gumroad is now 90%. You know, so if you're locked into a platform, they're just they're gonna put the squeeze on you eventually.
Will:But it's you know, so, like, I've thought about like, I would like to I've worked to have, like, a more professional cover, for my covers because I I designed the covers, you know, so they're not amazing. And it's it's an issue that people think the books are not as good as they are because the cover is not great. So I'd like to design a cover. So I have to get someone to do the cover. And that, and that's a whole process and 100 of dollars.
Will:And then I need to update it for each edition, I think. Right? So that's an update. And then what if I change the amount of text? Now the spine changes.
Will:Now I have to change that. And then I have to change the interior layout. So it's, you know, there's a reason why publishing houses it's it's not just time. It's it's ultimately a couple $1,000 per update Yeah. Just to do one update for one book.
Will:And I'm so, you know, I'm thinking about I still wanna have at least 1 imprint book, but it may be the case that I moved to online stuff and just have, like, one textbook. I mean, so the Django for beginners book is used. I mean, I know in a number of, universities as, like, a semester long web course right now. So it'd be nice to sort of maybe have that be if you want, like, a physical book, you can have that. But it's just the all the all the other maintenance stuff is is difficult to to do with a web framework that updates so often.
Will:Right? Like, Python and Pytest. Yeah. They change, but people don't see them changing as much.
Brian:Well, and they're very actually, and, Pytest has been almost as good at Python, actually, about maintaining backwards compatibility. Like, you could kind of ignore the new features if you want to for a long time.
Will:I mean, Django Django too. It's more that the the web space changes. I actually I was curious question for you. I mean, because I know you were you know, I think sometimes people think that web stuff or Django stuff is is, is like a novice thing. But, like, I know from experience that there's many people who've been coding Python for 10, 20 years or more, but haven't touched web who, who then, you know, will say nice things about my books because the other books assume a whole breadth of web knowledge that you may not know even if you've been doing a programmer.
Will:So that's one thing I get a little frustrated with is that people kind of assuming the web web stuff is simple if they're coming from other realms, when the reality is, like, yeah, I get lots of emails from people who doing stuff for decades and, you know, having trouble.
Brian:Well, one of the things that's difficult as a as a teacher, or like a course creator or a book writer or something is to pay to pick a target audience. Yeah. Yeah. Because, like, for me, I might be I'm new to Django, but, man, I started learning I I learned, web stuff in the nineties when it was, like, when there was one browser you could do. We had Netscape Navigator, and that was it.
Will:Right. Right.
Brian:And then I started writing, like, what, raw HTML with, image files and, and pearl CGI scripts in the back end. Mhmm. Yep. The and then, you know, I then I left for a while, did embedded stuff. And then when I came back to build something, did learn a little PHP, then learned a little WordPress, then came back later and then learned, some JavaScript and some some CSS.
Brian:And and then even then, when I came back again, CSS is completely different. CSS is a perfect Yeah. Tailtailwind and everything. Yeah. It's good.
Brian:It's got compilers and everything. And,
Will:yep.
Brian:It's a it's it's mind boggling. So trying to find a Django tutorial that is like, I'm new to Django, but I get the web already. It's, it's been difficult, to try to and, also, I'm a really impatient person. I I'm so I I was, I can't remember who I was talking to, but I'm, I'm great for, like I understand the beginner mindset thing, and I'm totally fine with walking through, like, a toy tutorial or something. And I like toy tutorials for learning new things.
Brian:But then after I've done that, I'm like, okay. Now I wanna draw the rest of the owl. Now now I wanna build, like, a professional website with, with ecommerce in it and, slideshows and all that sort of stuff, and it's hard to get from beginner to something that looks polished. So
Will:I've I've thought about this in terms of maybe there's something you know, maybe it's like a recipe book or something, like, where for someone like you or even someone like me, like, I'm going through stuff. Like, so I've talking to people who said, like, yeah, I went through your book, but then I was trying to implement it, in my own site, and I was just getting stuck. And and I was like, well, I showed it. I showed you how to do it all. And they're like, well, but, you know, you were but you were teaching while you were doing it.
Will:It would have helped to have like a final project that just sort of like, let's just blast through it the way you would if you knew this as opposed to, like, paragraphs of explanation about stuff. That's something that stuck with me that I'm thinking about.
Brian:Well, that would
Will:be even for me.
Brian:That might be great as a video course where you could just say, you're just gonna talk while you're building it. Okay. I'm gonna build a, like, a little stupid bookstore or something, and, and then walk through all the stuff, and record. Yeah. Well so
Will:Yeah. So I think I think there's there's room for that for something that's, you know, there is someone on Matt Layman who does, he does, like, weekly podcast where or, excuse me, video screencast where he builds Django stuff. He does great content.
Brian:Yeah.
Will:I think, to me, the issue is, like, I like I'm impatient. I like things curated. Like, I don't wanna see someone, like, pull their hair out and, like, hunt around for a bug. I would rather see someone just kinda, like, do it in god mode Yeah. And just do it as a reference point.
Will:But that requires a whole lot more polish than, you know, actually doing it. But I still think there's you know, that's what I've been thinking about because I wanna do more advanced stuff, but I can't I can't always, like, explain everything. And I don't, you know so just say, like, hey, I've got beginner stuff. Like, we're just gonna kind of fly here, even setting up a new Django site from scratch. Like, so one of the repos I have, I have 2 kind of popular repos.
Will:1 is an awesome Django repo with Jeff Triplett with, like, curated stuff that got, like, 7,000 something stars. And then I have a starter project, Django x, which along with, oh, I'm blanking on it. Cookiecutter Django, I think are the 2 of the more popular starter projects. Because even someone who knows how to use Django, it's like you just wanna, like, hey. I just wanna, like, have authentication, simple deployment.
Will:I, like, I wanna build the thing. I don't wanna, like, reinstall Django and go through all the steps.
Brian:Yeah.
Will:It still takes so much time even, like, even for me when I teach this stuff and, you know, professional developers who haven't created a new project in a couple of years. You know, I've had people who are like, you know, who, like, wrote Django, who, like, have referred to stuff I've written because they just haven't done it from scratch in a while. So maybe there's, like, a premium recipe book thing for, like, get me to this, you know, get me to the owl, like and you you can skip some step, but, like, just show me how to do it.
Brian:Well, that might be a
Will:cool thing for, like, a subscription site too to be able
Brian:to just say, like, you know, if it's low enough that I can forget about the subscription fee, just to have, like, when I run into the authentication, I like, oh, how do I do that or something? Or
Will:Right. Well, because you're you ultimately, you're time saving. Right? I mean, when you get, I think, past intermediate level, it's, like, okay. You could figure it out.
Will:But, like, if someone just gives it to you and saves you a couple hours, what's that worth? Probably worth a lot.
Brian:Yeah. And I'm not ready yet to just, like, ask an AI to write it for me. So I'm
Will:not quite. You know, Simon Williston, I don't know if you've had him on, one of the co creators of Django. You know, he's he's kind of at that point, but I've, you know, I've talked with him and others. And I think if you already know how to do it, AI is great because you can spot the 10% that's nonsense. Yeah.
Will:But as a learning tool or even if you're intermediate, I don't know. Maybe I'm old fashioned, but I think you have to already be a master to appreciate the scaffolding because you can toss out the nonsense because it still has nonsense.
Brian:Yeah. And, also, I mean, Simon Wilson's brain moves so fast that
Will:Oh my god. That I He's frantic.
Brian:I think that, like, an AI bot is the only thing that could keep up with him, like, coming up with new ideas. So
Will:But I, you know, I think, actually, if there was the first place that I would wanna see this would actually be testing in a way. I feel like testing for in the web context would be a great place for AI because you can kinda, like, does it work? Does it not work? It's can be relatively simple for unit tests. It I you know, as I think of the web stack, I feel like you know?
Will:And, actually, that was one of the talks. I don't know if you saw. There was one of the talks at JangoCon Europe. I'll pull it up. They were, sort of creating automated tests, like, kind of on the fly for for people because, I think that's kind of, like, if I had to pick an area of of Django that AI would influence, it would be the testing suite.
Brian:Yeah. Okay. That'd be interesting. Like, when a lot of times I get a lot of questions for people ask, like, how do I test this thing or something? And Right.
Brian:And my first question back to them is, well, how do you know if it's working or not? Because if you don't know if it's working or not if you can't describe how how it's working or not, then you can't write a test for it. And that often leads to research. So I'm not sure how to tell an AI how to tell if my what that what my intent was so that it can generate the right test for something.
Will:But Yeah. I'm gonna I'm gonna share with you this talk, because it's only had so criminal. Only 500 views. It's called, turning test writing into a consistently brief and pleasant experience from DjangoCon Europe point 23. I mean, it's the only the only talk the entire conference that got a standing ovation.
Brian:Okay. Well, I'll have to watch that. And that But
Will:I think
Brian:That's that's a great title. I should have subtitled my book that. That's great.
Will:Yeah. Well, you should I can I can introduce you? But I you know, but part of it with all this stuff, it's, like, how do you convince people that they have a problem? You know, it's, like, how do you sell soap? How do you tell people they smell?
Will:It's, like, how do you tell them that their their code is lousy and they need tests? Or how do you tell them that it could be better? Like, you you it's, it's difficult to do the thing and then to, like, figure out how to convince people of of the thing. Right? Like, for you, like, how do you you know, people are like, oh, my my code kinda works.
Will:You know, web stuff, like, yeah, stakes are low. Like, why do I need Pytest? Like, what what's your kind of response to that?
Brian:We might not. If does it does it does it work already? I mean, like It
Will:depends. Yeah.
Brian:If your customers are griping and then maybe you ought to test more before they so that you catch it before your customers do. But a lot of people
Will:You can ignore the ignore the engineer griping. They don't they don't count. But, yeah, the customers.
Brian:Well, the I guess, I think engineering griping is is worthwhile listening to as well. If I I test not because I I care about quality, but that's not why I test. I test because being a software engineer is more fun when I can really lean on the test to know things are working.
Will:So Right. Well, it's like, how do you trust a coworker, let alone yourself 6 months ago? Yeah. I don't. Let alone, you know, 3rd third party updates.
Will:Well, that's what that's one of the I I don't know if I told you this story. 1 of the, I know we're coming up a little on time. When I joined Quizlet, it was a I think it was a top 100 website at the time or within a year or 2 when I joined. But there were, like, 2 full time engineers. It was PHP custom stack, that the creator had started when he was 15, and managed it while he was at MIT.
Will:So not really, like, how you would do it in a professional setting, but it worked. And I one of the people I hired was a graduate student. He just finished a graduate degree from Stanford. So he came in. We're very excited, like, into education, all this stuff.
Will:And he looked looked at the code base. There guess how many tests there were?
Brian:I don't know.
Will:Top 100 website. 0. 0. 0 as in 0. Like, all in the founder's brain.
Will:And the other early engineers had just, you know, also young kinda cowboy coding was all in their head. And so this, you know, Stanford trained engineer, he was, like, I don't feel comfortable writing anything unless we have a test suite. And so, he set up Jenkins. You know, we never had Jenkins before. You know, so all these but, you know, real world code is always like, I think people who who grow up or people who learn in school and then open source code and they get in their first company and they see what the real world is like.
Will:It's it's it's a little bit shocking. Right? Because real world code is supposed to be, like, one, like, one byte away from breaking. Like, you know, real world code is always kind of a mess.
Brian:But there's also other stuff that
Will:I mean, the the testing landscape is not
Brian:just that I write a test for it, but there's also, and error reports and, you know, log tracking. And there's all sorts of stuff to so that even if your customers don't complain, the engineering team can see that, like, oh, these links are broken. And everybody that clicks on it, it doesn't work, so they can go fix it.
Will:Yeah. Or permissions. Like, we had a case where the, the founder dropped DB the entire database, trying to fix one record. But, you know, there were no permissions on there. It was just him and a couple other people.
Will:And he was, like, oops. So we had, at the time, there's a com there's a company. I think they're still around called Percona that do, like, will help you retrieve. There was a backup, But, we had, like, the highest level plan. So, like, we had 247, like, follow-up someone.
Will:You know, there's all these I don't know how much of that I think a lot of that startup be you know, it's sort of like consumer startups in the West Coast where it's a it's a very much
Brian:Yeah.
Will:Fast and loose as opposed to, you know, other settings. But, I mean, anything that could go wrong. I mean, God. I mean and, you know, we are right next to all the startup, Dropbox, all these places. Like, you hear just hear these security horror stories all over the place.
Will:But, you know, the companies are still around and people made money, so I guess it's fine.
Brian:Well, yeah. You know, you want things to go as best as possible, but there's I mean, there's levels. There's there's there's like a website that shares cat pictures and then there's, yep, there's systems that handle your health care system for you. Some are a little bit more important than others. I'm just saying.
Brian:So yeah.
Will:Anyway Yeah.
Brian:I guess one last question. You said you you were on the West Coast for a while. Are you still on the West Coast?
Will:No. Yeah. So I was, I'm just outside of Boston now. Okay. I was out in San Francisco, for, I guess, only 3 3, 4 years.
Will:Okay. And had my, as as happens, had my first child and was very far away and came back. So, you know, all the all the East Coast people I know who've lived out west, the only reason you come back is family. Not the weather. It's not the food.
Will:It's not the it's not the job prospects. But I've I've been primarily on the on the East Coast, most most of my life, but, I've left it. So I have Yeah. Yes. And and, yes.
Will:So I have I have 3 little kids. I'm in I'm in an apartment, so I can focus just fine, but I don't have a door that closes that is respected. Oh, yeah. Okay. This is one of the things, I've had to adapt to working remotely.
Will:I've been working remotely, I guess, since 2014. Okay. And it's certainly a. A. I like people.
Will:So it's a challenge for me to actually, you know, just not have other people around, even though I like having a deep think. But I've, you know, it was a whole process, especially the first couple of years for for me and my wife to learn that, all those, like, interactions out in the world. Like, when you just like, during COVID, I think this happened to couples. We just, like, sit there all day with each other. Like, you don't really have anything to talk about.
Will:Right? Like, just like, oh, something happened to the bus or this and that. Like, it it is kinda like the spice of life. Yeah. The long way of saying co working space for me is a very worthwhile investment.
Will:Just it's also just easier just to, you know, I come here, I work, and when I'm home, I
Brian:I could totally see that if I if I had especially in an apartment. I I have the luxury of having an office that with a door. So Yeah. I can close it off. And and and if I have it cracked open, that means you can interrupt me if you need to.
Brian:But if it's, if it's closed, it means don't.
Will:Yeah. I think it's it's also context switching, I think. I mean, I've gotten you have to you know, being self employed and being working remote, you have to be pretty good and disciplined, but it's just a lot easier to, you know, like yeah. It's easier to just have a space where, like, you do the thing in the in there and you don't have to.
Brian:Go
Will:about it.
Brian:Let's wrap it up because we're getting long. But, thanks so much for talking with me, Will.
Will:Yeah. Thank you, Brian. I'm I'm a fan of your earlier episodes on on this new podcast, and I like the idea of, you know, exposing the people behind, the code a little bit.
Brian:Yeah. And in the future, if there's anybody, I'm kind of saying this both to you and to people listening. If there's people that you think are really influential in the Python community or just interesting people, that would be fun to talk to, let me know when you think of them. We'll try to get them on the show. Alright.
Brian:Thanks.
Will:Sounds good. Alright. Bye.