Suggestions for future editions

#1

It doesn’t seem like there’s an existing post where we can make general suggestions about improvements to the book. I have a couple. Others should feel free to add theirs.

  1. Separate the hints and solutions from the problems. By moving them to the back of the book, for instance. Often, after I’ve read a problem statement, I’ll be lost in thought about it, then suddenly realize my eyes have moved to the hint and solution part of the page. :anguished:

  2. Take a “gradual reveal” approach to the solution. InterviewCake is the gold standard for this approach. Attempting the same in print might make a book too big. But the pedagogical value is priceless. At the least, a valuable second hint before offering the solution would be to reveal the complexity of the best approach. When I’m stuck I go looking for this toward the end of the solution. But it’s always a risk because I often end up unintentionally picking up other unrelated clues from surrounding text. The solutions are already generally gradual reveals, but the reveal stages aren’t visually separated in a way that allows the reader to know when to stop before more is revealed than they desire.

0 Likes

Not particularly happy with the new format (questions&answers together)
#2

I think the way the solutions are revealed are great. And the solutions have nice detailed explanations. Also I like the hints where they are, it’s a pain to flip all the way to the end to see a hint. In general hints in this book do not give the solution away so I wouldnt worry about seeing them accidentally. But I do agree, a post for suggestions is probably a good idea.

0 Likes

#3

We authors are definitely welcome any suggestions so I am really positive for a thread of suggestions.

The old version of EPI used to separate the problems and solutions and hints. However, many many readers complained about the ease of readability because you literally flip-back-and-forth the book multiple time for a simple problem. Many felt it is really hard to read especially this is not a thin book with easy content.

For the hint, it is a hard to make it succinct and gradually revealing. The approach we took is actually trying to introduce brute-force solution in the beginning which shall be a good another level hint. If you have some more concrete example how you think what this could be done. That would be great.

0 Likes

#4

@tsunghsienlee:

Thanks for your response, and for being open to suggestions.

I can see how flipping back and forth might be a burden for most people who probably aren’t taking my approach: I don’t read any of the solutions, other than sometimes checking the very last couple sentences to see if I hit the time/space complexity expectation. One advantage of this is that it will allow me to revisit all my solutions again in the future, to make improvements with new insights that I was able to generate by myself by reflection.

So, to answer your question about concrete examples of changes to the structure:

  1. Break out the best achievable time and space complexity from the solution discussion. They can be still be covered and discussed in the solution, but they would also be isolated under a separate header something like:

    Solution: something something something… in depth discussion of time and space complexity… something something something.

    Complexity: time: O(n), space: O(1)

    It would be a big help if complexity was included for variants. It won’t take up much space in the book. But it can be very useful for determining approach, and for knowing when one can stop searching for improvements in one’s approach.

  2. Break out the solution into sections demarcated by improvements in space and time complexity. Something like:

    Solution
    Brute force: something something something…
    Better: something something something…
    Even Better: something something something…

    Or, sort of a meld with suggestion (1) above:

    Solution - time O(n^2), space O(n): something something something…
    Solution - time O(n), space O(1): something something something…
    Solution - time …, space …: etc… in order of improving complexity

0 Likes