Adam Hopkins is the author of Python Web Development with Sanic, we got the chance to sit down with him and find out more about his experience of writing with Packt.
Q: What is/are your specialist tech area(s)?
Adam: Python web development in general, Sanic specifically
Q: How did you become an author for Packt? Tell us about your journey. What was your motivation for writing this book?
Adam: Writing has always been an interest of mine. Technology has also always been an interest of mine. However, I never set out directly on the path to pursue either. Instead, the opportunities found me. Although I have been building web applications since high school, my career began in the legal industry. I am a licensed attorney and had been practicing law for a number of years before I switched career paths and became a full-time developer. Because I am 100% self-taught I was very hesitant for a number of years. Being involved in open source opened my eyes to my abilities and provided me a chance to give back to the community at large. This is why I became very passionate about helping other developers. It is also why I find it incredibly rewarding to pair two of my long-time hobbies: writing and web development. I wrote this book so that hopefully I can help other people on their own journeys.
Q: What kind of research did you do, and how long did you spend researching before beginning the book?
Adam: To be honest, there was not too much research that was needed. Most of the content of the book comes from my own experiences and knowledge. I am constantly researching the field and trying to stay up to date with trends, best practices, and standards.
Q: Did you face any challenges during the writing process? How did you overcome them?
Adam: The biggest challenge was most certainly the global COVID-19 pandemic. This has been an unreal time period. I am a husband and father of five. Sometimes life gives us priorities to handle. This meant one of my biggest challenges was balancing quarantines and lock-downs with writing.
Another interesting point worth making is that the writing process actually uncovered some really helpful features that did not yet exist in Sanic. So I would often find myself balancing the writing of the book with the development of some new feature that I was inspired to introduce because of the book. This meant that in a fast-moving project like Sanic, I had to juggle keeping the content of the book up-to-date with the project.
Q: What’s your take on the technologies discussed in the book? Where do you see these technologies heading in the future?
Adam: Python is one of the fastest-growing languages for a number of years, and I do not see it slowing down. Within Python itself, web development is one of the biggest use cases. Because of that, I see the need for web frameworks and servers to continue to adapt to the constantly changing field. The book spends a lot of time talking about the HTTP/1.1 protocol because it is and has been so ubiquitous for a number of years. This is likely to change in the coming years as the adoption of HTTP/3 becomes more widespread. I am currently working to add support for the new HTTP/3 protocol, and I really wish I would have been able to include it in the book. The field is constantly moving and I think projects like Sanic are well-suited to handle these sorts of changes in the marketplace.
Q. Why should readers choose this book over others already on the market? How would you differentiate your book from its competition?
Adam: First, this is the only book that tackles web development with a uniquely Sanic-based approach. Being the core developer of the project, it is an insight not only into how to use the project, but why it works the way it does. I tried to spend time building clever patterns that would take the tools of Sanic and push them one step further than the obvious usage. Second, even though this book is mainly about Sanic, its primary goal is to help developers level up. To do this, I try to instill confidence in readers. The book is not an answer to “How to” questions. It is not for copy/paste development. Instead, it is meant to help readers think on their own and develop their own solutions. Instead of “How to”, the book tries to help readers develop patterns and ask targeted questions that they are then capable of answering themselves.
Q. What are the key takeaways you want readers to come away from the book with?
Adam: Confidence. Just like life itself, being a web developer is a journey without a final destination. We must continually grow and learn, and ultimately to be successful we must have confidence. Whether a developer has been in the field for six months or twenty years, they need to feel comfortable with their skills and needs. Making mistakes is okay. Asking questions is to be expected. When someone finishes reading my book, I hope they will of course walk away with an excitement for Sanic as I have, and with some additional knowledge and insight regarding web development. Beyond that, however, what I most hope for is that the reader walks away feeling excited to continue their journey as a developer, and with the confidence to tackle problems and come up with solutions to meet their needs.
Q. What advice would you give to readers learning tech? Do you have any top tips?
Adam: 1. Know what you know, and know what you don’t know. Be good at learning how to learn more and never stop expanding your knowledge. Just be careful to not try and learn it all at once. This can be overwhelming and scary.
2. Believe in yourself. For many years I was a victim of imposter syndrome. We all feel it. But knowing that everyone makes mistakes and that everyone is on a journey helped me climb out and feel confident in my own skills.
3. Ask questions. One of the greatest driving forces of society is OSS. The field (in my experience) is largely filled with helpful and friendly people. These people want to share their knowledge and want to help others. All you need to do is ask. Joining a community and engaging in dialogue with other developers is one of the best things you can do to advance your own skills.
4. Contribute to OSS. Developers of all skills can contribute. Not only is it rewarding from a moral perspective, but it also has the more selfish benefit of helping you to become a better developer. Especially for someone that is new in their career, being involved with an OSS project will help them to learn how to work on a team and participate in the development of software. No amount of classroom learning can compare to real hands-on experience. There is so much need for contributions out there. All you need to do is be willing to get involved.
Q. Do you have a blog that readers can follow?
Adam: Not currently. I may be starting one soon on my personal page: https://amhopkins.com/.
Q. Can you share any blogs, websites, and forums to help readers gain a holistic view of the tech they are learning?
Adam: The first place to check out is the book’s webpage: https://sanicbook.com/. This site houses the final application build in a live and interactive environment. Users can interact directly with the application while looking under the hood to see how it’s built.
The other main resource is the Sanic User Guide: https://sanic.dev/.
Q. How would you describe your author journey with Packt? Would you recommend Packt to aspiring authors?
Adam: This is my first book, but hopefully not my last. This has been a worthwhile adventure and I am just a single step along my own personal journey. I hope that anyone that is interested in sharing the knowledge takes their own first step towards writing a book. The Packt team was very helpful to me as a first-time writer to steer me in the correct direction throughout the process.
Q. Do you belong to any tech community groups?
Adam: Of course. Sanic is built by the community for the community. The main form of communication is through the Discord server, but also on our community forums. You can get to both from the Sanic website: https://sanic.dev/.
Q. What are your favorite tech journals? How do you keep yourself up to date on tech?
Adam: I like to see what other people are building and sharing on places like Twitter. I also have a feed of articles where I get information relating to Python and web development. It is also important to see what people are talking about at tech conferences. I find that if something important and worthy is happening, there will likely be someone talking about it at some Python convention.
Q. How did you organize, plan, and prioritize your work and write the book?
Adam: Obsidian. It is an awesome tool that allows me to write and organize in Markdown, which is so much easier for me as a developer. It allowed me to be close to the code and is a really useful tool to act as a place to organize thoughts.
Q. What is the one writing tip that you found most crucial and would like to share with aspiring authors?
Adam: Write every day. Writing momentum is critical. While it may be hard to start sometimes, I often found it equally hard to stop. Having a regular writing routine really helped me keep pace.
You can find Adam’s book on Amazon by following this link: Please click here