Poorly Explained Book

Sorry for being blunt on this, but just want to offer some feedback on this book. I think its very poorly explained. Instead of giving a good background understanding of fundamental Android concepts and even a basic syntax explanation of Kotlin in general (I’m not expecting a comprehensive explanation since there’s a Kotlin Apprentice, but I think readers are entitled to some basic explanation like null checkers, val vs vars, companion objects), the whole book is more like “Do this, now do this” kind of written format.

Take a look age page 207 for example.

    view?.let {
listItemsRecyclerView =
it.findViewById<RecyclerView>(R.id.list_items_reyclerview)
listItemsRecyclerView.adapter = ListItemsRecyclerViewAdapter(list)
listItemsRecyclerView.layoutManager = LinearLayoutManager(activity)
}

You ask the reader to enter this code segment, but you made no explanation of what is the “activity”. You never even mention that each fragment has a implicit reference to the parent activity (via the getActivity()) call.

You also never even bother to explain what is the relation between context or activity. You never even bother to explain what a context is and what are its uses?

Overall, I’m very disappointed in this book and it pales deeply in comparison with other high quality books in the Ray Wenderlich collection like iOS Apprentice which I am a big fan.

I hope Ray Wenderlich will improve the quality of the books before rushing for a release or even early development release. Even your Kotlin Apprentice which was scheduled for a full release by May 2018 doesn’t even have a full release yet so obviously something is broken in the development pipeline.

I really appreciate the effort by the development team in writing this book. So I hope you all will take my feedback to make future editions better and not take it as a affront to the effort that went into producing this book which I’m sure was not an easy feat.

I encourage the authors to follow the format, and written style of the iOS Apprentice. Every segment is very properly explained and the author attempts to give a solid background understanding before diving into the code segment. Other very good Android development books are the Big Nerd Ranch Android Development or the Busy Coder’s Guide to Android development.

4 Likes

Hi @robertqin,
It is sad to see your expectations being met short. Your feedback will definitely be included in the continual effort to better the quality of the services provided.

cheers,

Jayant

Hi @robertqin,

On behalf of the Android Apprentice team, I want to thank you for your honest feedback. We know how hard it is to provide others with constructive criticism when it can be easily taken the wrong way.

I can assure you we’re listening, and we appreciate you sharing your thoughts. We always want to hear from our readers to make sure Android Apprentice is going in the right direction we intend.

The team went through your post together and want to provide an explanation for each of your points. To help everyone reading this to understand our thoughts and feelings as we’ve wrote this book over the past year, as well as where we intend to go with the book going forward.

Encouraging the authors to follow the format and written style of the iOS Apprentice

When the team sat down to plan the structure of the book. iOS Apprentice was one of the books we took influences from.

It’s a brilliant resource for beginners to iOS, or rather a brilliant resource for a complete beginner to programming in general. It’s a book we know we can recommend to friends if they want to get into programming.

In contrast, Android Apprentice is not a book for beginners to programming. Android Apprentice has the sole aim of teaching readers about developing for Android. Some programming experience is assumed.

Despite this we appreciate the more powerful features of Kotlin are not common knowledge. To help with this we provide in-line notes in the book where we can to explain some of the Kotlin specific tricks used.

A good example of this is where we explain to the reader what .let does in the early sections of the book.

Lack of explanations in the book

In the beginning of the book, we assume no knowledge of Android development or the tools used for development.

The first few chapters contain specific instructions to the reader, to make sure they understand what is going on at the right time.

As the book progresses, we intentionally try not to repeat old topics that the reader has already learnt about in earlier chapters.

We feel this allows us to direct the readers focus to the chapter topic at hand. If they aren’t familiar with a snippet of code in a later chapter or need a refresher, then there is an entire earlier chapter dedicated to the topic, waiting for them to read with no distractions.

We do accept that Contexts are not explained in the book, this is a topic we definitely want to explore in future editions of the book.

I hope that helps provide insight into our approach for Android Apprentice. Every member of the team loves this book, we want it to be the best Android book available on the market.

We hope we can count on you to continue the conversation with us and continue to offer honest feedback.

Thanks,

Darryl

2 Likes

I have read the book and taken the video courses as well. If you watch the video courses you’ll be more disappointed than the book. The instructor literally just instructs to put code snippets here and there, without much explanation. One example is that the instructor follows MVP which is something that should have been explained before implementing it in the project. There is zero explanation of this pattern and all you learn is paste or type code snippets here and there. I have gone through many video course for iOS and they are very different than their Android Video course series. I am an iOS developer and was very excited by the Android Avalanche but now I’m rather disappointed.

Thank you for the feedback, Vakas. We’re continuously working on improving the course content based on feedback like yours.

In terms of using MVP, in part we decided to avoid putting all the app code into the app Activity classes in order to try to show the viewer a better way to structure your code, even if MVP and other architecture patterns were not the focus of any given course. We’ve tried to strike a balance between focusing on the course content, but also using best practices in development of the sample apps.

