Q: How did you become an author for Packt? Tell us about your journey. What was your motivation for writing this book?
Burak: I’ve been active on Go mailing lists and on Stack Overflow for the past few years. I guess Packt found me from these sources and then approached me directly. It sounded like a daunting task at first, but I could not pass on the opportunity to talk about Go and concurrent algorithms in the context of real data processing applications, and not just as a language to develop APIs. I wanted to emphasize the broader applications of the Go language.
Q: What is the name of your book?
Burak: Effective Concurrency in Go: Develop, analyze, and troubleshoot high performance concurrent applications with ease.
Q: What kind of research did you do, and how long did you spend researching before beginning the book?
Burak: Most of the book was written based on the concepts I know, so I did not have to do extensive research. The Go language specification and the Go memory model are the primary references, as well as the countless questions and answers on Stack Overflow. I read some of the important academic articles on concurrency to cite them correctly. I also read many blog posts and presentations by the Go team.
Q: What key takeaways do you want readers to come away with from the book?
Burak: Concurrency is inherently hard, but it is made even harder by the approach taken by most languages. Go takes a different approach, and by following few simple rules it is possible to effectively use concurrency features and write performant programs for modern processors.
Q: Can you share any blogs, websites and forums to help readers gain a holistic view of the tech they are learning?
Burak: The official Go blog: https://go.dev/blog/
Q. Did you face any challenges during the writing process? How did you overcome them?
Burak: One of the challenges was to come up with examples that tell the story without losing the focus. I wrote and rewrote many of the example programs. Some of the examples come from my current work dealing with semantic harmonization of data through pipelines, so compressing them to small enough algorithms was quite challenging.
Q. How would you describe your author journey with Packt? Would you recommend Packt to aspiring authors?
Burak: Packt handles the editing and project management aspects of writing a book very well. I would recommend Packt to aspiring authors.
Q. Why should readers choose this book over others already on the market? How would you differentiate your book from its competition?
Burak: The first part of the book talks about concurrency primitives and the Go memory model. As far as I know, this is the only book that directly deals with the Go memory model in such detail. The second part of the book works on concurrency issues in the context of data processing, as opposed to treating concurrency purely as a control facility.
Q. What is/are your specialist tech area(s)?
Burak: The Go programming language, concurrency.
Q. What advice would you give to readers jumping into this technology? Do you have any top tips?
Burak: Experiment, ask questions, and do not move on without understanding the concepts. Code-reading is an overlooked skill in most cases. Read and analyze code, then experiment with it.
Q. Do you belong to any tech community groups?
Burak: I am a member of IEEE and ACM, and I am also affiliated with the Trust Over IP Foundation.
Q. What’s your take on the technologies discussed in the book? Where do you see these technologies heading in the future?
Burak: Concurrency concepts have been around for a long time but Go makes the use of concurrency features effortless. The concern becomes dividing problems into concurrent components, similar to how object-oriented programming divides problems into structural components. I hope to see a broader adoption of the Go language. I also hope to see that concurrency as a core language feature allows others to treat it more like a programming paradigm like object-oriented or functional programming, instead of an add-on to an underlying architecture.
Q. How did you organize, plan, and prioritize your work and write the book?
Burak: I already had a basic outline mapped in front of me, and I tried to follow that. Sometimes what is written did not fit well into that outline, and working with Packt team, we updated the outline. In the end it all came down to developing the example code, because most of the text is dedicated to explaining that code.
Q. What are your favorite tech journals? How do you keep yourself up to date on tech?
Burak: I read IEEE and ACM journals. I am also subscribed to Go mailing lists and I am active on Stack Overflow.
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?
Burak: Work on the examples first. They shape the story.
You can find Burak’s book on Amazon by following this link: Please click here