WEBVTT

00:00:00.001 --> 00:00:04.740
Are you a fan of developer and technical books? Have you ever wondered what went into the writing

00:00:04.740 --> 00:00:10.080
of your favorite Python book? This week we'll peek inside the world of book authorship with

00:00:10.080 --> 00:00:15.200
a panel of renowned developer-focused authors. You'll meet Katherine Jarmul, Bruce Eccle,

00:00:15.200 --> 00:00:21.780
Luciano Romalo, Dan Vader, and Brian Okken. This is Talk Python To Me, episode 148, recorded

00:00:21.780 --> 00:00:24.140
January 26, 2018.

00:00:24.140 --> 00:00:43.280
Welcome to Talk Python To Me, a weekly podcast on Python, the language, the libraries, the

00:00:43.280 --> 00:00:47.880
ecosystem, and the personalities. This is your host, Michael Kennedy. Follow me on Twitter

00:00:47.880 --> 00:00:52.800
where I'm @mkennedy. Keep up with the show and listen to past episodes at talkpython.fm

00:00:52.800 --> 00:00:55.400
and follow the show on Twitter via at talkpython.

00:00:55.400 --> 00:01:01.340
Hey everyone, before we get to the panel discussion, I want to tell you really quickly about a new

00:01:01.340 --> 00:01:07.120
course we just launched, Mastering PyCharm. If you've worked with some of these IDEs like

00:01:07.120 --> 00:01:12.100
PyCharm, you know there's so much going on. There are so many features and those can actually

00:01:12.100 --> 00:01:17.540
be a little bit hard to discover and use. So I created this eight-hour course to give you

00:01:17.540 --> 00:01:24.140
a grand tour of PyCharm. And it turns out it's also a grand tour of software development. We cover

00:01:24.140 --> 00:01:29.900
things like source control, refactoring, working with databases, client-side web apps, Python packages,

00:01:29.900 --> 00:01:35.080
unit testing, data science tools, working with projects, being super productive with the editor,

00:01:35.080 --> 00:01:41.100
and lots more. So if that sounds appealing to you, just visit training.talkpython.fm and find the

00:01:41.100 --> 00:01:47.900
Mastering PyCharm course. Now let's meet our panel. Hello everyone. Welcome to Talk Python. We have

00:01:47.900 --> 00:01:54.680
Luciano Romalo, Brian Aachen, Bruce Eccle, Dan Bader, Catherine Jarmul, and me of course, Michael,

00:01:54.680 --> 00:02:00.960
your host. And we're going to do a pretty large tech book author panel, which I'm really excited to

00:02:00.960 --> 00:02:06.160
share this, all of your thoughts with everybody. It's going to be so fun. Let's do a quick round of

00:02:06.160 --> 00:02:10.420
introductions. Some of you have been guests on the show before. Some of you are my co-hosts,

00:02:10.420 --> 00:02:15.520
right, Brian? And people know you well, but we'll go around the table real quick. Start with you,

00:02:15.520 --> 00:02:20.480
Catherine. Maybe just quickly tell people who you are and what you do day to day.

00:02:20.480 --> 00:02:28.000
Hi, yeah. Thanks. I'm Catherine. You might know me by Kjam, and I run a data science company here in

00:02:28.000 --> 00:02:34.700
Berlin, Germany called Kjamistem. And I mainly work on data science and machine learning, but I also have

00:02:34.700 --> 00:02:42.440
kind of a focus on in production and deployment and systems. So I've been doing more security work

00:02:42.440 --> 00:02:48.600
recently, but those are the things I'm passionate about. Yeah, very cool. Luciano, how about yourself?

00:02:48.600 --> 00:02:54.960
I'm the author of Fluid Python, and I currently work for ThoughtWorks, this global consulting company.

00:02:55.480 --> 00:03:01.880
I'm sometimes in projects with clients, but more recently, I'm also in our global capability team,

00:03:01.880 --> 00:03:07.060
which is a team that aims to develop the capabilities of our consultants around the world.

00:03:07.060 --> 00:03:14.660
And I've been diving into the wonderful world of e-learning and books and those kinds of systems

00:03:14.660 --> 00:03:19.800
to pick one for us to use. Yeah, that sounds really, really fun. Bruce, how about yourself?

00:03:19.800 --> 00:03:26.160
So I'm Bruce Eccle. Apparently, what I do is study programming languages in hindsight,

00:03:26.160 --> 00:03:33.880
because I look back on my career and I see that seems to be what I do. Right now, I tried to start

00:03:33.880 --> 00:03:43.640
working on a book on concurrent Python, and that as concurrency always has been deeper, whole than I

00:03:43.640 --> 00:03:49.780
expected. And there's all kinds of interesting other possibilities. And in the meantime, I got sucked

00:03:49.780 --> 00:03:59.860
into a project which we've been working on for almost a year now called Atomic Kotlin. So I'm mostly

00:03:59.860 --> 00:04:05.780
immersed in Kotlin right now. The other thing that I've done for the last almost 10 years is study

00:04:05.780 --> 00:04:14.040
alternative organizational structures to try and come up with ways of organizing groups and companies that

00:04:14.040 --> 00:04:19.760
doesn't suck. Because there's plenty that do, right? Mostly they do, which is why I realized

00:04:19.760 --> 00:04:28.400
that I went off on my own like 30 years ago because I didn't want to play in that sandbox. And now I'm

00:04:28.400 --> 00:04:32.460
realizing I should have created a better sandbox. But oh well, hindsight.

00:04:32.460 --> 00:04:37.360
Yeah, well, there's a lot of stuff you can see in hindsight. That's right. Brian, people know you,

00:04:37.360 --> 00:04:39.720
I'm sure, but go ahead and introduce yourself for those who don't.

00:04:39.780 --> 00:05:00.960
Yeah, my name is Brian Okken. I wrote Python testing with pytest. And my day job, I guess I do coast a couple podcasts. And then also, I'm a lead engineer for lead engineer slash software manager, test manager for a small team as part of a communication test system for Roden Schwartz.

00:05:01.140 --> 00:05:04.140
Okay, excellent. And Dan, how are you?

00:05:04.140 --> 00:05:30.680
Hey, I'm good. Thanks for inviting me back on your awesome show. And I feel like I'm in amazing company this time. So yeah, my name is Dan Bader. I recently published a book called Python Tricks, a buffet of awesome Python features. And I also do some Python consulting and then also run a couple of Python related websites, realpython.com, nerdlettering.com and my own personal website at debater.org.

00:05:30.680 --> 00:05:35.840
So it's almost like 100% Python that I spend my time with every day.

00:05:35.840 --> 00:06:00.660
That's really awesome. All right. Well, thanks for that, everyone. Now people kind of know where we're all coming from. So a couple of you have mentioned the books that you've written. I'll just make some quick comments on that and others haven't. So for example, Dan, you have the Python Tricks book, which we actually did an episode on 141 on Talk Python on that. That's great. Luciano, you have Fluent Python, which we had an episode on that on Talk Python.

00:06:00.660 --> 00:06:08.480
Python as well. Brian, you have pytest, which we talk about a lot on the podcast. Catherine, tell us a bit about some of your authorship.

00:06:08.480 --> 00:06:31.780
Yeah, so I co-authored Data Wrangling with Python, which is an introduction to Python for people that perhaps are starting to want to work with data. And then I have a few O'Reilly video trainings. And I also helped create the second edition of Web Scraping with Python or Python Web Scraping, migrating into Python 3 last year.

00:06:31.780 --> 00:06:53.640
Yeah, that's really interesting. I feel like there's a lot of people coming into Python through the data science angle. And while it feels like it's pretty similar, it's not really exactly the same type of Python that you write. I feel like when I read data science code, it actually feels like I'm reading a slightly different flavor or variant of Python. Let's say if I'm reading like web code or something.

00:06:53.780 --> 00:07:03.640
Yes. When we start thinking about the popular data science libraries, they're often heavily complemented with either Cython, for example, if we're using NumPy.

00:07:04.180 --> 00:07:32.180
Or, you know, Wes, creator of Pandas, he was an R person first and then wrote Pandas. So there's some things in Pandas that are much more idiomatic of R than they are of Python. Of course, that's changing over time. But we find these interesting influences from other places. And like, for example, if you're working with Spark, or the JVM or anything that's JVM backed, then you might also see some things that look more similar to Java.

00:07:32.180 --> 00:07:43.060
So it's this weird world where there's a lot of people working on libraries, and they may not be Python first. And for that reason, it has some different quirks, if you will.

00:07:43.060 --> 00:07:44.080
Can I jump in?

00:07:44.080 --> 00:07:45.160
Yeah, please go ahead.

00:07:45.160 --> 00:07:59.860
I totally agree with what Karen just said. But I just want to add another thing, which is, for instance, in Fluent Python and most of our intermediate books, we emphasize a lot the use of iterators and generators, those kinds of structures in the language.

00:08:00.180 --> 00:08:08.860
But then, when you go to use NumPy, that's just wrong most of the time, because you want to use the vectorized operations, right?

00:08:09.240 --> 00:08:22.060
And so this is kind of a fundamental shift in thinking. And I won't remember the name of the book now, but I have a really good reference, a book by a French author, but it's Creative Commons.

00:08:22.060 --> 00:08:31.500
And it's written in English about changing your mindset from iterative code to vectorized code for NumPy. I will share with you the link later.

00:08:31.700 --> 00:08:40.240
Yeah, that'd be great. I'll put it in the show notes. Very cool. Bruce, you've written quite a few books. I've known about your books for a really long time. You want to talk about some of them that are notable?

00:08:40.240 --> 00:08:55.320
Well, probably most people know me for thinking in C++ and thinking in Java. But yes, I've written a bunch more. And then there have been a number of attempts that haven't worked out.

00:08:55.600 --> 00:09:04.780
And I seem to also do a lot of co-authoring, even though I keep saying I'm not going to do that anymore, because it can be very hard.

00:09:04.780 --> 00:09:12.280
But yeah, I started out actually in hardware in my first book, which I self-published.

00:09:13.060 --> 00:09:22.240
And sometimes think, gee, I should have just kept doing that. It was a long time ago, and self-publishing was a little more challenging at the time.

00:09:22.240 --> 00:09:23.680
You were a real rebel doing that.

00:09:23.680 --> 00:09:33.920
A little bit, yeah. It was called Computer Interfacing with Pascal and C. And then I got involved in C++, and I was on the Standards Committee for its first eight years.

00:09:33.920 --> 00:09:37.840
Although I can't tell you anything about C++ now. It's changed so much.

00:09:37.840 --> 00:09:38.860
It's really different, yeah.

