Summary There are many aspects of learning how to program and at least as many ways to go about it. This is multiplicative with the different problem domains and subject areas where software development is applied. In this episode William Vincent discusses his experiences learning how web development mid-career and then writing a series of books to make the learning curve for Django newcomers shallower. This includes his thoughts on the business aspects of technical writing and teaching, the challenges of keeping content up to date with the current state of software, and the ever-present lack of sufficient information for new programmers. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. When you’re ready to launch your next app you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email hosts@podcastinit.com) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing William Vincent about his experience learning to code mid-career and then writing a series of books to bring you along on his journey from beginner to advanced Django developer Interview Introductions How did you get introduced to Python? How has your experience as someone who began working as a developer mid-career influenced your approach to software? How do you compare Python options for web development (Django/Flask) to others such as Ruby on Rails or Node/Express in the JavaScript world? What was your motivation for writing a beginner guide to Django? What was the most difficult aspect of determining the appropriate level of depth for the content? At what point did you decide to publish the tutorial you were compiling as a book? In the posts that you wrote about your experience authoring the books you give a detailed description of the economics of being an author. Can you discuss your thoughts on that? Focusing on a library or framework, such as Django, increases the maintenance burden of a book, versus one that is written about fundamental principles of computing. What are your thoughts on the tradeoffs involved in selecting a topic for a technical book? Challenges of creating useful intermediate content (lots of beginner tutorials and deep dives, not much in the middle) After your initial foray into technical authoring you decided to follow it with two more books. What other topics are you covering with those? Once you are finished with the third do you plan to continue writing, or will you shift your focus to something else? Translating content to reach a larger audience What advice would you give to someone who is considering writing a book of their own? What alternative avenues do you think would be more valuable for themselves and their audience? Alternative avenues for providing useful training to developers Keep In Touch Email wsvincent on GitHub Website Picks Tobias Practical AI William awesome-django The Digital Doctor by Robert Wachter Links Quizlet Django Learn Python The Hard Way Invent Your Own Computer Games with Python Ruby on Rails Node.js Express LearnBoost David Heinemeier Hanson Meteor.js Class-Based Views Rails Tutorial Leanpub Gumroad Stack Overflow Egghead.io Frontend Masters Gatsby.js Jekyll Pachyderm Data Engineering Podcast Pachyderm Interview The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA