I am not a professional web site developper.
I have developped and maintain a dynamic web site(with PHP and MySql) for my hobby interest though. This site is more than a simple blog site and run on MODX.
When I started using MODX, I had a good understanding of HTML and CSS. I also had a working knowledge of JavaScript but no knowledge of PHP. There was a good series of modX site creation instructions on the coding pad blog (just google with "coding pad modx tutorial".) I gained most of working knowledge on MODX from this internet resource. The said tutorial get you going on constructing a database driven web site in relatively short time. Note that I also evaluated Joomla and Drupal at the same time, loaded them on the server and tried them out. In the end I chose MODX over them, mainly it allowed a direct transition from html based web site to dynamic web site. Other systems force you to set up the site their way. With MODX, I did not need to rewrite my html markup, my menu structure and/or my thought process. Infinite amount of fine tuning as to how the web site should look is possible with MODX.
During the course I started to learn PHP to appreciate the power of MODX. Thanks to my knowledge with JavaScript, learning PHP was not difficult. What was difficult was the way MODX let you utilize PHP in "MODX way"
I bought Bob's book the moment it came out. Aside from usual stuff that tells you how to build website without any coding, the most strong point of his book is about how you can vastly improve your site with a little PHP coding and let the MODX engine (with APIs that you can tap) take care of otherwise hard programming exercise.
This is a thick book. You need to skim through the book and get a feeling of what is available inside. Then while you are working on creating a site, and have some questions, you can go to the excellent table of index at the back and find a topic, read them through and apply to your project.
Case in point. Recently I needed a method to dynamically insert a CSS file at the <head> section of particular pages. I remember seeing modx->regClientCSS in the online MODX page, but there was not much of an information other than the mention this can insert a CSS file. Enter Bob's book. Here is what is shown in this entry.
reg* - The following five methods insert CSS,JS, or HTML at various points of a document. In all cases, the script is registered with MODX so that it won't be injected more than once. Multiple scripts are injected in the order in which they are reigstered.
regClientCSS(string $src) - Places the string just above the closing </head> taf of the document. If $src contains '<link'or '<style', it will be insereted a writttn. Otherwise it will be wrapped as follows;
'<link rel="stylesheet" href="'. $src . '" type="text/css:" >'
This chunk of information turned out to be the exact information that I wanted to know. In another word;
1) Multiple calls to this method will not result in multiple references to the same CSS. the function takes care of itself as "required once"
and
2) parameter can be not only a file path but also a string that actually contains style tag and attributes "<style>..</style>"
I could have eventually gain this knowledge by googling Internet I am sure. but it could cost me half an hour or more.
The book is packed with this type of information. I constantly going back to the book when I am working on the site. Indispensable.