00:09:38.860 --> 00:09:47.580
It is. I wrote several books on C++ and then kind of moved over to Java. And then I've, let's see, I co-authored a book on Flex.

00:09:47.580 --> 00:10:00.460
I tried co-authoring one a couple of times on C#. And then Atomic Scala. And now I'm working on Atomic Kotlin.

00:10:00.460 --> 00:10:11.100
And I keep trying to write a book on Python. And yeah, I mean, like people ask, well, are you ever going to write a book like Thinking in Java for Python?

00:10:11.100 --> 00:10:18.380
But I would say Luciano's book would be that book. So that's not, it makes no sense for me to try and do that.

00:10:18.380 --> 00:10:31.820
But this concurrency project is, I don't know if anybody has like looked at Julia, but that's kind of thrown me because I'm going, well, maybe the answer is not to use Python.

00:10:32.940 --> 00:10:39.640
So anyway, it's, it's, concurrency is, it's probably been my biggest struggle in my career.

00:10:39.640 --> 00:10:40.800
Okay.

00:10:40.800 --> 00:10:46.320
Yeah. So thank you. So that's, there's a lot of interesting stuff happening around Python concurrency right now.

00:10:46.320 --> 00:10:48.640
You know, the whole async and await stuff is showing up.

00:10:48.640 --> 00:10:52.440
There's a lot of web frameworks that are sort of async only or async first.

00:10:52.440 --> 00:10:56.160
I think it's a good time for covering that topic. So yeah, very cool.

00:10:56.160 --> 00:11:10.420
It is, but I'm just starting to wonder if the answer isn't to kind of step outside of, of the mainstream Python world and, and connect to Python rather than try and do it in Python. I don't know yet.

00:11:10.420 --> 00:11:16.780
I think it somewhat depends on whether it's computational or it's IO bound, like you're waiting on web services and databases.

00:11:16.780 --> 00:11:19.660
Sure. Parallel versus async. Yeah.

00:11:19.780 --> 00:11:28.000
Yes, exactly. So, but that sounds interesting to explore in a book. So I'm looking forward to checking that out when, when you finally wrangle that topic.

00:11:28.000 --> 00:11:33.480
All right. So let's dig into this concept that you touched on there a little bit about co-authoring.

00:11:33.480 --> 00:11:45.460
Co-authoring to me sounds both fun and really hard. And I guess it depends how you do it. If you write different chapters and stuff, I've certainly co-authored online courses, but no books.

00:11:45.460 --> 00:11:52.460
So who out there has, I know Bruce, you said you've done it some, anyone else done any co-authoring or considered it and why, why not?

00:11:52.460 --> 00:11:56.060
I have only co-authored books at this point in time.

00:11:56.060 --> 00:11:56.680
So.

00:11:56.680 --> 00:12:00.920
Oh, how interesting. How was your experience? So why did you go down that path?

00:12:01.020 --> 00:12:15.380
The initial book that I wrote with Jackie Kazel, she actually was writing it on her own first and then reached out to me because, yeah, the deadline, you know, she wanted to reach deadlines and two heads are better than one sometimes for that.

00:12:15.620 --> 00:12:31.020
And I think that if you're not really organized about exactly what is expected, I mean, it's the same thing as like, for example, if you were building a project with a friend on, on the side, let's say you're moonlighting or something.

00:12:31.480 --> 00:12:36.440
You're usually doing it with someone, you know, or perhaps somebody who knows somebody who you know.

00:12:36.440 --> 00:12:38.780
So there's some element of personal connection.

00:12:38.780 --> 00:12:50.720
You need to be really clear about, you know, deadlines, who's doing what, make sure it's absolutely clear and that you have some knowledge sharing in terms of who's going to cover what parts in what sequential order.

00:12:51.120 --> 00:12:56.100
And this is extremely hard to do, even with bright folks by your side.

00:12:56.100 --> 00:13:11.060
But, yeah, I would say organization and really trying to use something as if you would almost do an issue tracker to really say, OK, are you going to be doing the introduction to generators here or should I do it in a later chapter and so forth?

00:13:11.060 --> 00:13:15.300
Yeah, I use an organic process, which is much harder.

00:13:15.800 --> 00:13:28.160
I guess it's not harder if it's working, but I mean, it's interesting because I see this division between when people talk about book authoring and there's the OK, you have to have a lot of structure.

00:13:28.160 --> 00:13:34.260
Some people say you have to write from X hours to X hours every single day.

00:13:34.260 --> 00:13:40.780
And then I guess for me, I look at that and I go, I understand that that works for some people.

00:13:40.780 --> 00:13:44.560
But for me, I need to be inspired to write.

00:13:44.980 --> 00:13:46.980
And so I don't write when I'm not inspired.

00:13:46.980 --> 00:13:52.960
And if I'm working with somebody, I can't manage them.

00:13:52.960 --> 00:13:57.480
I can't like say you have to do this or that.

00:13:57.480 --> 00:14:07.300
But I will say one of the things after doing this a while and then I asked Gerald Weinberg about it and he's written and co-authored most of his books.

00:14:07.560 --> 00:14:11.860
And he had several guidelines for co-authoring.

00:14:11.860 --> 00:14:16.540
And the first one was everybody works on every chapter.

00:14:16.540 --> 00:14:22.960
The second, I think, was you never sign a contract until the book is done.

00:14:23.540 --> 00:14:28.800
And the third thing, and there might have been a fourth one that I can't remember right now.

00:14:28.800 --> 00:14:34.300
But the third thing is if the book fails, you walk away from it.

00:14:34.300 --> 00:14:36.920
Nobody owns anything about it.

00:14:37.600 --> 00:14:41.380
And I've never been able to successfully do that.

00:14:41.380 --> 00:14:47.700
But I feel like that is a way to keep you out of trouble.

00:14:47.700 --> 00:14:52.900
Because the times that I've gotten into trouble is when, for example, you do a contract first.

00:14:52.900 --> 00:15:00.060
And then the other person might or might not feel like, well, you know, it's almost like working in a lab.

00:15:00.300 --> 00:15:07.920
When one of the lab partners punts and then you go, well, we're committed, so I have to take over.

00:15:07.920 --> 00:15:09.300
That's all I wanted to say.

00:15:09.300 --> 00:15:10.180
I'm kind of like you.

00:15:10.180 --> 00:15:14.140
I know some authors, they have really strict guidelines.

00:15:14.140 --> 00:15:22.940
I'm going to sit down and work from 8 a.m. to noon every day and just do that until I'm done.

00:15:23.680 --> 00:15:32.120
I'm one of these people who, if I get inspired, I can be like five times more efficient and effective in producing stuff than if I'm not.

00:15:32.120 --> 00:15:34.760
I just kind of stare at the screen and get distracted and whatnot.

00:15:34.760 --> 00:15:39.580
I don't know if I'm particularly productive or just particularly unproductive other times.

00:15:39.580 --> 00:15:42.820
But capturing that inspiration is really important to me.

00:15:42.820 --> 00:15:45.840
And I can see how it's a tough balance with a co-author.

00:15:45.840 --> 00:15:54.220
Well, the one thing I wanted to point out was that I often see the people who say, oh, you have to do, you know, you have to work from 8 until noon every day.

00:15:54.220 --> 00:15:57.020
They're the ones who talk about it.

00:15:57.020 --> 00:16:01.840
But the people who go, well, I have this organic process, they tend not to talk about it.

00:16:01.840 --> 00:16:06.900
So people who are wanting to write books think that the first way is the only way to do it.

00:16:06.900 --> 00:16:07.360
Right, right.

00:16:07.360 --> 00:16:08.420
Makes sense.

00:16:08.420 --> 00:16:12.180
Brian, did you consider trying to co-author yours?

00:16:12.180 --> 00:16:14.420
How long did your book take you to write?

00:16:14.420 --> 00:16:16.940
Like about twice as long as I thought it would take.

00:16:16.940 --> 00:16:21.880
But no, I worked on it for probably almost a year.

00:16:21.880 --> 00:16:31.160
But with my lifestyle and a busy work schedule, I guess like everybody else, I don't think I could have co-authored with somebody because I think they would have been frustrated.

00:16:31.160 --> 00:16:37.560
However, that being said, I did work with a development editor that was, she was reviewing it.

00:16:37.560 --> 00:16:41.560
We talked about the book content on a regular basis.

00:16:41.560 --> 00:16:48.100
And she isn't a co-author, but may as well have been very much appreciated input.

00:16:48.100 --> 00:16:51.940
And then also, you know, getting feedback from other people.

00:16:51.940 --> 00:16:59.040
I did get some ideas from some of the core pytest people of things to add that I had forgotten.

00:16:59.420 --> 00:17:06.160
So even though I didn't co-author at all or consider it, I did pull an input from lots of places.

00:17:06.160 --> 00:17:06.860
Yeah, that's great.

00:17:08.380 --> 00:17:11.300
This portion of Talk Python To Me is brought to you by Linode.

00:17:11.300 --> 00:17:15.220
Are you looking for bulletproof hosting that's fast, simple, and incredibly affordable?

00:17:15.220 --> 00:17:20.160
Look past that bookstore and check out Linode at talkpython.fm/Linode.

00:17:20.160 --> 00:17:22.080
That's L-I-N-O-D-E.

00:17:22.080 --> 00:17:26.560
Plans start at just $5 a month for a dedicated server with a gig of RAM.

00:17:26.840 --> 00:17:29.080
They have 10 data centers across the globe.

00:17:29.080 --> 00:17:31.600
So no matter where you are, there's a data center near you.

00:17:31.600 --> 00:17:36.820
Whether you want to run your Python web app, host a private Git server, or file server,

00:17:36.820 --> 00:17:43.920
you'll get native SSDs on all the machines, a newly upgraded 200 gigabit network, 24-7 friendly

00:17:43.920 --> 00:17:46.920
support, even on holidays, and a seven-day money-back guarantee.

00:17:46.920 --> 00:17:49.280
Do you need a little help with your infrastructure?

00:17:49.280 --> 00:17:55.000
They even offer professional services to help you get started with architecture, migrations,

00:17:55.000 --> 00:17:55.500
and more.

00:17:56.060 --> 00:17:58.600
Get a dedicated server for free for the next four months.

00:17:58.600 --> 00:18:01.440
Just visit talkpython.fm/Linode.

00:18:01.440 --> 00:18:03.320
Dan, how about you?

00:18:03.320 --> 00:18:05.220
So I didn't work with a co-author.

00:18:05.220 --> 00:18:11.920
I think just in terms of how I like to work, I just preferred doing this on my own also because

00:18:11.920 --> 00:18:14.440
I really wanted to know if I had it in me.

