Q: How did you become an author for Packt? Tell us about your journey. What was your motivation for writing this book?
Adelina: While I have worked with other programming languages and technologies, helping fellow engineers become productive with the Go programming language through blogposts and online courses has been my focus for the past 3 years. I was excited when Packt approached me to write a book about Go testing, as this is often an overlooked and underrated aspect of the language. I’m thrilled to share all I know on the topic with the world and help engineers everywhere write maintainable, well-tested Go code.
Q: What is the name of your book?
Adelina: Test-Driven Development in Go: A practical guide to writing idiomatic and efficient Go tests through real-world examples.
Q: What kind of research did you do, and how long did you spend researching before beginning the book?
Adelina: The book covers language fundamentals, as well as testing practices and techniques, so I had to spend time researching Go language internals. I also spent quite a bit of time writing code demos and exploring how to use the third-party tools covered, which helped me keep the focus on building and applying the knowledge presented. Throughout the book, the language fundamentals presented in theory are applied to code examples, giving readers a detailed understanding of every example. The preparation & research had to balance both of these aspects.
Q: Do you have a blog that readers can follow?
Q: What key takeaways do you want readers to come away with from the book?
Adelina: The most important takeaway that I would like readers to remember is that building an engineering culture and working practice which prioritizes code quality is an iterative, constant process. TDD is the method through which we embed testing in our code delivery processes, which allows engineers to write more robust, maintainable code. However, TDD in itself is only the beginning of creating an engineering culture of writing robust code that is focused on solving user problems.
Q: Can you share any blogs, websites and forums to help readers gain a holistic view of the tech they are learning?
Adelina: The official Go documentation, https://go.dev/doc/, is a treasure trove of knowledge, so take time to explore it.
Q. Did you face any challenges during the writing process? How did you overcome them?
Adelina: Needless to say, it is very challenging writing a technical book, more challenging and time-consuming than I thought it would be. Having technical skills and understanding is only a part of the skills required, as authors are also story tellers. My technical reviewers, Stuart Murray and Dimas Prawira, helped guide me to complete this project.
Q. How would you describe your author journey with Packt? Would you recommend Packt to aspiring authors?
Adelina: This was my first time writing a book and I’m grateful for Packt giving me this opportunity. The editors kept me on track and helped me complete this project. It is clear that without Packt I would not have written this book.
Q. Why should readers choose this book over others already on the market? How would you differentiate your book from its competition?
Adelina: While I’m obviously biased because I poured my heart and soul into this project, this book is the only one centered around applying TDD and discussing testing of the Go programming language. It doesn’t just discuss techniques and language fundamentals on a theoretical level, but contains lots of useful examples, including building a full demo REST API. The approach taken by the book is unique and will be useful to both Go newcomers and practitioners.
Q. What is/are your specialist tech area(s)?
Adelina: The Go programming language, Software development practices, Microservice/distributed systems architecture.
Q. What advice would you give to readers jumping into this technology? Do you have any top tips?
Adelina: When starting with Go, embrace its principle of simplicity. If you are coming from another programming language, as I did coming from Java, embrace Go’s style. Finally, the Go community is truly helpful and welcoming. Don’t hesitate to reach out to the community if you have questions.
Q. Do you belong to any tech community groups?
Q. What’s your take on the technologies discussed in the book? Where do you see these technologies heading in the future?
Adelina: Go has gained so much popularity, that I almost don’t see it as an emerging language any longer. I don’t think the adoption and growth of the Go programming language will be slowing down any time soon. The third-party tools for testing Go presented in this book may change in the future, but the fundamentals of TDD and code writing practices will not.
Q. How did you organize, plan, and prioritize your work and write the book?
Adelina: The Packt editors gave me the deadlines for each chapter. I wrote the book in the evenings, weekends and on my days off work. I began with creating outlines for each chapter and progressively filling them in with more details. I wrote the code examples at the same time as writing the book to ensure that all the concepts demonstrated in the code are covered by thorough explanations.
Q. What are your favorite tech journals? How do you keep yourself up to date on tech?
Adelina: I enjoy attending technical community events and the talks at GopherCon are always amazing. Make sure to check out their freely available previous talks on YouTube to learn from their stellar speakers – https://www.youtube.com/@GopherAcademy/videos
Q. Would you like to share your social handles? If so, mention them below.
Q: What is that one writing tip that you found most crucial and would like to share with aspiring authors?
Adelina: Writing is an iterative process. Start with a rough structure and fill it in slowly as you refine your viewpoint and story. While you are writing, think of the book as a cohesive whole as well as standalone chapters. It’s important not to forget the big picture while you are focusing on the details of every chapter.
You can find Adelina’s book on Amazon by following this link: Please click here