This week we welcome Ricky White (@EndlessTrax) as our PyDev of the Week. Ricky is the owner of White Lion Media. He is also the Community Manager at Real Python. If you go to his website, you will find that he has written some non-technical books, which is pretty neat. You can also check out his Github profile to see what projects he is working on. Let’s take a few minutes to get to know Ricky!
Can you tell us a little about yourself (hobbies, education, etc):
Iâ€™m originally from Leicester, England. And I moved to the U.S. in late October 2014. Prior to moving to the U.S., I was a registered nurse specializing in ICU care. When we immigrated to Virginia, my wife and I swapped roles within the household, and she went back to work as I became a stay-at-home dad to our then 3-year-old son, and 6-month-old daughter. A job I wouldnâ€™t change for the world.
The last 3.5 years have been far from dull, and so much has happened. Not least of all, Iâ€™ve authored two books. Iâ€™ve learned how to code. And achieved a lifelong ambition of starting my own business. Apparently looking after two small children wasnâ€™t tiring enough, and I apparently hate sleepâ€¦
When Iâ€™m not fulfilling my primary role in life, writing, or slinging some code, Iâ€™m usually residing in the dojo. Iâ€™m a passionate martial artist who holds the rank of Shodan (first-degree black belt), and I dedicate some of my time each week to teaching other students the art and helping them to grow.
I also suffer from a chronic degenerative disease called Ankylosing Spondylitis. I have been a patient advocate since I was diagnosed in 2010, and currently work as the vice-chairman of a 501c3 non-profit â€” which I helped co-found â€” that aims to raise the awareness of the disease for which 2.7 million people suffer in the U.S. (thatâ€™s more than MS and Parkinsonâ€™s combined!) The charity is called Walk AS One.
And just for fun, I play chess and have a mild-moderate bonsai addiction, of which I have a modest collection.
Why did you start using Python?
The short answer is: because everyone was talking about how great it was and I was suffering from FOMO (fear of missing out.)
The slightly longer answer is: I had tried several languages prior, and had built several small-scale apps with each, as I attempted to teach myself how to code. Part of the problem with my learning was that I had no direction. I wasnâ€™t entirely sure what sort of products I wanted to build and/or problems I wanted to solve. So I was just moving from one tutorial to the next to see what â€˜stuck.â€™ Eventually, I found my way to Python, and a switch was flicked. Suddenly the code I wrote actually worked as intended. But more importantly, I knew why. I just found (even basic) programming principles easier to grasp in Python than I had in other languages, and all the dots started joining up. It felt great to know I actually could build something. And nothing motivates more than success (well maybe fear, but we wonâ€™t go there.)
What other programming languages do you know and which is your favorite?
When I started to teach myself how to code I started with C++, of all places. I never really built anything in it, though, and I found it very confusing. I did, however, learn about pointers and memory management. And thatâ€™s something Iâ€™ve found is never mentioned in most tutorials, as other languages (like Python) have all the â€˜fancy stuffâ€™ like garbage collection, so people take it for granted or never really know whatâ€™s happening under the hood. And I think thatâ€™s a shame.
After that, I moved onto HTML and CSS, and eventually PHP (so I could build WordPress themes.) I didnâ€™t like PHP at all, so I tried C# next. I built a few projects in C# and even ventured into ASP.NET. I very nearly didnâ€™t learn Python at all, as I thought I was just procrastinating and losing focus by the switching to yet another new language. But I did learn it, and although I do have a soft spot for .NET, Python is by far my favorite language and is always my first choice whenever I want to build a new project.
What projects are you working on now?
Right now, Iâ€™m taking a stab at building my own CMS with Django for my personal website redesign. I was going to go with Pelican, the static site generator, but then I decided I might want to do direct sales of my current and future books at some point, as well as starting to blog again. So why not build my own platform and learn a ton in the process? It sounded a good idea at the timeâ€¦ I may regret it.
Other than that, I have some small projects I want to work on for my own benefit. Like a chess app that analyzes my previous games and tells me all kinds of useful information, like what openings have the highest win ratio for me, the average length of my games, and so on. Finding time is difficult these days, so itâ€™s on a slow burn right now.
Which Python libraries are your favorite (core or 3rd party)?
Flask, requests, and beautiful soup are the three that are in almost everything I write. So those are my favorite. I could use others to achieve the same task, but I donâ€™t. I always reach for what I enjoy working with.
How did you end up becoming an author of books?
The first book I wrote was a non-fiction book based on my experience as both a nurse and a chronic illness patient. Very few get to experience both sides of the desk, so I decided that there was a need for a book to help patients (with any long-term condition) to get more from their healthcare appointments. In a way, it sort of capped off my previous career as a nurse and made sure the knowledge I had gained over the previous decade was put to good use and immortalized in the written word.
The second book was my very first piece of fiction. No short story preludes, or fanfic. I dove straight in head first with a full novel. It was a lot of fun and is the first-in-series, so there will be at least two more books to follow. It started out as more of a bucket list item, but as I dug into the â€˜howâ€™ of writing fiction, I found it had so many parallels with coding (really.) I got really intrigued by storytelling and the whole process. So much so, that it started changing the way I wrote non-fiction articles, too, for the better. Oh, and unlike my previous book, I got to write this one under a pen-name. Itâ€™s fun having an alter ego! ðŸ˜Š
What are the top 3 things you have learned as an author?
I love this question because I honestly believe these points are also good advice to the budding developers out there, too.
- Perfect is the enemy of done. Just write the damn words/code already. Edit/refactor later. Get it all out and down on the page. Go back and make it pretty and refine it later. You canâ€™t edit a blank page, nor can you compile one. So get it out no matter how ugly it is.
- Now you have something on the page/file itâ€™s time to â€œkill your darlings.â€ Deleting whole passages of writing/code is fine. People hate doing it, they feel like theyâ€™ve somehow failed or wasted their time. Itâ€™s not true. Itâ€™d be nice to always write something the best way every time, but no one does that. Itâ€™s unrealistic. So what if you have to delete and rewrite a whole scene or class? Youâ€™ve just learned something. Learning how not to do something is often more important than learning the â€˜bestâ€™ way. Itâ€™ll also help you to get a deeper understanding of why something worked or not. The delete key is your friend, learn from it.
- Maybe this should have gone firstâ€¦ but make a plan. Before you sit down to write a book or an app, plan it out. The more you know about what you want it to look and feel like ahead of time. The less time youâ€™ll need to spend editing/refactoring. Write lists, sketch out the UI, whatever it takes, plan it out first.
Is there anything else youâ€™d like to say?
Thanks for doing the interview, Ricky!