Most helpful customer reviews
14 of 14 people found the following review helpful.
Towards A Pixel to Metal Perspective
By Puneet S. Lamba
[This is an excerpt of my review published in ACM ComputingReviews.com]
Becoming proficient at web application development involves a very steep learning curve and is often a never-ending, career-long endeavor. And yet a newbie has to start somewhere. When getting started, it’s easy to become overwhelmed by the vast array of concepts, technologies, and tools one has to master.
Often, even proficient web application developers have blinders on when it comes to having a broad perspective on web application development. In general, most developers are adequately familiar with only one or two of the following aspects of web application development: client-side programming, middleware programming, server-side programming, text editors/integrated development environments (IDEs), source/version control systems, data stores, operating systems, network programming, and hardware configurations. Few developers have a broad enough perspective--or what I call a 360-degree “pixel to metal (P2M)” worldview--of web application development.
At less than 300 pages, Purewal’s book may seem short, but it manages to introduce the reader to a surprisingly wide array of concepts, technologies, and tools. And in doing so, the author does a great job of spending just the right amount of time on each topic, gradually building on previously explained topics to construct increasingly sophisticated web application snippets in each successive chapter.
This is a very thoughtfully put together book. There are very few typographical errors or inconsistencies, which is difficult to achieve in a book on programming. Exercises at the end of each chapter stimulate the reader to take on additional challenges, and some of the exercise results are leveraged in future chapters (for example, finding the number of occurrences of a string in an array of strings). There are useful pointers to further reading at the end of each chapter. Most of the book’s code is available on GitHub, organized by chapter.
Unfortunately, past chapter 6 (on Node.js) things start to get a bit light on details. On page 229, we connect to the Amazerrific data store in Mongo, but we never created the data store! Also, on GitHub, the code only goes up to chapter 6. So, at this crucial juncture, the reader is left to his or her own devices. We have a pretty decent to-dos app, but it has no ability to persist the to-dos. So, the next time you launch the app, all your to-dos are gone! (So, I took it upon myself to address the gaps--Google my GitHub to see a working demo with source code.)
Whereas the author champions RESTful application programming interfaces (APIs), working through a project as I did will surely cause you to realize the shortcomings of an approach that attempts to use HTTP methods to imply which CRUD operation is taking place. A fundamental gap is that the four HTTP methods don’t have uniform behavior. For example, an HTTP POST (meant to be used for updates) embeds parameters in the request body whereas an HTTP GET (meant to be used for gets or selects) places parameters on the uniform resource locator (URL). Apart from security and aesthetic considerations with placing parameters openly on the URL, it is unpleasant to not be able to work with uniform programming paradigms for these four HTTP methods either on the client side (jQuery doesn’t have a $.put() method) or on the server side (Express).
3 of 3 people found the following review helpful.
Outstanding introduction for non-web app developers
I highly recommend this book to anyone who is already experienced in something other than web app development and wishes to quickly introduce him or herself to the field. In my opinion, the primary benefit from the book is the emphasis on the various layers (e.g. client side, web server, database repositories, communications between the layers, etc.) that are involved within web app development. This begins to frame the range of considerations and responsibilities that are expected within this type of development. This delineation can help focus one's efforts when beginning to focus their subsequent studies. This is why I think that the complaint by another review that "[t]he book is targeted at someone who has basic programming skills who wants to learn to build a basic web app" is unfair and actually what makes this book excellent.
Besides the broad understanding that this book provides, the secondary benefit that the books provides is its description of a whole range of software tools that are useful at the various infrastructure levels (including the use virtual machines) which are relevant to many developers (admittedly not all developers) as of 2014. Naturally the tools will change with time, but the main ideas and techniques that are introduced are likely, in my opinion, to survive for years to come.
As to whether this book is appropriate for brand new developers is a tough call. For a new developer, it will be challenging to consider the big picture that is introduced in this book, and the various tools that are demonstrated to provide an end-to-end demonstration web app. That is a daunting task. Fortunately, the book is loaded with references for further learning, including suggestions about pre-requisites and where they can be found for free.
I currently know of no better single book on web app development that teaches so much so quickly. If your style of learning is to start off with breadth and later go for depth then this is an outstanding place to start.
2 of 2 people found the following review helpful.
See all 40 customer reviews...
An excellent start for a would-be front end developer
By P. Mumford
One thing Purewal does not cover is any front end framework, such as Backbone, Angular, React, etc. I think after finishing this, you would be ready to move on to one of those choices. For my own work, I started using Angular shortly after finishing this book.
I would give this 5 stars but the book is unfortunately too short. Is an awesome start, but there is a lot more ground to be covered. Maybe there will be a sequel. I'm hoping.
 I've upped my rating from four to five stars. Looking over the book again, I think this book succeeds perfectly in its objective: to launch beginners into the world of application development. And although its short, Purewal does cover all the key topics, and provides links for further study. I'm benefitting from a second working of the book now.