*Starts with the most useful concepts rather than the most primitive ones: You can begin writing programs immediately. *Describes real problems and solutions, not just language features: You see not only what each feature is, but also how to use it. *Covers the language and standard library together: You can use the library right from the start.
The authors proved this approach in their professional-education course at Stanford University, where students learned how to write substantial programs on their first day in the classroom.