00:18:14.440 --> 00:18:17.880
Could I actually finish this project and then publish that?

00:18:17.880 --> 00:18:24.500
I think I might reconsider that for future book projects, but pretty much like everyone else

00:18:24.500 --> 00:18:27.000
mentioned there's some downsides around that.

00:18:27.000 --> 00:18:31.220
If you're in any kind of partnership, then as always, it can be really awesome, but it can

00:18:31.220 --> 00:18:35.560
also be like your downfall where maybe one person is less committed than the other one,

00:18:35.560 --> 00:18:39.540
and then it becomes tricky to actually ship the final product.

00:18:39.540 --> 00:18:45.480
So yeah, didn't do it for my book, but I was very happy that I got Marietta Waiya's input

00:18:45.480 --> 00:18:49.600
on the book and also she wrote the foreword for the book.

00:18:49.600 --> 00:18:51.360
So that was great support for me.

00:18:51.360 --> 00:18:52.080
Yeah, that's nice.

00:18:52.200 --> 00:18:53.740
Luciano, have you co-authored any books?

00:18:53.740 --> 00:18:54.480
No, I haven't.

00:18:54.480 --> 00:18:59.880
But I liked that Dan just mentioned the fact that he wanted to write the book on his own

00:18:59.880 --> 00:19:04.560
to see if he was capable of doing that because for me, that was totally the point as well.

00:19:04.560 --> 00:19:11.540
Actually, I started actually three other books in the last 20 years that I never finished,

00:19:11.540 --> 00:19:14.620
and Fluid Pattern was the only one that I managed to finish.

00:19:14.860 --> 00:19:18.760
I never had a co-author in the other projects either, so I didn't let anyone down.

00:19:18.760 --> 00:19:26.620
But in this case, I had a contract with O'Reilly, which is a publisher that I really admire,

00:19:26.620 --> 00:19:29.120
and I was self-employed at the time.

00:19:29.120 --> 00:19:35.300
So I decided to, you know, just that in this case, failure was not going to be an option.

00:19:35.300 --> 00:19:41.100
And I did it, I wrote about part-time for about nine months.

00:19:41.420 --> 00:19:46.540
And then my editor at O'Reilly, Megan Blanchett, who is just completely awesome,

00:19:46.540 --> 00:19:49.840
and she's now working for Pragmatic Programmers.

00:19:49.840 --> 00:19:53.400
I really recommend, if you want to work with a publisher,

00:19:53.400 --> 00:19:58.440
one of the greatest benefits is having a great editor, and she is one great editor.

00:19:58.440 --> 00:20:03.180
Anyway, Megan started talking to me that, you know,

00:20:03.180 --> 00:20:07.040
it was likely that I wasn't going to make the deadline and so on.

00:20:07.040 --> 00:20:09.980
The rhythm wasn't as fast as she expected.

00:20:10.300 --> 00:20:13.460
And then I just had a serious conversation with my wife and said,

00:20:13.460 --> 00:20:17.480
you know what, I need to write this book and I'm not going to do anything else.

00:20:17.480 --> 00:20:24.000
So I just quit my other part-time work and worked full-time on the book for the next nine months.

00:20:24.000 --> 00:20:26.460
So in about a year and a half, I finished it.

00:20:26.460 --> 00:20:28.260
And I'm really glad I did it.

00:20:28.260 --> 00:20:34.620
But I know, I feel very privileged that I was able to stop everything for nine months to work on the book.

00:20:34.620 --> 00:20:40.680
Yeah, I was going to say, that's a real commitment to taking that much time effectively off work.

00:20:40.680 --> 00:20:46.120
I mean, obviously you're working, but you don't get paid very much as you complete chapters, right?

00:20:46.120 --> 00:20:49.620
It's not until the book is done that you actually, you see the benefit.

00:20:49.860 --> 00:20:51.140
I ate into my savings.

00:20:51.140 --> 00:20:52.340
I can tether that.

00:20:52.340 --> 00:20:52.960
Yeah.

00:20:52.960 --> 00:20:53.460
Yeah.

00:20:53.460 --> 00:20:54.420
That's pretty intense.

00:20:54.420 --> 00:20:55.660
And this is a big bet, right?

00:20:55.660 --> 00:20:57.480
Every one of you has written the book.

00:20:57.480 --> 00:20:58.720
You know, you said nine months.

00:20:58.720 --> 00:21:00.380
Brian said a year.

00:21:00.540 --> 00:21:02.660
Like, that is a big project.

00:21:02.660 --> 00:21:06.360
And you don't really get that much feedback until you ship it.

00:21:06.360 --> 00:21:08.300
Catherine, you want to speak to that?

00:21:08.300 --> 00:21:10.840
Like, how did you think about that and handle it?

00:21:10.840 --> 00:21:19.780
For me, you know, both of the times that I was co-authoring a book, I was also consulting and usually working on projects.

00:21:20.100 --> 00:21:24.600
So books were kind of like a mornings, nights, weekends.

00:21:24.600 --> 00:21:29.940
I have a very compassionate partner who would refill my coffee.

00:21:29.940 --> 00:21:36.800
And yeah, it was definitely something that was more of like a passion time.

00:21:36.800 --> 00:21:46.620
I mean, it hasn't been said here yet, but like, don't expect, even if your book is popular, to make any decent amount of living wage off of a book.

00:21:46.980 --> 00:22:06.360
So this really needs to be not something that you see necessarily as a job that will make you money to feed yourself and so forth, but more as something that you do because you enjoy the other things that you might get from a book writing or you enjoy contributing back to the overall knowledge of the community and so forth.

00:22:06.360 --> 00:22:19.920
I pretty much time boxed my writing in a sense of saying, if this particular chapter took longer than one weekend, then just turn it in as it was and work with my editor.

00:22:19.920 --> 00:22:25.540
And for me, this worked well in terms of not having it take over my entire life.

00:22:26.360 --> 00:22:29.280
Yeah, I'm sure that helps manage the stress of it as well.

00:22:29.280 --> 00:22:34.940
Let's touch on this sort of benefits revenue thing for a little bit.

00:22:34.940 --> 00:22:46.040
And one of the first areas I wanted to ask you all about is self-publishing versus working with a traditional publisher, O'Reilly, Pragmatic, whoever.

00:22:47.500 --> 00:23:01.080
So just to kind of put this in perspective for the listeners who maybe haven't thought a whole lot about it, there's a book that I read quite a while ago from the guys who created Ruby actually, Ruby on Rails rather, called Getting Real from 37 Signals.

00:23:01.300 --> 00:23:08.180
And I think you can get it for free now, but at the time you could read it on the web or you could buy a digital version and they self-published it.

00:23:08.180 --> 00:23:14.620
And then they wrote some kind of retrospective blog post a year or two later and said, we did really well with this book.

00:23:14.620 --> 00:23:21.780
We made a half a million dollars off of this book that we wrote and put online and sold the PDF and Mubi and stuff for.

00:23:21.780 --> 00:23:27.040
But if we'd worked with a traditional publisher, we would have gotten like 10%, $50,000.

00:23:27.360 --> 00:23:31.020
And the difference between half a million and $50,000 seems to me really, really significant.

00:23:31.020 --> 00:23:48.100
But all the benefits of you, you are all talking about of, say, having an editor, having the support, this whole success story that they had was predicated upon them having a very large following on their blog and around their sort of company or anyway.

00:23:48.100 --> 00:23:53.580
So I know some of you have self-published and some of you have gone through the traditional route.

00:23:53.580 --> 00:23:56.640
Maybe, Brian, do you want to take that first?

00:23:57.180 --> 00:23:58.440
Did you think about self-publishing?

00:23:58.440 --> 00:23:59.760
What are your thoughts on that?

00:23:59.760 --> 00:24:11.620
I wanted to write a book in the first place because I had an e-book that I self-published that was essentially a collection of blog posts and tutorials that I just put together.

00:24:11.620 --> 00:24:12.640
Yeah, I remember that.

00:24:12.640 --> 00:24:14.740
It sold for like five bucks a piece.

00:24:14.740 --> 00:24:21.220
And since a lot of people were buying it, they could get the content for free anyway.

00:24:21.600 --> 00:24:26.000
That's what made me want to pursue working with a publisher.

00:24:26.000 --> 00:24:31.140
But I had heard all of these stories about people not making very much.

00:24:31.140 --> 00:24:43.140
And so I did hold, after talking with a few different publishers, settled with Pragmatic because I think they're extremely fair with their revenue split.

00:24:43.340 --> 00:24:48.400
So the, it still isn't something, I mean, it's only been out since September.

00:24:48.400 --> 00:24:54.580
It's not something I'm getting rich off of, but I don't worry about whether or not I can afford Starbucks anymore.

00:24:54.800 --> 00:24:58.220
I guess that's the perspective I have on that.

00:24:58.220 --> 00:25:00.740
But the, I would definitely go again.

00:25:00.740 --> 00:25:01.760
I'd probably do both.

00:25:01.760 --> 00:25:06.580
I'm looking forward to do both self-publishing and working with a publisher.

00:25:06.580 --> 00:25:16.860
The benefit of working with a development editor, I think, is enough to offset some of the differences in revenue that you get, by our perspective.

00:25:16.860 --> 00:25:22.600
Yeah, and it also depends on how big your audience is that you can connect with to get the book, right?

00:25:22.600 --> 00:25:27.260
Like if, Stephen King could probably really easily self-publish a book and be fine.

00:25:27.260 --> 00:25:32.900
But if you've never written a book and you don't run a bunch of podcasts or something like this, it can be a challenge, right?

00:25:32.900 --> 00:25:40.600
Yeah, and then also to put in perspective the 37 Signals book, I mean, they had a huge following when they were publishing that.

00:25:40.600 --> 00:25:43.620
Signals versus noise was very large.

00:25:43.620 --> 00:25:44.660
And so.

00:25:44.660 --> 00:25:45.440
Yep, yep.

00:25:45.440 --> 00:25:48.260
I've had a lot of experience with this.

00:25:48.260 --> 00:25:53.540
And, I mean, first of all, it's important to understand how the publishing industry works.

00:25:54.040 --> 00:26:03.000
And there's about 10% of the books published kind of break even or make some profit.

00:26:03.000 --> 00:26:07.680
And about 1% of the books published are actual successes.

00:26:08.080 --> 00:26:17.980
So when you get involved with that, if you have a book that's a success, it's got to pay for the 90% of failures.

00:26:17.980 --> 00:26:27.880
So, and the publishing industry looks at these numbers and they tend to say, well, to get our numbers up, we just have to publish more books.

00:26:27.880 --> 00:26:32.660
They don't consider, should we try and make better books?

