I have a pet peeve, I keep it under my desk. ;') It is the overuse of delay() in books, websites, and videos about the Arduino.http://arduino.cc/en/tutorial/blink
If you notice, even on that page it tells you to move on to Blink Without Delay.http://arduino.cc/en/Tutorial/BlinkWithoutDelay
Using delay() to time events is like using the emergency brake on your car to drive. It isn't scalable, it seems simpler but in the end it overcomplicates things, and it brings everything to a halt. Yet I see entire series of programs written on tutorial websites, in books, and in videos using delay() to debounce switches, time LEDs, control motors, etc. And in each case, it leaves you with a single task program that is nearly impossible to expand to do more things asynchronously.
I have -not- found this to be true of Arduino for Teens, but as the author says, it is for people who've already been doing some programming. I'm still working my way through it, it covers a lot of information about interrupts, a subject usually difficult to find.
Other than that, I have not found a single beginner's book on Arduino that I can recommend. Most authors seem rushed to get out a book to cash in on the craze.
I would say do as suggested here, start with the Learning section of Arduino.cc. Don't get stuck on Blink - move on. Spend a lot of time on Blink Without Delay, when you get there. Really get your head wrapped around using the millis() and micros() clocks to time events. It makes things -much- easier to do later.http://arduino.cc/en/Tutorial/HomePage
In that context, I would recommend Arduino for Teens, and Arduino LCD Projects by Robert J Davis II. It is not a beginner's book. But after you've learned some programming, it is a good book on using LCDs from the alphanumeric 1x8 to full color graphic LCDs, and it -doesn't- overly use delay().http://www.amazon.com/Arduino-LCD-Projects-Robert-Davis/dp/1490980709/ref=sr_1_1?ie=UTF8&qid=1402673307&sr=8-1&keywords=arduino+lcd+projects+robert+j+davis+ii