Learning Web App Development: Build Quickly with Proven JavaScript Techniques

Learning Web App Development: Build Quickly with Proven JavaScript Techniques
By Semmy Purewal

List Price: $34.99
Price: $20.70 Details

Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com

76 new or used available from $10.66

Average customer review:
(42 customer reviews)

Product Description

Grasp the fundamentals of web application development by building a simple database-backed app from scratch, using HTML, JavaScript, and other open source tools. Through hands-on tutorials, this practical guide shows inexperienced web app developers how to create a user interface, write a server, build client-server communication, and use a cloud-based service to deploy the application.

Each chapter includes practice problems, full examples, and mental models of the development workflow. Ideal for a college-level course, this book helps you get started with web app development by providing you with a solid grounding in the process.

  • Set up a basic workflow with a text editor, version control system, and web browser
  • Structure a user interface with HTML, and include styles with CSS
  • Use JQuery and JavaScript to add interactivity to your application
  • Link the client to the server with AJAX, JavaScript objects, and JSON
  • Learn the basics of server-side programming with Node.js
  • Store data outside your application with Redis and MongoDB
  • Share your application by uploading it to the cloud with CloudFoundry
  • Get basic tips for writing maintainable code on both client and server

Product Details

  • Amazon Sales Rank: #96209 in Books
  • Brand: imusti
  • Published on: 2014-03-03
  • Released on: 2014-03-03
  • Original language: English
  • Number of items: 1
  • Dimensions: 9.19" h x .69" w x 7.00" l, .0 pounds
  • Binding: Paperback
  • 306 pages


  • O Reilly Media

Editorial Reviews

About the Author

Semmy Purewal spent about a decade teaching computer science and working as a freelance JavaScript consultant. During that time, he worked with a diverse group of clients that included startups, nonprofits, and research labs. These days, he primarily works as a software engineer in San Jose, CA.

Customer Reviews

Most helpful customer reviews

15 of 15 people found the following review helpful.
5Towards 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.

That’s why Semmy Purewal’s new book is a highly welcome and valuable contribution. Along similar lines, at the New England Java Users Group (NEJUG, Boston), in August 2013, I presented a technology stack and sample application with source code for end-to-end web application development. After my presentation, I had wished to write a book similar to this one. Alas, I had neither the time nor the energy to see it through. However, the stack I presented was a polyglot stack, including JavaScript for client-side development, Java for server-side development, and a relational database. Purewal’s book somewhat simplifies the learning curve, to the extent that’s possible, by choosing an entirely JavaScript-based stack.

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.

Here’s a listing of the concepts, technologies, and tools this book introduces: Sublime, Git, GitHub, Chrome, Linux, Hypertext Markup Language (HTML), cascading style sheets (CSS), JavaScript, jQuery, JSON, Ajax, VirtualBox, Vagrant, Node.js, Express, PuTTY, hypertext transfer protocol (HTTP), Redis, MongoDB, Mongoose, and Cloud Foundry. As a result, it is not only ideal for novices, but also helpful for experienced developers looking to plug gaps in their P2M perspective of web application development.

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.

The author uses two major themes for most of the exercises and code examples. The first is a to-do list that the user can build, tag, and categorize by tags. The second is a poker hand evaluator that is used to demonstrate how best to leverage some of JavaScript’s built-in functions. Other smaller examples involve consuming JSON feeds from Yahoo, Flickr, and Twitter. I got some of the harder exercises working on my machine, and found the code examples to be accurate and helpful. The author follows a certain discipline for each project, including checking code into GitHub at regular intervals, which is good for developers to emulate.

Along the way, the author manages to impart useful information on programming best practices, especially with respect to JavaScript, which is central to the programming environment that this book is sculpted around.

A few words of caution. If you’re using the Internet Explorer browser (for example, because your employer only allows IE), you won’t get the full experience. IE’s JavaScript console is much inferior to that of Chrome. On IE 9, for example, I was not able to drill down into JavaScript objects in the way that Chrome permits. Also, many of the longstanding Node.js modules, for example, Express, have been broken up into their component modules, which have to be installed and linked separately. So, the code in the book isn’t going to work as is, but it will point you in the right direction.

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).

One area the author seems to omit completely is security. I don’t expect a book to be able to cover all topics, but the author does a great job of alluding to important concepts even when he isn’t planning to cover them in depth (for example, JavaScript Promise APIs). I believe readers ought to be given as complete a list of to-dos (pun intended!) required to make even a simple application production-ready. Furthermore, authentication and authorization are definitely must-haves.

4 of 4 people found the following review helpful.
5Outstanding introduction for non-web app developers
By Santos
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.
5An excellent start for a would-be front end developer
By P. Mumford
This is a very good book on web application development in javascript. If you are just starting out, and want to learn the whole stack (HTML, CSS, Javascript, and all the little bits on how to set up your development environment), this is the book you need. Purewal ties the whole thing together, and he does it gradually. You probably won't get flooded (often).

I am a front end developer, and I bought this book for the second half, on javascript. What I really like about this book is that Purewal gets the importance of Javascript, and where it fits into web apps these days. This is different from other javascript texts that read like they were written for a different era (they probably were) when JS was a bit of a rogue language. This book was written for 2015, which is the era of the javascript framework, when the all cutting edge shops want javascript devs. Javascript has become the top language of the web.

The middle section also happens to the the single best into-to-javascript text that I know of. First Purewal has the reader doing simple DOM manipulation with jquery. Then he switches to vanilla JS, and has the reader create simple arrays and objects, and create functions to do stuff with them. His answer to the common question "to jquery or not to jquery", his answer is both. Which I think if is the right answer.

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.

[edit] 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.

See all 42 customer reviews...

Manage research, learning and skills at IT1me. Create an account using LinkedIn to manage and organize your IT knowledge. IT1me works like a shopping cart for information -- helping you to save, discuss and share.

  Contact Us  |  About IT1me.com |  IT Training & References |  IT Careers |  IT Hardware |  IT Software |  IT Books