Front-End Web Development

Author: Chris Aquino, Todd Gandee
Publisher: Big Nerd Ranch Guides
Pages: 478
ISBN: 978-0134433943
Print: 0134433947
Kindle: B01J3RV0BI
Audience: Wannabe Front-end programmers
Rating: 4
Reviewer: Ian Elliot

 

A Big Nerd Ranch book is big - is it also everything you need to know about front-end development?

Front-end development is a fairly new subject. It is essentially creating programs in the browser that the user interacts with. The back end is the software that runs on the server that interacts with the front end software. The biggest problem with front-end software development is that you need to know what is going on at the back-end to interact successfully with it. This book focuses on the art of front-end development and takes the back end as mostly someone else's problem.

Banner

This book is an odd mix of the very simple introduction and the very complex examples. It is a bit like learning that atoms exist and then tackling a project to build a nuclear reactor. Yet there are plenty of places where it isn't for the expert either because it explains some very simple things. The book starts off with setting up a development environment and the choice is the trendy Atom editor - does no one use an IDE any more? This also means you have to install Node.js, which is in some ways the opposite of front end.

Chapter 2 gets started with the technology and we have a very simple introduction to HTML and CSS. For me it was far too simple and far too incomplete to be helpful. We also meet the first of a number of largish examples.

The book proceeds by introducing some very simple things and then launches into a big example that often makes use of much more than has just been explained. It can also be difficult to see what is going on because there are many lines of code. This is learning by example and not learning by concepts. As long as you are happy with this approach you will get a lot out of this book but you will have to work very hard. A concept based approach doesn't suit everyone but when it does it usually succeeds in transferring the knowledge and skill much faster than simply working though examples.

 

 

Chapter 3 is a scatter gun introduction to CSS. You get some very basic ideas, a lot is introduced that isn't explained and if you don't know about selectors and the ideas of CSS all you are going to get from this chapter is a collection of seemingly unrelated techniques. The reason for this is that only things that are needed to implement the example are explained - or rather demonstrated. To give you some idea of what goes on there is a section a the end of the chapter titled "For the more Curious: Specificity! When Selectors Collide". To my mind the way selectors work is central to mastering CSS and just to put it in as something for the curious at the end of the chapter just doesn't do it justice.

Chapter 4 deals with responsive layouts, which is a difficult topic.  The flexbox is the main topic. Chapter 5 adds media queries to the mix and it has another "for the curious" sections which I think should be covered as a central concept in the chapter.

Chapter 6 introduces JavaScript event handling. Despite having a brief introduction to the language you really need to know what it is all about, otherwise you aren't going to get far. The chapter is a non-logical mix of topics that don't really fit together but this is in the nature of an introduction by example. So for example we have an introduction to string variables followed closely by how to access DOM element.

From here the book becomes increasingly oriented towards tasks rather than technologies. Chapter 7 is about visual effect with CSS but strangely it is mostly about JavaScript rather than CSS.

Part II of the book open with a look at advanced JavaScript. Chapter 8 introduces modules, Chapter 9, shows (rather than explains) how to create forms with Bootstrap and Chapter 10 uses JavaScript to process them. On the way we are introduced to jQuery.  Chapter 11 is called from Data to DOM and is a collection of techniques needed to implement a particular example. Chapter 12 is about validating forms and Chapter 13 is about Ajax using jQuery. From here we move on to using jQuery Deferred and without much warning JavaScript Promises. The example-based approach makes it harder to see the wood for the trees.

Part III of the book is about real-time data but it really doesn't seem to be a focused as this suggests. Chapter 15 is about using node.js which is, as far as I'm concerned a back-end topic. Chapter 16 is about WebSockets and 17 and 18 are about ES6.

Part IV is called Application Architecture and it covers the usual topics that are relevant to the MVC model. Chapter 19 is about using Ember for MVC; 20 is about routing; 21 is about models; 22 is about data adaptors; 23 covers Views and templates; 24 controllers; and 25 is about components. A short Afterword wraps up the book.

This is a very large and sprawling book. This is partly because front-end development presents so many choices and so many levels at which you can work - select a technology, a framework for this, a framework for that, an architecture and then there are all the tools you could use.  The technological sprawl is not the book's fault, but it could do more to present a tighter view of front-end development. Should do you work with raw HTML/CSS and JavaScript or should you use ember, react or whatever the latest hot technology is?  However the book lacks a logical organization because its organization is determined by the examples that it presents and hence technologies are introduced just to make that particular bit of the example work. If you want a logical organization then the examples have to follow from the topics, not the other way round.

The most important thing to know is that this book is light on explanation and heavy on example.  It really is learning by doing and for me this is inefficient, slow and tiresome, but if you want to learn n this way then this is a good example of the method. As a result I can't recommend this book but I have given it a reasonably high rating as a good example of learning by doing.

 

To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.

Banner


Math for Programmers (Manning)

Author: Paul Orland
Publisher: Manning Publications
Date: January 2021
Pages: 688
ISBN: 978-1617295355
Print: 1617295353
Audience: Python developers interested in math
Rating: 4
Reviewer: Mike James
Of course you need to learn math, don't you?



Bare Metal C

Author: Steve Oualline
Publisher: No Starch Press
Date: August 2022
Pages: 304
ISBN: 978-1718501621
Print: 1718501625
Kindle: B08YJB9BCF
Audience: C programmers
Rating: 3
Reviewer: Harry Fairhead
Bare metal C sounds exciting and very basic. Time to find out how the machine really works.


More Reviews

Reviews of Big Nerd Ranch Guides

Android Programming: The Big Nerd Ranch Guide (2e)

iOS Programming: The Big Nerd Ranch Guide

 

 

Last Updated ( Tuesday, 06 June 2017 )