Series: Head First
Paperback: 498 pages
Publisher: O'Reilly Media; 1 edition (January 11, 2008)
Language: English
ISBN-10: 0596527357
ISBN-13: 978-0596527358
Product Dimensions: 8 x 1 x 9.2 inches
Shipping Weight: 2.4 pounds (View shipping rates and policies)
Average Customer Review: 4.3 out of 5 stars See all reviews (37 customer reviews)
Best Sellers Rank: #143,893 in Books (See Top 100 in Books) #31 in Books > Business & Money > Management & Leadership > Project Management > PMP Exam #180 in Books > Textbooks > Computer Science > Software Design & Engineering #410 in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development
I've read and reviewed several of the "Head First" series of books on programming languages and software design, so I thought I would give this one a try too. Unlike so many books on software development, this one doesn't start with a terse and rather useless overview chapter. Instead it clearly tells you who this book is for: Those who have a background in programming, specifically Java, who want to learn techniques for building and delivering software. First the book explains the Head First concept in learning - using puzzles, cartoons, graphics, and anything else that should stick in your head to explain the usually dry topic of software engineering.The first three chapters - "Great Software Development", "Gathering Requirements", and "Project Planning" - talk about how software development usually goes wrong and talks about some of the methods for organizing your efforts. Chapter 4 puts some of these ideas in motion when the book analyzes the development of a mythical application, iSwoon. The book has the application get into serious trouble and then shows you the way out of the abyss using good software design methodology. Next, the book has you adding features to "BeatBox Pro", which is an application from the "Head First Java" book. This is where your ability to understand Java code comes into play. The book also discusses the use and usefulness of the Ant build tool for Java projects. However, this is a book on how to approach the design of the software, not how to perform the detailed coding, so having somewhat rusty Java skills should be acceptable. Throughout the book are puzzles, Q&A sessions, and "There are no dumb question" sessions that really drive home the points being made. The following is the table of contents for the book:1.
When I first looked at Head First Software Development by Dan Pilone and Russ Miles, I was thinking that it would be best targeted at people who had never formally written software before. It definitely fits that bill. But I can see a use for experienced developers who have never been exposed to agile development techniques. Either way, it's a very good book.Contents:IntroGreat Software Development: Pleasing Your CustomerGathering Requirements: Knowing What The Customer WantsProject Planning: Planning For SuccessUser Stories and Tasks: Getting To The Real WorkGood-Enough Design: Getting It Done With Great DesignVersion Control: Defensive DevelopmentBuilding Your Code: Insert Tab A Into Slot B...Testing and Continuous Integration: Things Fall ApartTest-Driven Development: Holding Your Code AccountableEnding An Iteration: It's All Coming Together...The Next Iteration: If It Ain't Broke... You Still Better Fix ItBugs: Squashing Bugs Like A ProThe Real World: Having A Process In LifeAppendix 1 - Leftovers: The Top 5 Things (We Didn't Cover)Appendix 2 - Techniques and Principles: Tools For The Experienced Software DeveloperThe authors do a great job of covering the entire software development process, from getting requirements to debugging code. But instead of going back to the older and more traditional waterfall method of software development, they chose to expose the reader to the agile methodology. Personally, I think that's a great decision, as it gets across important techniques such as story cards, iterations, and test-driven development. Learning those skills as the primary way to build software goes a long way towards prepping the new developer for the marketplace.
Software Engineering Classics: Software Project Survival Guide/ Debugging the Development Process/ Dynamics of Software Development (Programming/General) Head First Software Development Agile Software Development with Scrum (Series in Agile Software Development) Surreptitious Software: Obfuscation, Watermarking, and Tamperproofing for Software Protection: Obfuscation, Watermarking, and Tamperproofing for Software Protection Global Software Development Handbook (Applied Software Engineering Series) Object-oriented software development: Engineering software for reuse Object-Oriented Software Engineering: Practical Software Development Using UML and Java Agile Project Management: Agile Revolution, Beyond Software Limits: A Practical Guide to Implementing Agile Outside Software Development (Agile Business Leadership, Book 4) Star Wars: Head to Head Who Wins?: 100 Historical Figures Go Head-to-Head and You Decide the Winner! Just a Little Girl: How a Clinical Death Brought a Teenage Girl Face-to-Face With An Angel and Head-to-Head with Her Faith (Morgan James Faith) Illustrated Anatomy of the Head and Neck, 3e (Fehrenbach, Illustrated Anatomy of the Head and Neck) Over My Head: A Doctor's Own Story of Head Injury from the Inside Looking Out Coldplay - A Rush of Blood to the Head (Rush of Blood to the Head Pvg) Star Wars: Head to Head Tag Teams Head First Android Development Microsoft Management Console Design and Development Kit (DV-MPE Software Development Kits) Agile Project Management: QuickStart Guide - The Simplified Beginners Guide To Agile Project Management (Agile Project Management, Agile Software Development, Agile Development, Scrum) Agile Product Management (Box Set): User Stories & Product Backlog 21 Tips (scrum, scrum master, agile development, agile software development) Agile Product Management: User Stories: How to capture, and manage requirements for Agile Product Management and Business Analysis with Scrum (scrum, ... development, agile software development)