About two months ago, Filip Ekberg sent me a preview copy of his upcoming book, C# Smorgasbord. His timing couldn’t have been better – although I’m traditionally a Java developer, I had started looking a writing an app for Windows 8, and had decided to use C#. This book is structured and presented in a way that helped me learn what I needed to know really easily.
About The Book
The book is neatly structured so that you can digest one chapter at a time, depending on what you want to solve. For example, there’s a chapter purely dedicated to unit testing, while another looks at parallel extensions. Dynamic programming, inversion of control and mocking are all given their own chapters. The fact that the chapters were so focussed and could be read in isolation, in any order, is one of the best features of the book.
Filip shows his depth of knowledge and experience, guiding the reader with good examples and an easy to follow commentary throughout. The book acts as an essential reference for any developer working with C#. As someone who wasn’t very familiar with the language before, I feel that I have a much better understanding now.
An Interview With The Author
I also had to chance to ask Filip some questions about the book and the whole process behind writing it. Here’s what Filip had to say
DZone: Could you please introduce yourself and your experience?
Filip Ekberg: I am Filip Ekberg and I work as a professional Software Engineer. My primary focus has been C# development ever since I started my own company in 2005. Computers have always been my biggest hobby and ever since I discovered programming when I was a kid it has been my greatest passion.
During the years, I’ve had the pleasure to work with a variety of different things that have given me a great experience. Other than C# I’ve also worked with Java, PHP and C++, among others.
Teaching others have always been something I’ve enjoyed. During the time that I studied for my bachelor degree in software engineering I also worked as an amanuensis; teaching a program called “Creative Mobile Development”. This is somewhat where my blogging started to take form; I started to write articles for the class that I also wanted to share with the rest of the world.
DZone: Is this your first book? What inspired you to write it?
Filip Ekberg: This is my first, but hopefully not my last book.
Most of my inspiration came from my own articles that were re-published on DZone, my screencasts and different presentations that I’ve had for colleagues.
I felt that I had covered so much interesting topics in all the material that I had written so I wanted to explore that and see if it could evolve into something else.
DZone: Can you tell us a little about the writing process? How long did it take and what were the most difficult parts of the process?
Filip Ekberg: This is actually something that I’ve thought about a lot; I think I could write an entire book on how to self-publish a technical book.
It all started out when I took all my raw material that I had and just put it in a Word document that had a template that I liked. But I soon realized that this posed some problems and difficulties. For instance, the content needed a lot of work to become perfect for “offline-reading”.
During the work on my book I’ve shared hundreds of screenshots with people on IRC, Twitter, Facebook and other places. This has led to a lot of positive and negative comments on the type-setting and such.
Very early in the process I got a tip that I should try out LaTeX and so I did. Basically LaTeX helps you typeset your document by allowing you to write some pretty nice markup. The reason I wanted to try something else than Word was because it posed some difficulties, since I got a lot of feedback from the people that saw my screenshots. I wanted to be able to change the entire layout of the book in just one click. So by using LaTeX, it made it all as easy as writing HTML and CSS.
This also gave it a professional look out of the box with good print ready fonts and such. But there were still lots of work to do on both the layout and the content. Meanwhile when I wrote, I shared more and more screenshots, resulting in a lot of very good feedback. Which led to what the book looks like today.
Also very early in the process I invited a handful of people to help me review the content as I wrote it, so that I would get lots of more feedback during the writing process. This is where one of the most difficult parts of the writing process was; distinguishing between objective and subjective opinions. But thanks to the proof readers Chris Anzalone, Wyatt Lyon Preul, Justin Rusbatch, Alexander Rydberg and Andreas Strid it all turned out very good.
Almost all of the raw material that I had before I started writing the book, was re-written. This means that while I had already put probably 100s of hours into creating good material for articles, screencasts and presentations, this material did not fit into the book without a lot of re-work. So I think it is safe to say that I put down probably not less than 1000 hours type-setting and writing after I had the raw material.
DZone: What sets your book apart from other C# books?
I think the title gives this away “C# Smorgasbord”. In most books you’re focusing on one technology, pattern or a bunch of practices, but you never combine all these together in a nice mix.
All the chapters in C# Smorgasbord can be read independently from each other. The idea behind this is that after reading each chapter, you will have some new knowledge that you can apply in your everyday work.
Explore your possibilities with C# and improve your skills while you will be inspired to challenge yourself. Talking about everything from LINQ to Productivity, Quality and Readability to Roslyn, Dynamic and Asynchronous programming.
DZone: What chapter are you most proud of?
Filip Ekberg: This is very difficult to answer, because of the layout of the book where each chapter is independent and cover a different technology, pattern or practice.
But if I have to choose one, I would say Chapter 9 – “Creating things at runtime”. In this chapter we look at how to create things in runtime using MSIL and how the evaluation stack works.
DZone: Where can people purchase the book?
Filip Ekberg: Amazon primarily, but also CreateSpace and for a digital copy you can visit http://books.filipekberg.se/.
It will also be available on Kindle later this year.
DZone: What are your plans for next projects / books?
Filip Ekberg: Next up is getting this book ready for Kindle and I also want to get back to blogging more frequently and maybe start collecting material for a new book. I’ve got some ideas but I need to do some more research before I can disclose too much about that!
DZone: Finally, what are your opinions on Windows 8 and the Metro style?
I thought the cover would give that away!
I’ve been running Windows 8 on my work computer since the consumer preview and I really like it.
Regarding Metro, I think it is a great idea going back to the basics; less is more. But as I’ve been using Windows 8 on my work computer, I’ve noticed that I’m rarely in the Metro view at all, just when searching for an installed application that I want to start.It is going to be really interesting trying this out on the surface and see how it feels on a touch device.