00:26:32.660 --> 00:26:37.920
And there are, of course, special cases and things like that where that's not the case.

00:26:37.920 --> 00:26:40.720
But in general, that's kind of how their numbers work.

00:26:40.720 --> 00:26:46.920
And so the other thing that you have to look at is, you know, what kind of commitment are they going to have?

00:26:46.920 --> 00:26:51.920
For the longest time, I wouldn't take, I wouldn't worry about the advance.

00:26:52.180 --> 00:27:03.100
And then, you know, after talking to people, I realized, actually, you want to push for the largest advance you can get because you want to put the publisher in financial jeopardy.

00:27:03.100 --> 00:27:08.520
Because that's what's going to stimulate them to go out and promote your book.

00:27:08.520 --> 00:27:13.220
And some publishers will try and promote a book for a few months.

00:27:13.220 --> 00:27:18.900
And then if it doesn't, you know, go gold, then they sort of drop it and they stop.

00:27:19.340 --> 00:27:22.100
There's all these pitfalls that you can get into.

00:27:22.100 --> 00:27:31.760
And you don't have control of your book anymore once you sign that contract unless you rewrite the contract, which they'll tell you that we know we don't do.

00:27:31.760 --> 00:27:33.300
But you can.

00:27:33.300 --> 00:27:36.520
You can always line through the contract and everything.

00:27:37.460 --> 00:27:45.640
So if you self-publish, you are then responsible for, as people have been saying, promoting your own books.

00:27:45.640 --> 00:27:48.540
And sometimes it works and sometimes it doesn't.

00:27:48.540 --> 00:27:57.700
But even when it doesn't work, you'll often get maybe more money than you would have just by taking in advance.

00:27:57.700 --> 00:27:58.080
Right.

00:27:58.120 --> 00:28:04.200
It's got to be basically like 10 times less good to do your self-publishing or something on that scale, right?

00:28:04.200 --> 00:28:05.800
Something on that scale.

00:28:05.800 --> 00:28:08.520
There's also the satisfaction of doing it yourself.

00:28:08.520 --> 00:28:16.560
And I'll point out one more thing, which is that now if you start talking to a publisher, even one that you've published with before,

00:28:16.720 --> 00:28:23.360
the first thing they'll do is send you this form that's asking you, how are you going to promote your book?

00:28:23.360 --> 00:28:24.360
Do you have a blog?

00:28:24.360 --> 00:28:25.640
Do you have a podcast?

00:28:25.640 --> 00:28:26.420
Do you have all these things?

00:28:26.420 --> 00:28:33.060
And when you look at that and you go, well, why am I working with you if I'm going to be promoting my book?

00:28:33.060 --> 00:28:35.320
You know, what are you bringing to the table?

00:28:35.620 --> 00:28:43.500
And these days, if they can't promote it, then you can pretty much do all the rest of the stuff yourself.

00:28:43.500 --> 00:28:52.260
And so unless they're wonderful promoters, you should really think seriously about what are you getting from the publisher.

00:28:52.260 --> 00:28:53.580
Yeah, that's really great advice.

00:28:53.580 --> 00:28:56.080
Luciano, yours was through O'Reilly.

00:28:56.080 --> 00:28:57.660
You said that's your only book.

00:28:57.660 --> 00:29:00.040
Did you consider self-publishing or would you in the future?

00:29:00.040 --> 00:29:01.340
Oh, yeah, I would.

00:29:01.420 --> 00:29:10.380
But really, for me, it's pretty clear that it was since I don't have a big following and I'm not really good at marketing,

00:29:10.380 --> 00:29:15.300
it was important for me to author a book with a well-regarded publisher.

00:29:15.300 --> 00:29:17.440
And I also learned a lot from them.

00:29:17.440 --> 00:29:21.720
So I don't regret at all the fact that I worked with O'Reilly.

00:29:21.720 --> 00:29:26.080
On the contrary, I think I was very lucky to be able to work with them.

00:29:26.080 --> 00:29:33.940
But in the future, yes, I totally consider self-publishing or a different publisher or whatever, but mostly self-publishing.

00:29:33.940 --> 00:29:35.600
Yeah, your book was really popular.

00:29:35.600 --> 00:29:38.480
So I definitely think it put you on the map after that.

00:29:38.480 --> 00:29:39.400
So that's really cool.

00:29:39.400 --> 00:29:42.420
Catherine, yours was through a traditional publisher, right?

00:29:42.420 --> 00:29:43.160
Yeah.

00:29:43.160 --> 00:29:46.680
So I have a book with O'Reilly and a book with Pact.

00:29:47.480 --> 00:29:51.640
And, yeah, have been approached from some other folks as well.

00:29:51.640 --> 00:29:59.300
But knowing how much time and energy goes into a book, I'm actually really curious to hear from some of the others that have self-published.

00:29:59.300 --> 00:30:05.320
How did you go about through the editing process and what platforms did you use?

00:30:05.320 --> 00:30:10.820
Did you determine pricing beforehand or was this something you figured out after?

00:30:10.820 --> 00:30:12.880
This is something I'm very curious about.

00:30:12.880 --> 00:30:13.680
Go ahead, Luciana.

00:30:13.880 --> 00:30:17.580
No, just to add, I really like the questions that she was asking.

00:30:17.580 --> 00:30:26.440
But just to add, like, for instance, tech reviewers, that was something that was awesome that already – well, I could have gone after people to do that.

00:30:26.440 --> 00:30:28.820
But anyway, tech reviewers.

00:30:28.820 --> 00:30:29.280
Yeah.

00:30:29.280 --> 00:30:34.320
Dan, I'm saving you for last in this round because I know that you did self-publish yours, right?

00:30:34.320 --> 00:30:38.140
Yeah, I went 100% with the self-published route.

00:30:38.140 --> 00:30:39.340
What was that experience like?

00:30:39.340 --> 00:30:41.540
Maybe speak to some of Catherine's questions.

00:30:41.660 --> 00:30:43.900
I mean, for me, I think it worked out really well.

00:30:43.900 --> 00:30:48.960
But I can totally see, you know, there's just different tradeoffs involved, right?

00:30:48.960 --> 00:30:52.740
So where I was starting from – well, one reason was completely personal.

00:30:52.740 --> 00:31:01.700
Where I – the reason I went, you know, into self-employment was because I wanted to have 100% control over the projects that I work on and sort of, you know, who I work with.

00:31:01.860 --> 00:31:04.620
I just wanted to have that control over my life.

00:31:04.620 --> 00:31:12.900
And so I wasn't going to hand it off, you know, to a publisher and just be like, okay, you know, now I have all these deadlines and all this stuff in my life that I really enjoyed not having.

00:31:12.900 --> 00:31:14.960
So that was one personal reason.

00:31:15.100 --> 00:31:29.260
And then the other one was, I think, Bruce, you mentioned that with how publishers today, especially for a first-time author, they're not really going to go out there and, like, put on a big, like, roadshow and promote your book and, you know, pay for ads and whatnot.

00:31:29.480 --> 00:31:31.520
It's pretty much like you're on your own anyway.

00:31:31.520 --> 00:31:37.420
You just get a chance to kind of maybe have some of the prestige of that publisher color off on your book.

00:31:37.420 --> 00:31:39.320
And so I looked at my situation.

00:31:39.320 --> 00:31:41.800
I was like, okay, well, I have this programming blog.

00:31:41.800 --> 00:31:42.860
I have this Twitter following.

00:31:42.860 --> 00:31:46.640
And I have a bit of an audience that I can work with here, right?

00:31:46.640 --> 00:31:49.220
And so I decided to go the self-publishing route.

00:31:49.220 --> 00:31:51.600
And I think it worked out pretty well.

00:31:51.600 --> 00:31:54.700
I mean, I'm still working on that first half million or whatever.

00:31:54.700 --> 00:31:58.960
But, you know, in the end, it was worthwhile doing it that way for sure.

00:31:59.240 --> 00:31:59.620
Yeah, that's cool.

00:31:59.620 --> 00:32:03.280
Maybe tell us what some of the tools you used and things like that.

00:32:03.280 --> 00:32:06.460
Oh, yeah, in terms of just making it happen from a technical perspective.

00:32:06.460 --> 00:32:07.000
Yeah, yeah.

00:32:07.000 --> 00:32:08.420
Like, how did you actually build it?

00:32:08.420 --> 00:32:18.520
I think I'll ask software developers, for anyone who's listening, I think you're in a uniquely great situation right now for self-publishing your book.

00:32:18.520 --> 00:32:21.420
Because, I mean, all of the tools are out there.

00:32:21.420 --> 00:32:22.600
A lot of them are open source.

00:32:22.600 --> 00:32:29.060
And you can just, you know, compile all of the e-book formats that you're going to need or a print-ready PDF that you can hand off to,

00:32:29.060 --> 00:32:31.180
an on-demand printer like CreateSpace.

00:32:31.180 --> 00:32:33.820
And you can all find all of that stuff online.

00:32:33.820 --> 00:32:35.220
It's not super easy to use.

00:32:35.220 --> 00:32:39.580
But, you know, if you can work with Python or C compiler, you can definitely make that work.

00:32:39.580 --> 00:32:41.260
And so that's what I did.

00:32:41.360 --> 00:32:47.120
So I pretty much had, like, a full, like, build pipeline for my Python tricks book.

00:32:47.120 --> 00:32:48.320
So I used a tool.

00:32:48.320 --> 00:32:57.600
Well, first of all, I wrote everything in Markdown, which, for those of you who don't know, it's like a plain text format that typically compiles to HTML.

00:32:57.600 --> 00:33:03.400
And it's just a little bit nicer, you know, for you to insert bold text and headlines and stuff like that.

00:33:03.400 --> 00:33:05.740
But there's a really great tool called Pandoc.

00:33:06.220 --> 00:33:09.980
And it's a document compiler or conversion tool.

00:33:09.980 --> 00:33:14.680
So you can feed all kinds of formats into it, including Markdown, which is what I did.

00:33:14.680 --> 00:33:18.380
And then on the other hand, you can output HTML.

00:33:18.380 --> 00:33:22.080
You can output LaTeX and then compile that to a PDF.

00:33:22.460 --> 00:33:30.180
So that was, like, a central tool that I used where I could feed in my source files and then have all the different output formats that I needed generated.

00:33:30.180 --> 00:33:35.500
And I could adjust sort of the typography and, you know, page sizes and all of that.

00:33:35.500 --> 00:33:41.620
And the great thing is because, well, you're just feeding in, like, a bunch of plain text files into this tool.

00:33:41.620 --> 00:33:48.740
And then what comes out in this sort of LaTeX intermediate stuff or code, it's all plain text, right?