We have MVP, MVVM and other patterns in development as tutorials and courses, so hopefully those will also be a step in the right direction for what you’re looking for. Thanks again!

I kinda agree with the original poster. This also happens to the kotlin apprentice as well as the Unity Games By Tutorials books.

I mean some advanced readers might not feel or agree with what I state in this post. But if the purpose of the book is aimed towards beginners, I think the authors should assume nothing of the readers. In other words, to be rough, assume the readers are STUPID.

A book should contains at least three parts. First more illustrations (pictures), the better and I believe ray wenderlich has done a good job, but it could be better. Then, second, provide code and the instructions, and third comes a long-winded and thorough explanation.

As a reader, I really hope there is a book that could teach or even just by reading it then will we be able to understand or learn without having to try the code sample or using a physical computer. The reason I am saying this is because we are not always positioned in front of the computer. By providing pictures along with the instruction and explanation even without a computer at hand, we could still learn something (A step by step illustration).

I stumbled on this thread while looking for reviews on the Ray Wenderlich books which are on sale atm.

Not to jump on the bandwagon of the OP, but I find this true of a lot of the video courses for Android. They start off well enough, but then the middle and end parts are very muddled, and I usually end up not finishing the tutorial, because it won’t compile or I don’t understand it enough to even know how to fix it.

I think one of the reasons has to do w just asking the learner to just copy and paste the code, whether it be via git clone or code snippet w/o explaining the thought process. There’s probably a segment of learners to find this ok, but for myself, it’s about understanding the fundamentals so that I can do things for myself in the future.

I would prefer tutorials that covers less but walks the you through the why aspect as well.

2 Likes

I want to say first off that I really appreciate your candor and transparency. Even though I’m going to give critical feedback, the only reason I’m bothering to is because I genuinely feel that based off your posts in here that they will be heard, evaluated, and iterated on to improve the product.

I’m really curious how this concept in the quote ever lived past the first meeting.

If you named the book after the iOS Apprentice, you already were building the expectation on the approachable skill level you needed to target for Android Apprentice. Having the qualifier that “iOS Apprentice is a great book for people new to programming in general… Android Apprentice is not a book for beginners” should have been the first canary in the coal mine that this book was not up to the quality expectation that had already been established.

I hope in a retrospect you can see that making that assumption when creating this book was a crucial pain point that set up a negative reception before the book was even published.

Even if I take your assumption of a background in programming and this book is meant to be an introduction the the Android platform, this book still falls short of that goal. It feels like the Android team wanted to make a feature complete book to iOS Apprentice, instead of focusing on it really being a good introduction.

To add in my own criticism thus far (Chapter 11 is where I am now), I hate, hate, hate how often the authors are allowed the freedom to have the reader type in code of undefined things. I get every now and then doing it, but I was CONSTANTLY looking at my IDE wondering why a symbol was unresolved. Did I typo it? Did I need to add an import? Am I in the wrong file? I had to skim below where I was reading to figure out if it was my mistake of the author was omitting it for later.

I would much rather type information that will be used “later” than stuff we are about to add. Or if you find that that approach is not constructive toward teaching, at least give some sort of visual cue in the printed source that you should expect that symbol to be undefined.

But let me add something I do like about the book. I like the repeating. I like seeing the same code listed (inflating views, setting recycler adapters, etc). Those all seem to be really common tasks you do, and the more I type them the more natural it becomes and I can shed that “What the hell is this new thing” block I always have with new code. When this book does take the time to explain some concepts, I think it does a good job. I’ve read a few passages and exclaimed out lout “Oh, I get it. I see where you’re going with this, yup, yup, yup”. Feeling like you know where the book was going made me feel smart and I got that excitement to keep going in the book, even if I had been doing it a while and was getting tired. It refueled me. Those elements are there in Android Apprentice, but there needs to be more of them.

I’m going to complete the book and maybe offer more feedback if I feel it’s helpful. This isn’t a bad book, but it falls short of the iOS Apprentice expectations. I think that’s going to throw a lot of people. I think if you cut some design patterns from the book, or even made it a two parter and did target the iOS Apprentice audience, you’d have a lot better feedback.

I loved the iOS books, and I was really happy that Ray Wenderlich was doing Android guides. Thanks for the book and I’ll keep checking back on other Android topics.

1 Like

Hi mrbass21,

Thank you for your kind and honest thoughts. I’m glad to hear you’re finding some enjoyment in going through the book.

I’d like to focus on the points raised about the content of the book. We’re putting together a list of improvements for the next edition, and we’re looking at feedback from readers on the forum.

You have a good point about reducing confusion around undefined symbols when following the code samples in book. We intend for the book not to leave readers feeling confused, it sounds like we can improve on this.

It also sounds like having more concepts explained ahead of time before diving straight into the code would be helpful. That’s something we’re aware of and can look at adding for the next edition.

We’ll take these ideas forward. If there’s any other feedback, please let us know. We want to make Android Apprentice the best beginners book for Android it can be!

Darryl