The journey of a thousand miles begins with a single step. The journey of writing, on the other hand, begins with the planning. There are hundreds of the ways how to structure the information in the book. And, unfortunately, the author’s choice is not always the best one – it is easy to forget that readers can have different preferences.
Today I need your feedback. I would like to ask all of you – how you, as the readers, prefer books or large articles to be structured. Let I elaborate a little bit.
Usually, every large article or book consists of several interrelated topics. Moreover, each topic can be split to basic (introductory) and advanced content. Let’s think about Clustered Columnstore Indexes as the example. If I ever wrote a book on them, I would have to cover their internal structure, explain how they are handling data modifications, how to design ETL processes in the most efficient way and, perhaps, explain what is the batch-mode execution and how to utilize it. Please, do not consider it to be the full coverage on the topic – this is just an example.
The conventional approach for such book would introduce Table of Content similar to the one below. Please, do not judge its quality – it is something I just invented on the fly to illustrate the point.
- Overview and Introduction
- Internal Structure
- Row Groups, Delta Store, Delete Bitmaps
- Internals of data modifications
- ETL and Design Considerations
- Best practices for ETL processes
- CCI and Data Partitioning
- ETL and Index Maintenance
- Batch-Mode Execution
- Batch-Mode Execution – overview and implementation
- Query patterns that lead to Batch-Mode Execution
There is another approach, however. We can split the article or book based on the level of content, such as basic and advanced. With such an approach, you would be able to read half of the book, get some ideas on the topic and start using it. Meanwhile, you can master your skills with advanced content.
Obviously, there are some downsides. First, basic content would have plenty of references to advanced chapters. For example, it can say “using batches of 1M rows for import would provide the best results. We will cover why it happened in Chapter X“. Second, the same topics will be covered in two different chapters, granted on the different levels. And it will look poorly structured, especially if you are already familiar with the topic.
The table of content for such an approach could look like that:
- CCI: Basics Concepts
- Overview and Introduction
- CCI components overview
- Best practices during data modification and ETL (*mainly tips)
- Batch-Mode execution overview and tips and tricks how to utilize it
- CCI: Advanced Concepts
- Internal Structure of CCI components
- Internals of Data Modifications
- ETL processes – design and performance considerations
- CCI maintenance
- Deep dive into Batch-Mode execution.
So, what would be your choice? What would you prefer to read?
Can you please answer one question survey or leave the reply to the post?
I really appreciate all your help! Trust me, it matters!
Don’t do it. Follow the standard pattern. Developers buy books based on their current level of ability. They wouldn’t keep the book around to read again in a couple of years once they were advanced.