00:33:48.740 --> 00:34:01.620
So you can really understand how this all works and you can use other tools like, for example, a C preprocessor to actually have little macros and stuff in your input text that I can now use.

00:34:01.620 --> 00:34:05.540
And I can generate, you know, five different versions of the book with one little build script.

00:34:05.540 --> 00:34:08.460
So I just hit return and it will generate the Kindle file.

00:34:08.460 --> 00:34:11.960
It will generate the print file for Amazon CreateSpace.

00:34:11.960 --> 00:34:15.220
It will generate the e-book file and all these different formats.

00:34:15.720 --> 00:34:20.860
And once you've got that set up, like, hopefully I'm going to be able to carry that over for my next book project.

00:34:20.860 --> 00:34:22.280
Wow, that sounds really, really cool.

00:34:22.280 --> 00:34:25.480
Could you also maybe tell people, like, how you sold it?

00:34:25.480 --> 00:34:26.880
I know some people use Gumroad.

00:34:26.880 --> 00:34:28.740
You can self-publish on Amazon.

00:34:28.740 --> 00:34:34.520
You could just put a PDF in a Stripe checkout JavaScript thing on your website.

00:34:34.520 --> 00:34:37.300
Like, how did you actually get it out to the world?

00:34:37.300 --> 00:34:40.360
Yeah, so for the first version, I actually used Gumroad.

00:34:40.360 --> 00:34:46.320
And I just set up a page on my site that had a Gumroad button.

00:34:46.320 --> 00:34:51.860
You can embed it and people can enter their credit card information and buy your book and download it right away.

00:34:51.860 --> 00:34:55.140
And that worked okay.

00:34:55.140 --> 00:34:58.060
And initially, I released it at, you know, a really low price.

00:34:58.200 --> 00:35:04.120
I think the first iteration of the book, it was, I don't know, it had maybe like 20 or 30 pages.

00:35:04.120 --> 00:35:10.440
And I think I started selling it at $3.99 or $4.99 or something.

00:35:10.440 --> 00:35:13.360
A relatively low price for a book like that.

00:35:13.360 --> 00:35:18.460
And then just over time, as it grew, I got more serious about the delivery mechanism.

00:35:18.460 --> 00:35:18.540
Awesome.

00:35:18.540 --> 00:35:20.560
And now it's actually on Amazon.

00:35:20.560 --> 00:35:23.000
And it's published on Amazon Kindle.

00:35:23.000 --> 00:35:28.820
And it's available as print copies through the Amazon CreateSpace on-demand printing thing.

00:35:28.820 --> 00:35:32.480
And then I'm also using a company called BookBaby.

00:35:32.480 --> 00:35:34.680
And they're like an e-book publisher.

00:35:34.680 --> 00:35:37.660
But they're not really like a publisher in a traditional sense.

00:35:37.660 --> 00:35:38.640
But you just send them a file.

00:35:38.900 --> 00:35:42.180
And they will make sure it gets on all the different e-book stores that are out there.

00:35:42.180 --> 00:35:46.200
Like the iBook store for iPhones and iPads.

00:35:46.200 --> 00:35:48.720
And also Amazon and Barnes & Noble.

00:35:48.720 --> 00:35:51.800
And they're kind of like a multiplexer for that.

00:35:51.800 --> 00:35:53.840
You know, you sent them one file and paid them $300.

00:35:53.840 --> 00:35:55.400
And they put it everywhere.

00:35:55.400 --> 00:35:57.540
So curious to see how that will play out.

00:35:57.540 --> 00:35:58.280
That's really interesting.

00:35:58.280 --> 00:36:03.260
And one other thing is, you know, Bruce really made a great point about you go to the publisher.

00:36:03.260 --> 00:36:05.380
And they're like, how are you going to promote your book?

00:36:05.380 --> 00:36:05.820
Right?

00:36:05.820 --> 00:36:07.900
Like, I'm sure people are thinking, wait a minute.

00:36:07.980 --> 00:36:09.320
That's why I'm here talking to you.

00:36:09.320 --> 00:36:11.220
Because you have the audience and the reach.

00:36:11.220 --> 00:36:15.420
But you managed to get your book, like, number one in Python on Amazon.

00:36:15.420 --> 00:36:17.660
Even though you had no publisher, right?

00:36:17.660 --> 00:36:18.740
Yeah, that was pretty crazy.

00:36:18.740 --> 00:36:22.020
And it made the whole thing, like, very real all of a sudden.

00:36:22.020 --> 00:36:23.400
So, yeah, that was great.

00:36:23.400 --> 00:36:24.220
Yeah, yeah, absolutely.

00:36:24.220 --> 00:36:26.420
The reason, you know, you can...

00:36:26.420 --> 00:36:30.280
Like, I was able to do that because I had worked on building that following.

00:36:30.280 --> 00:36:32.900
And building, like, I started a Python newsletter.

00:36:32.900 --> 00:36:37.960
And started just sharing articles and sharing tips and stuff on my blog.

00:36:37.960 --> 00:36:39.720
And on my Twitter.

00:36:39.720 --> 00:36:46.660
And that gained enough momentum that I was able to say, look, like, I'm going to be launching this book now.

00:36:46.660 --> 00:36:49.300
You can get it on Amazon and kind of have this...

00:36:49.300 --> 00:36:52.580
Yeah, just have this big launch and send...

00:36:52.580 --> 00:36:55.680
You know, make a couple of, like, thousand sales on the first day.

00:36:55.680 --> 00:36:56.700
And that really bumped it up.

00:36:56.700 --> 00:36:58.320
And then you can kind of ride out that wave.

00:36:59.020 --> 00:37:00.180
But obviously, that's...

00:37:00.180 --> 00:37:03.820
You know, you can only do that if you worked on building up that audience first.

00:37:03.820 --> 00:37:05.200
And I can totally understand that.

00:37:05.200 --> 00:37:06.680
You know, that takes a lot of time.

00:37:06.680 --> 00:37:10.020
Like, that actually probably took a lot more time than writing the book itself.

00:37:10.020 --> 00:37:12.560
And so, I think that's...

00:37:12.560 --> 00:37:15.880
You know, it's not like a magic bullet where you can just go like, oh, you tweeted a bunch of times.

00:37:15.880 --> 00:37:17.800
And then it'll do really well.

00:37:17.800 --> 00:37:18.700
It'll be fine.

00:37:18.700 --> 00:37:20.460
It's just a whole nother project that you'd be working on.

00:37:20.460 --> 00:37:20.680
Yeah.

00:37:20.680 --> 00:37:21.300
Tweet a lot.

00:37:21.380 --> 00:37:21.560
Yeah.

00:37:21.560 --> 00:37:29.760
So, another topic that I wanted to touch on with you all is there's probably a lot of people out there who would like to write a book.

00:37:29.760 --> 00:37:37.980
They'd like to put something that they're really passionate and expert about out there in some sort of written form.

00:37:37.980 --> 00:37:41.040
But maybe they've never considered themselves a good writer.

00:37:41.040 --> 00:37:45.500
Like, they got a B in literature and they didn't really enjoy essays and things like that.

00:37:45.500 --> 00:37:47.440
So, like, maybe we'll start with you, Brian.

00:37:47.520 --> 00:37:53.900
Like, what would you give people advice for, like, improving their technical writing or, you know, sort of getting started like that?

00:37:53.900 --> 00:37:54.560
Blog.

00:37:54.560 --> 00:37:55.540
Start blogging.

00:37:55.540 --> 00:37:56.840
Just write.

00:37:56.840 --> 00:37:59.740
I mean, the best way to get better at something is to practice.

00:37:59.740 --> 00:38:01.040
So, do it.

00:38:01.040 --> 00:38:02.880
I was...

00:38:02.880 --> 00:38:08.500
I've been blogging for maybe five years or more before I started writing.

00:38:08.500 --> 00:38:10.980
And I don't do it very consistently.

00:38:10.980 --> 00:38:15.400
And I definitely don't do it very much now because, like, you know, two podcasts and all.

00:38:15.400 --> 00:38:16.680
But the...

00:38:16.680 --> 00:38:17.460
You audio blog.

00:38:17.460 --> 00:38:18.280
Well, yeah.

00:38:18.280 --> 00:38:22.580
And I started podcasting because I thought it would be easier than writing blog posts.

00:38:22.580 --> 00:38:24.300
And, yeah, that's a mistake.

00:38:24.300 --> 00:38:31.620
That's my advice is just do it and get feedback and be humble about the feedback and listen to it.

00:38:31.620 --> 00:38:37.000
You know, I mentioned that in the entrance of the introduction to the book of Luciano.

00:38:37.000 --> 00:38:42.880
He was one of the reviewers of my book and was very honest about the direction it was going.

00:38:42.880 --> 00:38:45.140
And I took it to heart and it made it better.

00:38:45.140 --> 00:38:46.240
So, listen to feedback.

00:38:46.240 --> 00:38:46.540
Yeah.

00:38:46.540 --> 00:38:47.320
It sounds really good.

00:38:47.320 --> 00:38:47.840
Luciano?

00:38:47.840 --> 00:38:48.280
Yeah.

00:38:48.280 --> 00:38:49.360
Blogging, totally.

00:38:49.360 --> 00:38:51.100
I just recently...

00:38:51.100 --> 00:38:53.280
I never have been very disciplined with blogs.

00:38:53.280 --> 00:39:01.500
So, recently, I just launched a wiki based on DocuWiki, the PHP wiki engine, which is really nice because it's simple.

00:39:01.500 --> 00:39:04.100
And it's called Stand Up Dev.

00:39:04.380 --> 00:39:05.680
I'm writing slowly there.

00:39:05.680 --> 00:39:17.400
One of the advantages for me of having a wiki instead of a blog is that I like to be able to link across and also not having this time-based scheme of publishing.

00:39:17.500 --> 00:39:22.560
But I wanted to say one thing that I actually tweeted some time ago.

00:39:22.560 --> 00:39:31.160
David M. Geary is the author of some famous Java graphics books and, more recently, an HTML5 canvas book.

00:39:31.160 --> 00:39:37.540
And he wrote, I think, in one of his prefaces, a recipe for writing a programming book.

00:39:37.540 --> 00:39:41.140
It also applies to blog, but it's really good.

00:39:41.140 --> 00:39:46.360
The recipe is, code is an interesting example illustrating an idea.

00:39:46.940 --> 00:39:48.480
And I think this is the key, right?

00:39:48.480 --> 00:39:51.960
I call this the example-driven approach of writing.

00:39:51.960 --> 00:39:55.520
So, you think of an interesting example that demonstrates an idea.

