Thursday, February 19, 2009

New plan for the Fundamentals book

With the draft currently at 250 pages after 4 chapters, I get to chapter 5. It's about polymorphism, one of my favorite techniques. I've been working on the contents. So far it's going to have 4 main sections plus exercises. The list of topics, however, is large. If inheritance alone took about 120 pages, then polymorphism should take roughly that amount. Once I am done with it, I should add more exercises to chapters 3 through 5, and at that point I estimate the draft will be around 450 pages or so.

So, instead of pushing on with the remaining 4 chapters which would have to fit in less than 300 pages to satisfy Lulu's 740 pages per volume limit, the Fundamentals book will come out in two volumes. Volume 1 will be chapters 1 through 5, and Volume 2 will be chapters 6 through 9. The current chapter list is below.

  • 1: On training.
  • 2: On style and technique.
  • 3: On boolean expressions.
  • 4: On inheritance.
  • 5: On polymorphism.
  • 6: On enumeration.
  • 7: On recursion.
  • 8: On exceptions.
  • 9: On optimization.
I already know Volume 2 will be quite significant in size. There is plenty of really interesting original material on enumeration and recursion that I want to write about. Also, I suspect that the optimization chapter could easily balloon into a 200 page embedded book without trying too hard. Splitting this work into 2 volumes seems like a good decision.

This means that I have a rough ETA for Volume 1 --- apparently, I will meet my goal of having a new book out for ESUG this year. I better start thinking about the cover art :).


Travis said...

Sounds good :-)

I really enjoyed the content, writing style and thought process that went into your Mentoring book.

One note about lulu and shipping costs, they have gone sky high (unless it has changed recently). Would you consider a paid digital download, just in case?


Andres said...


I am happy you liked the Mentoring Course book :).

What destination is associated with the astronomical shipping charges? I know that for instance shipping to Argentina is beyond ridiculous. Inside the US, I noticed that USPS is no longer an option and that the cheapest one offered is FedEx Ground (which, as opposed to the USPS shipping offered before, is trackable and so you can get a refund if you do not get the books). It would help me drive my decisions to know what other locations cause shipping to be an issue.


Travis said...


Shipping to B.C Canada, these are the rates per item in USD.

Ground 17.04
Economy 19.96
Standard 69.84
Express 79.46
Super Fast 94.84
Super Mega Fast 129.46

A few weeks ago I went to order a few books, however paying twice the amount just in shipping wasn't agreeable. Neither was waiting 3 weeks.

Andres said...

Well, what to say. Even I got burned when USPS lost a large shipment. Since the shipping method in particular wasn't trackable, I didn't get a refund and so basically I lost money. Given that, I think Lulu's approach to provide FedEx ground as the most inexpensive shipping option makes sense since it can be tracked. I am sure that even at a loss rate of 0.1%, they must have had a huge number of calls for lost items...

I will keep this information in mind when it becomes time to decide. Thank you :).

Anonymous said...

Congratulations on nearing completion of Volume 1. I'm really looking forward to it.

One thing that a novice/intermediate Smalltalker like me misses in mentoring is the 'browsing experience', the ability to effectively query the Smalltalk system for information using the debugger and browser, the ability to customize the browser, the ability to rollback and replay the same code over again in the debugger to learn more about its effects.

Are these topics in Vol 1? If not can you add them to Vol 2?

Andres said...


I'd say that the feeling for the browser and debugger are best transmitted by pair programming for a bit, and by trying every option in the menus. Also, I think there is material that covers these topics already, be it books or screencasts. I'd rather avoid repeating what others have said.


jarober said...

There's a lot of online material about the browser and debugger. Check out Smalltalk Daily:

and specifically: