Q: What is/are your specialist tech area(s)?
Carl: I’m a builder; I love creating new applications and experimenting with new technologies. I’m .NET/C# focused with strong aptitudes toward architecture and broad knowledge of peripherical technologies like databases.
Q: How did you become an author for Packt? Tell us about your journey. What was your motivation for writing this book?
Carl: That adventure began with a message on LinkedIn. I was asked if I would be interested in writing a hands-on book about design patterns by someone at Packt. I was releasing a series of articles about that exact subject, so I thought about the proposal. I decided to move forward with the idea. At that point, I had a one-pager filled with high-level information, explaining what Packt was looking for. I wrote a blog post about the full adventure is you want to know more: https://www.forevolve.com/en/articles/2020/12/30/book-an-atypical-asp-net-core-5-design-patterns-guide/
Q: What kind of research did you do, and how long did you spend researching before beginning the book?
Carl: After outlining the book, I started to write right away. As I was already versed in the design patterns sphere, I knew the content. However, I did a lot of research throughout the writing process to validate my thoughts, to make sure I did not forget something, or to find new information on subjects.
Q: Did you face any challenges during the writing process? How did you overcome them?
Carl: I think the more challenging part was to make the content consistent and flow well. 750+ pages is a lot of pages, and when writing, especially during the review process, you work on blocks, chapters and move things around. Hence, at that scale, it is easy to forget something or have parts refer to a previous chapter when the subject now appears later. As for how I overcame that, I’d say with perseverance, hard work, and help.
Q: What’s your take on the technologies discussed in the book? Where do you see these technologies heading in the future?
Carl: Design patterns, architectural principles, and architectural styles are as close as we can get from technology-agnostic, so this knowledge will serve you for a long time, no matter the OOP tech stack. C# is my favorite language since I discovered it in 2005 and is evolving faster than ever before now, so I don’t see it going away anytime soon. .NET 5 is the future of the .NET ecosystem, while ASP.NET Core removes so many hassles from the old ASP.NET that it is a no brainer to choose Core for new development. Microsoft has already committed to making .NET 5+ as “the one .NET to rule them all,” so I don’t see .NET going away either.
Q. Why should readers choose this book over others already on the market? How would you differentiate your book from its competition?
Carl: Most design patterns book that I know of talk about GoF patterns, and that’s it, but this book talks about half of them and adds other patterns to the mix. We even go further and combine design patterns to make some of our learning projects evolve above using a single pattern, showing how we can leverage those tools in action. We also cover various subjects such as ASP.NET features, architectural styles, anti-patterns, code smells, architectural principles, and C# features. This book is about design patterns and designing web apps, making it a great book to learn about design patterns and afterward to continue your journey into more specific subjects inside the design sphere if desired. One of the best examples would be microservices. We explore that subject for a chapter, which is just enough to learn about the topic, learn about the tradeoffs, and have a few bases to start from if that’s the way one of your projects takes.
Q. What are the key takeaways you want readers to come away from the book with?
Carl: I want the readers to understand what the patterns do by using them and how architectural principles are essential guidelines. I also talk often about choices and how there is too often no perfect solutions, which is where all of that design knowledge becomes useful. Without understanding the patterns, it is hard to apply them to real-life scenarios that are different from textbooks. This book’s primary goal is to have the readers learn to think “design,” not memorize some dos and don’ts.
Q. What advice would you give to readers learning tech? Do you have any top tips?
Carl: This one is easy: build stuff, build more stuff, and build even more stuff! The more you code, the more errors you make, the more you learn, the better you get, which is pretty much in line with life in general. Loving what you do is also very important, so make sure you pick the tech for you, not from an employment-trend survey. Trends tend to change, and technologies evolve. That opens this last point: learn to learn. The more you learn, the easier it becomes to learn new things, but at the same time, the easier it is to stay in the known. Don’t be afraid to try new things.
Q. Do you have a blog that readers can follow?
Carl: Yes. https://www.forevolve.com/
Q. Can you share any blogs, websites and forums to help readers gain a holistic view of the tech they are learning?
Carl: Nothing and everything pop to mind at the same time, so no, I don’t have any specific resource to share. You can always follow me on Twitter @CarlHugoM, where I do my best to be active. I have a few projects in mind for 2021 that align with the “holistic view of tech,” and if I find something else, I’ll post it there or retweet it.
Q. How would you describe your author journey with Packt? Would you recommend Packt to aspiring authors?
Carl: I wrote a blog post about that: https://www.forevolve.com/en/articles/2020/12/30/book-an-atypical-asp-net-core-5-design-patterns-guide/
Q. Do you belong to any tech community groups?
Carl: Yes and no; nothing directly relevant to the book.
Q. What are your favorite tech journals? How do you keep yourself up to date on tech?
Carl: I keep up to date by reading a lot on different subjects and by experimenting with new trends. I read many sources and correlate people’s perspective to decide if a trend is worth exploring. I also don’t fear being wrong and reexplore a trend that I initially discarded later or vice versa. In those explorations, I usually start with the official documentation, then I go for Google, which is often more productive than searching the documentation itself.
Q. How did you organize, plan, and prioritize your work and write the book?
Carl: This is quite a long topic to get into, but I talk about that a little in the following article: https://www.forevolve.com/en/articles/2020/12/30/book-an-atypical-asp-net-core-5-design-patterns-guide/ Tooling-wise, in the end, I designed a custom process using Microsoft Teams, a SharePoint List (in Teams), and Planner (in Teams). With that, I was able to organize my work and follow other people’s work. That process evolved throughout the book. I also set different clocks in Windows to know what time it was for the people I was working with, you know, to say “good evening” or “good morning” at the right time.
Q. What is that one writing tip that you found most crucial and would like to share with aspiring authors?
Carl: Define your conventions early on and know what styles you can use (code, keyword, quote, etc.). That will save you a lot of time later on. Another good tip would be to use the tools that you like the most. After bouncing a little, I went back to Microsoft Word, which was the best choice I’ve made. Your word processor of choice can be another program; the choice is yours. In my case, it was worth investing in a writing assistant. I used Grammarly intensively in the past few years, and it helps a lot. It is also getting more and more clever (it is an AI-powered writing assistant after all). I list a few tips at the end of the following article: https://www.forevolve.com/en/articles/2020/12/30/book-an-atypical-asp-net-core-5-design-patterns-guide/
You can find Carl’s book on Amazon by following this link: Please click here