00:39:55.520 --> 00:39:57.120
Then you explain it.

00:39:57.120 --> 00:40:00.200
So, the text flows from the example.

00:40:00.200 --> 00:40:02.840
The text is there to explain the example.

00:40:02.840 --> 00:40:06.720
And the example is there, of course, to convey some ideas, some concepts.

00:40:06.720 --> 00:40:08.560
And then you just repeat.

00:40:08.560 --> 00:40:11.320
And I took this idea to heart.

00:40:11.320 --> 00:40:16.600
And I think one of the things that I'm proud of in Flint Python is I think it has interesting examples.

00:40:17.060 --> 00:40:18.060
Short but interesting.

00:40:18.060 --> 00:40:22.040
I don't like books that have a lot of full-bar examples, for instance.

00:40:22.040 --> 00:40:26.540
Flint Python has a few full-bar examples, but most of them are not full-bar examples.

00:40:26.540 --> 00:40:29.860
And it's hard, actually, to come up with good examples.

00:40:29.860 --> 00:40:33.300
But I think it's totally worth it to make the book interesting.

00:40:33.300 --> 00:40:34.720
And, of course, you can do that.

00:40:34.720 --> 00:40:35.400
Yeah, I agree.

00:40:35.400 --> 00:40:37.400
I don't like those fake examples either.

00:40:37.400 --> 00:40:39.080
I always feel like they're kind of a cop-out.

00:40:39.140 --> 00:40:43.340
I think it's good to be able to build from something into the book.

00:40:43.340 --> 00:40:50.800
So, in my case, I built on lots of presentations because I've been using Python and I've been evangelizing Python since 1998.

00:40:51.300 --> 00:40:57.800
So, I had a lot of presentations and a lot of course material over the years that were just slides and examples.

00:40:57.800 --> 00:41:00.320
So, a lot of that went into the book.

00:41:00.320 --> 00:41:14.740
So, I really think the idea of having some prior motivation to develop examples and write, like a blog or courses or podcasts or whatever, is a very good way of building up material to then launch into a book.

00:41:14.860 --> 00:41:15.440
Great advice.

00:41:15.440 --> 00:41:22.220
And you brought up the example of sort of almost a pattern for writing, a recipe for writing blogs and books.

00:41:22.220 --> 00:41:25.900
I interviewed a Jesse Giroudavis from MongoDB.

00:41:25.900 --> 00:41:28.200
He wrote a really great article.

00:41:28.200 --> 00:41:30.820
I think actually he gave a talk on it and then also wrote an article.

00:41:30.820 --> 00:41:36.120
He basically classified five different design patterns for blogging.

00:41:36.120 --> 00:41:44.600
And if you know what pattern you're aiming for, it's really much easier to write because you're like, oh, well, that means it goes like this, this, this, and there's some of that, and then it finishes like that.

00:41:44.600 --> 00:41:45.320
That's nice.

00:41:45.320 --> 00:41:46.420
Yeah, it was really, really nice.

00:41:46.420 --> 00:41:49.260
Actually, that was episode 69 of Talk Python.

00:41:49.260 --> 00:41:54.720
Catherine, what advice for people who maybe don't write a lot but want to?

00:41:54.720 --> 00:42:04.020
Yeah, I mean, this is a little bit hard for me because, yeah, I had a degree in journalism right before I started doing Python.

00:42:04.020 --> 00:42:07.660
So, trouble with writing is not a problem?

00:42:07.660 --> 00:42:09.560
Writing kind of was a job.

00:42:09.560 --> 00:42:10.940
Yeah, exactly.

00:42:10.940 --> 00:42:26.020
Well, when you, so when you go to journalism school or for those of you that might have had writing degrees, you kind of learn to separate writing from the type of writing that most people think and experiment with.

00:42:26.020 --> 00:42:30.620
So, like this whole concept of, like, you have to be in the mood to write and this, that.

00:42:30.620 --> 00:42:35.360
Like, if it's your job, you just can't just be like, oh, editor, I don't really feel like writing today.

00:42:35.360 --> 00:42:36.920
I think I'll go home.

00:42:37.180 --> 00:42:39.740
So, you kind of have to produce.

00:42:39.740 --> 00:42:45.380
So, I compare it to some days, like, you don't want to write code, but you need to write a few lines at least.

00:42:45.380 --> 00:42:51.680
And once you write a few lines, maybe writing a few lines more will feel easier and the day moves forward.

00:42:52.400 --> 00:42:58.800
And I think that in J school, for me, at least, there was quite a lot of very intense deadline writing.

00:42:58.800 --> 00:43:03.260
And you would have to write whether you wanted to or not if you were going to pass that course.

00:43:03.260 --> 00:43:08.380
So, I think this put me in the mind space of, like, okay, I'm going to sit down.

00:43:08.380 --> 00:43:16.880
I'm going to, you know, maybe brainstorm, make a small outline, do whatever tiny little steps, putting one or two words together until I have sentences.

00:43:16.880 --> 00:43:19.480
And then sentences turn into paragraphs and so forth.

00:43:19.480 --> 00:43:20.300
That's really interesting.

00:43:20.300 --> 00:43:25.800
Did you come into programming through this sort of, like, data-driven journalism side of things?

00:43:25.800 --> 00:43:29.800
Well, I was actually supposed to be in computer science from far earlier.

00:43:29.800 --> 00:43:38.440
So, I was, you know, writing C++ when I was in high school and I was packing and running my own website when I was young.

00:43:38.440 --> 00:43:50.580
But I dropped out of computer science because I felt really uncomfortable when I went to university because I was one of the, one of very, very small, small number of women in my program.

00:43:50.580 --> 00:43:57.320
And so, then I went into statistics and after that into journalism and then found my way back to computers.

00:43:57.320 --> 00:43:58.780
Yeah, how interesting.

00:43:58.780 --> 00:44:08.380
And I do find it really surprising that journalism and Python and programming actually intersect non-trivially these days compared to how it used to be, at least.

00:44:08.380 --> 00:44:15.920
There's more and more resources on just how do we combine this data journalism and storytelling all together.

00:44:16.080 --> 00:44:30.580
And I feel like data science is a very interesting intersection there because even as a data scientist, you also have to think about how you tell the story in the sense of how you report it to somebody that might be able to make some sort of actionable choices based on the data that you find.

00:44:30.920 --> 00:44:34.140
I also started in journalism in college.

00:44:34.140 --> 00:44:40.940
My first year, I was a journalism major and one of the best courses I had was taught by an editor from the LA Times.

00:44:40.940 --> 00:44:43.980
And he had us compose at the typewriter.

00:44:43.980 --> 00:44:46.160
That was his, that was the whole thing.

00:44:46.220 --> 00:44:51.560
And we started with, you know, a set of facts and I don't know, an hour and a half.

00:44:51.560 --> 00:44:58.820
And then he kept changing the time and reducing it, reducing it until it was like, I don't know, 15 or 20 minutes to write the story.

00:44:58.820 --> 00:45:01.460
And it was, it was super useful.

00:45:01.460 --> 00:45:03.420
Oh, that sounds really interesting.

00:45:03.420 --> 00:45:07.020
Bruce, go ahead and give us your thoughts on also getting into writing.

00:45:07.020 --> 00:45:12.620
Although being a journalism major, maybe you also have not so much of that experience.

00:45:12.620 --> 00:45:14.320
Well, I did it in high school.

00:45:14.320 --> 00:45:21.120
I was involved in journalism and studied in the first year and kind of realized it was just going to be more of the same thing.

00:45:21.120 --> 00:45:30.180
And so I changed to physics and got into physics and engineering and eventually computer engineering for my master's degree.

00:45:30.180 --> 00:45:37.480
But I kept being like, I kept showing up at the college newspaper and getting involved with there.

00:45:37.480 --> 00:45:41.220
So I guess I always had this impulse to do it.

00:45:41.220 --> 00:45:50.220
But I would say for people, in fact, at the last PyCon, I held a little open spaces for people who are interested in writing.

00:45:50.220 --> 00:45:57.860
And I'd say the, like a couple of the most important things that came out of that, I think I blogged about it.

00:45:57.860 --> 00:46:14.240
So the details are in the, in my blog, but probably the most important things that I think people like don't get taught are something called active voice, which a lot of people don't know what that means.

00:46:14.240 --> 00:46:19.260
It means more or less you're talking in the immediate tense.

00:46:19.260 --> 00:46:26.140
And it makes your sentences shorter and more direct and more connected to the reader.

00:46:26.140 --> 00:46:38.460
And the other thing, which was huge, someone told me this years ago, is once you think you're done with whatever it is, you know, your blog post or your chapter or whatever, is go back and read it aloud.

00:46:39.180 --> 00:46:47.520
And by reading it aloud, and that's every single word, and it takes a long time, but things will jump out at you.

00:46:47.520 --> 00:46:53.620
And it makes you realize that when you're reading quietly, you skip over stuff and you don't notice things.

00:46:54.140 --> 00:47:03.980
And by reading it aloud, it forces you to pay attention to every single word and the amount of rewriting that you will do when you do that process is kind of amazing.

00:47:04.620 --> 00:47:17.460
So most of my work now, I end up editing myself or like when I'm co-authoring the Kotlin book with a woman who's originally Russian and she speaks.

00:47:17.460 --> 00:47:20.480
Her English is good, but she has a hard time writing.

00:47:20.740 --> 00:47:26.180
And so originally, I was just going to kind of be the editor and publisher of this book.

00:47:26.180 --> 00:47:33.200
But now I'm kind of actively writing and rewriting and doing a lot of pretty heavy editing because of that.

00:47:33.200 --> 00:47:35.880
But, you know, that's just the way projects are.

00:47:35.880 --> 00:47:36.640
They change.

00:47:36.640 --> 00:47:38.120
They evolve.

00:47:38.120 --> 00:47:39.520
Yeah, that's really great advice.

00:47:39.520 --> 00:47:42.540
I like the active voice.

00:47:42.540 --> 00:47:44.540
Definitely a fan of that style of writing.

00:47:44.540 --> 00:47:47.180
That is the hardest thing to learn.

00:47:47.520 --> 00:47:53.180
And even when you know what it is, you will fall back to writing in passive voice and then you'll recover.

00:47:53.180 --> 00:48:03.460
The hardest thing in the world, I think, is just to understand what it is and to constantly be looking for places where you can change passive to active.

00:48:03.460 --> 00:48:04.060
Yeah, nice.

00:48:04.060 --> 00:48:12.760
Before we move on, I'm just going to give a quick shout out to something I saw on GitHub this week that's related to what Catherine brought up and used well, Bruce, a little bit.

00:48:12.760 --> 00:48:14.820
You're probably familiar with 538.

