The following is the second installment of our Loop Letters series, an interview with Tracy Osborn.
Tracy is the author of Hello Web App, a book to help designers and non-programmers get up and running with Python and Django. Tracy comes from a designer background herself and offers a unique and refreshing take on programming in her writing. We asked Tracy all about getting involved with Django, recent talks she's given, any advice she has, and what she enjoys doing away from a screen.
Let's get started!
Your startup, Wedding Lovely, has turned into your full time job. What inspired you to get this going? What’s your favorite part about what you do each day?
I have an Art degree and I've always loved wedding invitations — they're such beautiful pieces of art. When I first decided to do a startup, I wanted to build a website to help people do the typography for their own invitations. Unfortunately, that turned into a harder problem to solve than I thought; outputting a PDF with perfect typography is no easy task! Instead, I decided to teach myself programming and start with an easier idea: building a simple directory of freelance and small studio wedding invitation designers. I launched the site in about six weeks after I started teaching myself Python and Django, and have been working on it ever since!
Honestly my favorite part is the freedom. Every day is different (and a lot of that is because I'm the designer and developer of WeddingLovely as well as founder, so there is always something to do!) and I get to choose my hours and my tasks. It's very freeing.
You also recently published a book, Hello Web App (congrats!), what’s the story behind why you decided to write this?
When I taught myself to code, I kept being annoyed at tutorials that assumed previous programming knowledge. Most Django tutorials don't emphasize the templates — the website bits — sticking to setting up models and views and checking output in the command line. But as a front-end developer, everything I set up didn't feel "real" until I saw it as a website. As I continued teaching myself Django and playing with web apps, I kept thinking, "Wow, this is so easy. If tutorials started with this, I would have been a lot more interested and engaged." Eventually I decided that I should just write it myself.
Could you tell us a bit about the main points you touched on at your Refresh Portland presentation where you discussed the lessons learned from writing a book?
The whole book process took a long time because I was trying to figure out the best process for writing, the best process for marketing, the best process for designing, etc. Now that I have a system, I could write another a lot faster; future books are definitely being planned! Essentially, self-publishing is so much easier now that it really doesn't make sense to go with a publisher unless you score a deal with one of the top companies.
Crowdfunding on Kickstarter or Indiegogo is a great way to get an "advance" while still keeping 100% of your royalties not to mention a great way to validate your book idea. Writing in Markdown is recommended since a lot of writing platforms use it (I use Draft), it's easily transformed to HTML, as well as easily ported into InDesign (and editorial design program.) For technical books, I wish I found the Leanpub platform earlier as their eBook generation is superb, and you can use their .mobi/Kindle file to sell on Amazon. I sell most of my books on Gumroad, and I added a video tier on a whim, and thank goodness I did — it generates 60%+ of my revenue.
You mention in your Kickstarter video for Hello Web App that you are fairly new to programming. What did you find to be the most challenging aspect of getting started coming from a design background?
I wanted to see results in the browser and so many tutorials avoid the website and templates! It was frustrating because I just wanted to learn how to build a basic web app, but Googling for "how to create a contact page" didn't come up with anything. Eventually I figured out that I needed to understand how to send emails in general first, and then how forms worked. If I tied these two together I could make a contact page, but that last mental leap (when my hand wasn't being held) was super hard.
What do you find especially appealing about Django and the Django community?
Everyone has been so encouraging! My husband is a Python programmer so he's great for Python questions, but doesn't use Django. I tweeted out that I was learning Django, and wonderful Django-ers in my area (whom I hadn't met in person yet) offered to meet up with me and help out and teach me best practices. I immediately felt welcomed. Generally, the Django community is very open and welcoming to new programmers.
When teaching yourself programming did you find any resources to be super handy? Any advice for other designers looking to break into coding?
Well, I ended up writing the book I wished existed! Other than Hello Web App, I used Learn Python the Hard Way to teach myself basic Python programming and logic. For best practices and just reading about Django, Two Scoops of Django is great.
Generally, I am a huge fan of learn-by-doing. It's okay not to 100% understand what you're working on or coding — as different programming tasks are completed, information will slowly sink into your brain. I encourage readers in Hello Web App to just work through the examples and I avoid a lot of explanation of what exactly is going on behind the scenes. Django is kind of famous for its "magic," which might be frustrating for advanced programmers but totally great for beginners.
The other big programming tip that really helped me was learning while working on a "real" project — something unique to me. I originally followed a blog tutorial to build my directory, because the structure between both are similar. Being invested in my own project (rather than the verbatim tutorial project) really helped the information stick.
As you advance your programming skills what concepts are you finding to be more and more difficult to break down for complete beginners?
Installation is the hardest. Unfortunately you have to set up Python and Django on your computer — it's not like HTML where you can create a file and the browser will show what you've built. Downloading the utilities you need for programming is kind of scary, especially since those sites are really written in "developer speak" and aren't very reassuring to beginners, not to mention you'll probably have to use the command line. Once you get everything installed, the rest is easy peasy ... until deployment. That's also really tough. I use Heroku in Hello Web App, but it was still a hard task to write the instructions needed to deploy on Heroku in a beginner-friendly way.
Finally, do you have any hobbies outside of tech that you are especially good at? How about any that you are terrible at but enjoy nonetheless?
I LOVE pretty much anything outdoorsy. Last summer I completed the John Muir Trail by myself, 200+ fun miles between Yosemite and Mt. Whitney in California. It was an amazing experience (other than my last day.) I love rafting and almost quit tech to become a rafting guide. I've dabbled in mountaineering and want to climb Rainier someday. I'm actually kind of terrible at hiking (I'm usually the slowest) but slow and steady wins the race, right?
You can stay up to date on Tracy’s adventures on Twitter.
Read our previous Loop Letter with Henrik Joreteg here.