Monday, June 27, 2011

Simplicity vs. Depth

During  chapter technical reviews, the question of technical depth has come up time and again.  Essentially, in every single chapter.

In the older Building Skills in Python book, there are a number of topics that feel "digressive" to the reviewer and editor.  Too much depth.

However, there are a number of Python tutorials, many of which are very shallow.  I'd like to find a way to retain the technical depth, without it feeling "digressive".

Choice 1.  Split each chapter into different "basic" and "advanced" sections.  This would retain a sensible outline of parts (Language Fundamentals, Data Structures, Classes, Modules and a bunch of advanced projects) and chapters within each part.  Some chapters would still have to be split because a number of "advanced" concepts (i.e. alternative function argument passing with * and **) really has to be delayed until after an appropriate data structure chapter.

Choice 2.  Separate material two kinds of chapters "basic" and "pro".  This would lead to a "basics" thread for n00bz (read all the "basics" chapters) and an "pro" thread for professionals where you'd just read all the chapters in order without skipping.    This would create some more chapters, but each chapter would be shorter and more focused.



  1. If you consider "passing arguments to functions" an advanced concept, then maybe your problem isn't the depth of the material itself, but what you consider an advanced skill.

  2. Bottom line question: Who is your intended audience?

    In your book you explicitly state

    "Audiance: Professional programmers who need to learn Python are our primary audience."


    So, are you going to change your target audience? Is your target audience everyone? Both basic and pro?

    Now that everyone is our target audience, we can then ring our hands about what belongs in the basic areas of the book and what belongs in the advanced part of the book.

    Lets not stop at adding burdens just to the author, lets make sure to add burdens to the readers. The reader has to figure out whether or not to read a section depending on whether it is basic or advanced. Of course the reader will disagree w/ what is advanced and what is basic and he then can have endless arguments w/ the author.

    How about choice 0: do nothing and stick w/ the original intended audience?

    How many other successful tech language books have both basic and advanced excepted in an extremely limited sense?

  3. Decision Fatigue

    In psychology/marketing, it is well established that if you give humans too many choices, they make no choice. Readers students want to make the decision once as to whether or not the book is at the appropriate level and be done w/ it. They don't want to continually make the decision should I read or not read this chapter or this section.

    The other thing, look at how successful your book is. Look at how widely it is referenced out there in the internet.