00:48:14.820 --> 00:48:17.420
They write a bunch of sort of data-driven articles in journalism.

00:48:17.420 --> 00:48:24.480
They have a place where they have every bit of data for every article that they write all in one GitHub repository.

00:48:24.480 --> 00:48:31.880
So if people are looking to do like data-driven writing, there's just this amazing place at github.com/538.

00:48:31.880 --> 00:48:33.580
Words, not numbers.

00:48:33.580 --> 00:48:34.500
Slash data.

00:48:34.500 --> 00:48:35.540
Very, very cool out there.

00:48:35.540 --> 00:48:37.560
So, Dan, how about you?

00:48:37.560 --> 00:48:38.480
What are your thoughts on this?

00:48:38.480 --> 00:48:41.220
Like, I'm not much of a writer, but I want to write a book.

00:48:41.220 --> 00:48:42.080
How do I do that?

00:48:42.320 --> 00:48:43.240
Man, that's a tough question.

00:48:43.240 --> 00:48:45.660
You know, I can only speak from personal experience.

00:48:45.660 --> 00:48:56.560
And what it came down to for me was at some point in my life, I actually considered going to, you know, getting a journalism degree, which is funny because that came up a couple of times, you know, from everyone else here in the show.

00:48:56.800 --> 00:48:58.600
So maybe there's some weird connection there.

00:48:58.600 --> 00:49:02.760
I'm sort of glad that I didn't go down that road and went with computer science.

00:49:02.760 --> 00:49:10.380
But I just, you know, I really enjoyed working on things like research papers and then, you know, the thesis that I wrote.

00:49:10.380 --> 00:49:20.700
And just I actually got a kick out of the writing and just that habit of, you know, getting up in the morning, sitting down and putting something in writing and having the ability to go back and like refine it.

00:49:20.700 --> 00:49:22.600
And it wouldn't just disappear.

00:49:22.600 --> 00:49:22.940
Right.

00:49:22.940 --> 00:49:31.800
Like, it's not like I'm explaining some idea or something and I'm just talking to someone, but I can put it down and then tweak it and see how it resonates with people and go back.

00:49:31.800 --> 00:49:33.540
And I always found that fascinating.

00:49:33.540 --> 00:49:33.860
Right.

00:49:33.900 --> 00:49:41.000
So I feel like there was some core, like some passion just on the written word, I guess.

00:49:41.000 --> 00:49:42.820
And I'm not a native English speaker.

00:49:42.820 --> 00:49:46.220
So, you know, I was always looking for ways to improve.

00:49:46.220 --> 00:49:48.480
And eventually I just realized, OK, you just got to do it.

00:49:48.480 --> 00:49:48.640
Right.

00:49:48.640 --> 00:49:51.680
You got to sit down and try and write as much as you can.

00:49:51.680 --> 00:49:59.840
So I set a goal for myself writing at least in the beginning, it was 500 words and a thousand and then like 1500 to 2000.

00:49:59.840 --> 00:50:01.800
And it was really hard.

00:50:01.800 --> 00:50:04.760
You know, in the beginning, it was like really, really draining me.

00:50:04.760 --> 00:50:06.800
And it was very exhausting.

00:50:06.800 --> 00:50:11.280
And I just couldn't I felt I could never get even close to writing 2000 words a day.

00:50:11.280 --> 00:50:13.040
That that made a little bit of sense.

00:50:13.040 --> 00:50:15.460
And, you know, actually being able to physically do it.

00:50:15.460 --> 00:50:18.000
But the funny thing is, if you if you keep at it.

00:50:18.000 --> 00:50:24.660
And so, you know, I made a habit out of getting up in the morning, brushing my teeth, getting a cup of coffee and sitting down for an hour and just writing.

00:50:24.660 --> 00:50:29.000
And I mean, I wrote a lot of crap in those days.

00:50:29.000 --> 00:50:40.160
But what I also realized that over the course of a week, just sort of magically by the end of that week, I would have a new draft chapter for it was a different project at the time.

00:50:40.160 --> 00:50:41.180
But, you know, for that project.

00:50:41.180 --> 00:50:50.000
And I think there's something powerful about that where you just you know, you've got to believe in that process and just also be OK with that daily grind and just sit down and do it.

00:50:50.000 --> 00:50:54.200
And whether that's just, you know, free writing, like journaling in the morning or something like that.

00:50:54.200 --> 00:50:58.080
Like if you can build that habit, eventually you will get better at it.

00:50:58.080 --> 00:51:00.780
And eventually great things will happen from that.

00:51:00.880 --> 00:51:01.440
That's great advice.

00:51:01.440 --> 00:51:02.400
Really, really like it.

00:51:02.400 --> 00:51:03.460
All right, everyone.

00:51:03.460 --> 00:51:05.840
We're pretty much out of time for our episode.

00:51:05.840 --> 00:51:09.380
So I think we're going to wrap it up and I'm going to change the questions just a little bit.

00:51:09.380 --> 00:51:15.260
The two questions I ask everyone and keep it short just because there's a lot of us and we are kind of getting low on time.

00:51:15.260 --> 00:51:21.840
So instead of asking you what your favorite Python editor is, I'm going to ask you what editor used to write your book.

00:51:21.840 --> 00:51:23.140
Catherine, let's start with you.

00:51:23.140 --> 00:51:24.320
Them.

00:51:24.320 --> 00:51:25.040
Them.

00:51:25.040 --> 00:51:25.340
Right on.

00:51:25.400 --> 00:51:27.220
And do you write in like Markdown or what?

00:51:27.220 --> 00:51:34.880
Yeah, there's a few different flavors that some of the publishers like to use where some things are mixed around.

00:51:34.880 --> 00:51:39.200
So then when you go back to a real Markdown, you're like, oh, wait, why isn't this working?

00:51:39.200 --> 00:51:42.220
But yeah, I wrote both the books in them.

00:51:42.220 --> 00:51:42.900
Oh, awesome.

00:51:42.900 --> 00:51:43.280
Brian.

00:51:43.280 --> 00:51:45.920
I wrote it all in Sublime and it was in Markdown.

00:51:45.920 --> 00:51:50.840
And some of the pragmatic stuff was almost like Markdown.

00:51:50.840 --> 00:51:55.840
So I had a converter to convert Markdown to the format that they needed.

00:51:55.840 --> 00:51:57.600
Beautiful.

00:51:57.600 --> 00:51:58.740
Luciano.

00:51:58.740 --> 00:52:07.140
I also use Sublime and I used ASCII doc on a recommendation by O'Reilly because they have this tool chain that uses ASCII doc.

00:52:07.140 --> 00:52:12.300
And I used to be a big proponent of restructured texts in the past.

00:52:12.300 --> 00:52:14.580
But ASCII doc is much better.

00:52:14.700 --> 00:52:18.960
And I also find it better than Markdown because it's more expressive for book writing.

00:52:18.960 --> 00:52:26.860
For instance, I'm the kind of author that likes to write footnotes and lots of cross references and things like that.

00:52:26.860 --> 00:52:29.060
So ASCII doc is more appropriate.

00:52:29.060 --> 00:52:35.100
But now I'm curiously I'm starting this draft project that I don't want to talk about.

00:52:35.100 --> 00:52:40.380
But I'm using Latex because it's based on another book that's written in Latex.

00:52:40.380 --> 00:52:42.180
And I'm not really enjoying it.

00:52:42.820 --> 00:52:45.740
ASCII doc is my favorite option.

00:52:45.740 --> 00:52:46.260
That's cool.

00:52:46.260 --> 00:52:49.340
Back when I was working on my math PhD, I wrote a lot of Latex as well.

00:52:49.340 --> 00:52:50.340
Bruce, how about you?

00:52:50.340 --> 00:52:58.280
I've done all the camera-ready pages since Thinking and C++ for my books, even the ones that were published through publishers.

00:52:59.260 --> 00:53:06.500
And because it would do all the indexing and table of contents, I didn't use page layout.

00:53:06.500 --> 00:53:07.700
I used Word.

00:53:07.700 --> 00:53:12.860
But I have switched over to using Pandoc-flavored Markdown.

00:53:12.860 --> 00:53:19.240
And I have a whole bunch of tools sets that I produce things from with that.

00:53:20.040 --> 00:53:21.560
And I use Sublime Text.

00:53:21.560 --> 00:53:36.860
But for the camera-ready pages, I'll probably go back to Word just because, I mean, I'll convert from the Markdown source to Word and then use it for layout because it still has kind of everything in it.

00:53:36.960 --> 00:53:39.720
And a regular page layout program doesn't do that.

00:53:39.720 --> 00:53:40.140
All right.

00:53:40.140 --> 00:53:40.380
Cool.

00:53:40.380 --> 00:53:40.800
Dan?

00:53:40.920 --> 00:53:48.540
I'm using two editors because I found that switching between two different environments, it really helps me just look at the text differently.

00:53:48.540 --> 00:53:50.640
And I often use different devices too.

00:53:50.640 --> 00:53:56.780
So I'll write something on my computer and then, you know, read it again by emailing it to myself on my phone, for example.

00:53:56.780 --> 00:53:59.940
And I just found that other things will jump out at me.

00:53:59.940 --> 00:54:04.140
But for the actual writing, I use a tool called Ulysses.

00:54:04.140 --> 00:54:06.760
I think it's macOS only.

00:54:06.760 --> 00:54:08.020
But it's really great.

00:54:08.020 --> 00:54:10.080
It's like a fancy Markdown editor.

00:54:10.860 --> 00:54:13.780
And I use that to do all of my writing for the newsletter and for the web.

00:54:13.780 --> 00:54:19.400
And then I do all of my editing in Sublime Text and then, yeah, publish from there.

00:54:19.400 --> 00:54:20.360
So I use these two.

00:54:20.360 --> 00:54:20.940
Very cool.

00:54:20.940 --> 00:54:21.360
Very cool.

00:54:21.360 --> 00:54:24.720
For my Markdown, I use IA Writer, which is a Mac thing as well.

00:54:24.720 --> 00:54:25.520
But I don't write any books.

00:54:25.520 --> 00:54:26.700
So, all right.

00:54:26.700 --> 00:54:28.420
So let's go ahead and wrap this up, you guys.

00:54:28.420 --> 00:54:31.240
And I will give you each a chance for a final call to action.

00:54:31.240 --> 00:54:33.000
Say, Dan, how about you?

00:54:33.000 --> 00:54:33.620
Final call to action.

00:54:33.620 --> 00:54:34.400
People are interested.

00:54:34.400 --> 00:54:35.180
What do they do?

00:54:35.180 --> 00:54:35.940
Buy my book.

