I generally do not like and I would not recommend the cobbled: Here are the exception because this book is a real gold mine. It is already copy of the pedagogical point of view: concepts are introduced and widely supported progressivment examples, against-examples and warnings. Learning is long but reading so nice we advance without even realizing it. Introduction to UML is also a great idea as quickly allows to link analysis and programming, the two are inseparable. A book that I recommend to all frankly programmtion beginners who want to start with good habits!