00:54:35.940 --> 00:54:38.140
No, I feel like that's too easy.

00:54:40.800 --> 00:54:42.260
But seriously, please do.

00:54:42.260 --> 00:54:44.820
They should buy and study your book.

00:54:44.820 --> 00:54:46.800
And then they want to write their own.

00:54:46.800 --> 00:54:49.040
Yeah.

00:54:49.040 --> 00:54:50.280
No, like I feel like the.

00:54:50.280 --> 00:54:50.940
Okay.

00:54:50.940 --> 00:54:54.260
So what would I would love the most besides people buying my book?

00:54:54.260 --> 00:54:55.660
No, I got to stop this.

00:54:55.660 --> 00:55:00.460
I think it would be great if more people went out there and just shared their experience.

00:55:00.460 --> 00:55:06.720
And, you know, please, for everyone listening, like don't feel bad about putting something out there that's not perfect.

00:55:06.720 --> 00:55:11.880
I mean, of course, you're going to get crappy comments and sometimes a little bit snarky feedback.

00:55:12.660 --> 00:55:13.780
But who cares?

00:55:13.780 --> 00:55:18.100
You know, it's that this is the first step and it can only get better from there.

00:55:18.100 --> 00:55:24.780
And you'll be glad when you look back at that, you know, a couple of months or years later and also what this can do for your software development career.

00:55:24.780 --> 00:55:30.240
So I encourage everyone just to go out there, you know, just put like a two or three hundred word program example.

00:55:30.240 --> 00:55:32.080
Put it on your blog or somewhere.

00:55:32.080 --> 00:55:34.240
It will be a great experience.

00:55:34.240 --> 00:55:34.580
Yeah.

00:55:34.580 --> 00:55:34.920
Nice.

00:55:34.920 --> 00:55:35.460
Bruce.

00:55:35.660 --> 00:55:38.020
And a lot of this is my experience with co-authors.

00:55:38.020 --> 00:55:50.200
I would say if you're thinking of writing a book or co-authoring a book, really do some deep, you know, soul searching and try and figure out why you want to do it.

00:55:50.200 --> 00:55:57.480
Because often in the process of writing the book or co-authoring the book, you'll find out what it really is.

00:55:57.480 --> 00:56:14.960
And if it isn't actually in alignment with finishing the book or if you're hoping to be famous or, you know, make a lot of money or and it doesn't mean that like you might want to write a book that promotes your consulting business around a certain topic.

00:56:14.960 --> 00:56:16.180
And that makes sense.

00:56:16.180 --> 00:56:31.740
But know that that's what you're doing before you dive into this project, because if you don't really understand it, what what it is that you want, you might be thinking, oh, well, if I write this book, then I will get what I want.

00:56:31.740 --> 00:56:37.840
And the book probably won't let you do that.

00:56:37.840 --> 00:56:42.040
You may not finish if if it's if it's not really in line with what you want.

00:56:42.040 --> 00:56:42.300
Yeah.

00:56:42.300 --> 00:56:42.720
Good advice.

00:56:42.720 --> 00:56:43.200
Luciano.

00:56:43.200 --> 00:56:55.580
Well, I agree that force yourself or make yourself write or produce content, maybe not in writing, but like maybe slides for talks at a local meetup and teach stuff to people.

00:56:55.580 --> 00:56:57.880
There's always people willing to learn.

00:56:58.180 --> 00:57:15.540
So if you can connect, for instance, to a local hackerspace or makerspace or a similar place, a community place where you can go and teach courses for free, that's going to improve a lot your communication skills and also give you motivation to develop material.

00:57:16.000 --> 00:57:27.320
And the other thing I want to say is if you're going to publish something on the internet, please don't do it on Medium or Facebook or, you know, any of those big platforms that are eating the web.

00:57:27.320 --> 00:57:28.960
Have your own site.

00:57:28.960 --> 00:57:35.780
If it's too expensive for you to have your own domain, share it with a few friends, you know, and just put a simple tool.

00:57:35.920 --> 00:57:38.980
I love DocuWiki, for instance, it's super simple to install.

00:57:38.980 --> 00:57:43.240
And I'm really happy with my two websites that I created with that.

00:57:43.240 --> 00:57:48.620
So do it, but do it on your own site and not, you know, feeding one of those monsters.

00:57:48.620 --> 00:57:50.240
That's really interesting advice.

00:57:50.240 --> 00:57:52.120
And I generally agree with you for sure.

00:57:52.120 --> 00:57:53.360
Catherine?

00:57:53.780 --> 00:57:56.120
I think there's been a lot of great advice shared.

00:57:56.120 --> 00:58:09.180
I think particularly like if you're a junior person or you're starting to learn, let's say you're self-taught, or if you have some imposter syndrome, you come from an underrepresented group in tech.

00:58:09.180 --> 00:58:17.140
I think writing can really help reaffirm that you do actually have quite a large grasp on quite a lot of topics.

00:58:17.920 --> 00:58:24.040
And I recently read an article, I'll share it so you can put it in the links, about how I hacked my imposter syndrome.

00:58:24.040 --> 00:58:24.820
That's awesome.

00:58:24.820 --> 00:58:34.560
And the person went through and essentially every day they would write, you know, some sort of problem they were having debugging with, I believe they work in data science or machine learning.

00:58:34.560 --> 00:58:38.920
And they would end up writing through their mental process and then what they learned.

00:58:38.920 --> 00:58:41.980
And I think these types of things would be great blog posts.

00:58:41.980 --> 00:58:45.660
They show that you're learning and growing as a data scientist.

00:58:46.300 --> 00:58:53.960
And this is something that, you know, you can look back on your body of work after a long period of time, whether you want to post it publicly or have it privately.

00:58:53.960 --> 00:58:57.860
And really just show, wow, I have learned so much.

00:58:57.860 --> 00:59:01.220
And my grasp is so large now after so much time.

00:59:01.220 --> 00:59:06.080
I think this is a really good practice even just to do outside of the publishing realm.

00:59:06.080 --> 00:59:06.800
Yeah, very nice.

00:59:06.800 --> 00:59:07.520
Brian?

00:59:07.520 --> 00:59:10.740
There's a lot of different styles of writing, and I think that's great.

00:59:11.140 --> 00:59:16.780
And people think that just practice is going to make you better, but you also have to learn.

00:59:17.020 --> 00:59:32.220
So like other art forms like drawing, take a blog post or an author that you like their writing style and try to teach something that you know in the style of somebody you admire and just try out different styles and see what fits for you.

00:59:32.220 --> 00:59:33.840
I think that's a good way to start.

00:59:33.840 --> 00:59:35.000
Yeah, that's great advice.

00:59:35.440 --> 00:59:40.020
So I'll leave everyone with one book recommendation that kind of ties some of this stuff together.

00:59:40.020 --> 00:59:45.000
There's this really interesting book called Hustle, the Life-Changing Effects of Constant Motion.

00:59:45.640 --> 00:59:54.140
And it's this book by Jesse Tevilove, who wrote this book about just like always seizing the moment and always just be working on something.

00:59:54.140 --> 00:59:57.460
And the reason this is relevant is he is writing a book.

00:59:57.460 --> 00:59:59.060
Writing a book was taking him years.

00:59:59.060 --> 01:00:00.300
Like, I need some money to survive.

01:00:00.300 --> 01:00:02.600
I'm going to try to write a book the opposite of a year.

01:00:02.600 --> 01:00:12.840
And so he wrote a 192-page book that is pretty well done in, I think, three days and published it from the time he opened the editor till the time it was on Amazon was seven days.

01:00:12.840 --> 01:00:19.580
And it's really inspiring, even if you don't care about authoring a book, just like, oh, my gosh, what can you do if you really like powered through a project?

01:00:19.580 --> 01:00:20.300
It's pretty cool.

01:00:20.300 --> 01:00:21.740
So people check that out.

01:00:21.740 --> 01:00:24.960
If you're inspired, you want to create something around text, I guess.

01:00:24.960 --> 01:00:26.780
All right, everyone.

01:00:26.780 --> 01:00:29.700
Thank you so much for being on the podcast and sharing your experience.

01:00:29.700 --> 01:00:31.360
This was really interesting to have you all.

01:00:31.360 --> 01:00:32.700
And I'll talk to you all later.

01:00:32.700 --> 01:00:33.360
All right.

01:00:33.360 --> 01:00:33.640
Bye.

01:00:33.640 --> 01:00:34.300
Thanks, Mike.

01:00:34.300 --> 01:00:34.980
Bye-bye.

01:00:34.980 --> 01:00:35.760
Thanks.

01:00:35.760 --> 01:00:39.420
This has been another episode of Talk Python To Me.

01:00:39.420 --> 01:00:46.000
Our panelists have been Catherine Jarmul, Bruce Eccle, Luciano Romalo, Dan Bader, and Brian Okken.

01:00:46.000 --> 01:00:48.560
And this episode has been brought to you by Linode.

01:00:48.560 --> 01:00:52.220
Linode is bulletproof hosting for whatever you're building with Python.

01:00:52.220 --> 01:00:56.600
Get four months free at talkpython.fm/linode.

01:00:56.600 --> 01:00:58.360
That's L-I-N-O-D-E.

01:00:59.020 --> 01:01:01.020
Are you or a colleague trying to learn Python?

01:01:01.020 --> 01:01:05.700
Have you tried books and videos that just left you bored by covering topics point by point?

01:01:05.700 --> 01:01:11.700
Well, check out my online course, Python Jumpstart, by building 10 apps at talkpython.fm/course

01:01:11.700 --> 01:01:14.320
to experience a more engaging way to learn Python.

01:01:14.320 --> 01:01:19.100
And if you're looking for something a little more advanced, try my Write Pythonic Code course

01:01:19.100 --> 01:01:21.620
at talkpython.fm/pythonic.

01:01:22.660 --> 01:01:24.380
Be sure to subscribe to the show.

01:01:24.380 --> 01:01:26.580
Open your favorite podcatcher and search for Python.

01:01:26.580 --> 01:01:27.820
We should be right at the top.

01:01:27.820 --> 01:01:33.220
You can also find the iTunes feed at /itunes, Google Play feed at /play,

01:01:33.220 --> 01:01:37.100
and direct RSS feed at /rss on talkpython.fm.

01:01:37.100 --> 01:01:39.000
This is your host, Michael Kennedy.

01:01:39.000 --> 01:01:40.360
Thanks so much for listening.

01:01:40.360 --> 01:01:41.420
I really appreciate it.

01:01:41.420 --> 01:01:43.380
Now get out there and write some Python code.

01:01:43.380 --> 01:02:04.180
I really appreciate it.

