Start reading The Pragmatic Programmer: From Journeyman to Master on your Kindle in under a minute. Don't have a Kindle? Get your Kindle here.

Deliver to your Kindle or other device

 
 
 

Try it free

Sample the beginning of this book for free

Deliver to your Kindle or other device

Read books on your computer or other mobile devices with our FREE Kindle Reading Apps.
The Pragmatic Programmer: From Journeyman to Master
 
 

The Pragmatic Programmer: From Journeyman to Master [Kindle Edition]

Andrew Hunt , David Thomas
4.1 out of 5 stars  See all reviews (28 customer reviews)

Digital List Price: £26.30 What's this?
Print List Price: £33.99
Kindle Price: £21.04 includes VAT* & free wireless delivery via Amazon Whispernet
You Save: £12.95 (38%)
Unlike print books, digital books are subject to VAT.

Formats

Amazon Price New from Used from
Kindle Edition £21.04  
Paperback £28.89  


Product Description

Amazon.co.uk Review

Programmers are craftspeople. They are trained to use a certain set of tools(editors, object mangers, version trackers) to generate a certain kind of product (programs) that will operate in some environment (operating systems on hardware assemblies). Like any other craft, computer programming has spawned a body of wisdom, most of which isn't taught at universities or in certification classes. Rather, most programmers arrive at the so-called tricks of the trade over time, by independent experimentation. In ThePragmatic Programmer, Andrew Hunt and David Thomas codify many of the truths they've discovered during their respective careers as designers of software and writers of code.

Some of the authors' nuggets of pragmatism are concrete, and the path to their implementation is clear. They advise readers to learn one text editor, for example, and use it for everything. They recommend the use of version-tracking software for even the smallest projects, and promote the merits of learning regular expression syntax and a text-manipulation language. Other (perhaps more valuable) advice is softer. The authors note in their section on debugging, "if you see hoof prints think horses, notzebras". That is, suspect everything, but start looking for problems in the most obvious places. They offer some advice on making estimates of time and expense, and on integrating testing into the development process. You'll want a copy of The Pragmatic Programmer for two reasons: It displays your own accumulated wisdom more cleanly than you ever bothered to state it and it introduces you to methods of work that you may not yet have considered. Working programmers will enjoy this book.

Topics covered: A workmanlike approach to software design and construction that allows for efficient, profitable development of high-quality products. Elements of the approach include specification development, customer relations, team management, design practices, development tools, and testing procedures. The authors present their approach with the help of anecdotes and technical problems. --DavidWall, amazon.com

Product Description

Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process—taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how to

  • Fight software rot;
  • Avoid the trap of duplicating knowledge;
  • Write flexible, dynamic, and adaptable code;
  • Avoid programming by coincidence;
  • Bullet-proof your code with contracts, assertions, and exceptions;
  • Capture real requirements;
  • Test ruthlessly and effectively;
  • Delight your users;
  • Build teams of pragmatic programmers; and
  • Make your developments more precise with automation.

Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.


Product details

  • Format: Kindle Edition
  • File Size: 2563 KB
  • Print Length: 352 pages
  • Publisher: Addison-Wesley Professional; 1 edition (20 Oct 1999)
  • Sold by: Amazon Media EU S.à r.l.
  • Language English
  • ASIN: B000SEGEKI
  • Text-to-Speech: Enabled
  • Average Customer Review: 4.1 out of 5 stars  See all reviews (28 customer reviews)
  • Amazon Bestsellers Rank: #24,521 Paid in Kindle Store (See Top 100 Paid in Kindle Store)
  •  Would you like to give feedback on images?


More About the Authors

Discover books, learn about writers, and more.

What Other Items Do Customers Buy After Viewing This Item?


Suggested Tags from Similar Products

 (What's this?)
Be the first one to add a relevant tag (keyword that's strongly related to this product)
 
(1)

Your tags: Add your first tag
 

Customer Reviews

Most Helpful Customer Reviews
54 of 55 people found the following review helpful
By A Customer
Format:Paperback
Many years ago, I visited a friend and slept in their spare room. I found a book on their shelves called "Programming Pearls". (You've probably heard of it; it's a classic.) I sat up half the night reading it.

A few days ago, I visited a bookshop and bought this book. I sat up half the night reading it. In a few years, I think it might be as famous as "Programming Pearls". It certainly reminds me more of "Pearls" than does any other book I can think of.

The book is a whirlwind tour of a wide range of interesting topics. (Examples, chosen at random by opening the book to random pages: "tracer bullets", a variety of exploratory programming; the advantages of plain-text representations of data; how to handle resources like memory and open files; how to apply the old GUI technique of separating "models" and "views" to things that have nothing to do with user interfaces; how to organise a project team; the value of exceeding expectations.)

The writing is clear and lively. The authors have a keen sense of humour and a fine feel for apposite quotations.

The book is structured as a series of 46 sections, in 8 chapters. Along the way, they give 70 brief tips (random examples: "Don't Repeat Yourself"; "Estimate to avoid surprises"; "Write code that writes code"; "Separate views from models"; "Don't use wizard code you don't understand"; "Expensive tools do not produce better designs"; "Sign your work"). There's a pull-out card in the back of the book that contains all the tips, and a few "checklists" too.

I only found one typo. The typography is pretty good, although I happen to detest the main typeface they've used. The binding is bad; it looks fine, but (on my copy, at least) the covers have a distressing tendency to curl outwards. The pull-out card at the back is difficult to pull out without damaging anything.

I gave some random examples earlier. Here are a few highlights.

1. An excellent attack on what they call "programming by coincidence": being happy when your system works even if you don't know why it works.

2. A discussion of the benefits of automation: code generators, text munging tools to massage your source code, automated test suites and the like.

3. The multitude of little insights scattered through the book: even in sections whose topics I already knew plenty about, there were usually one or two startling observations or neat tricks or insightful points of view.

Lowlights? Because the book covers such a lot of ground, they have to skim over a lot of issues (but don't misunderstand me; there's plenty of meat here). And the two purely mechanical things I mentioned above. I think the only two sections I learned nothing from were the ones on Algorithm Speed (which I think is rather shallow) and Refactoring (which does have some not-generally-known ideas in it; but I've just finished reading Martin Fowler's book on refactoring).

Neophytes will learn a lot from the book. Old hands ought to know most of what's in here, though too many don't; those who do will still find enough that's new to justify the price, and have a lot of fun reading it.

A fine book: enjoyable and instructive.

Comment | 
Was this review helpful to you?
47 of 48 people found the following review helpful
Thought - Provoking 12 Mar 2003
Format:Paperback
Like most guides, methodologies, or insights this book is best taken as something thought-provoking, rather than prescriptive. It covers a lot of ground in a relatively short space, applying its basic principal to day-to-day software engineering as opposed to just programming.

The key principal is one that I (and most people) probably subscribe to, perhaps even subconsciously, which is called 'DRY', which stands for 'Don't Repeat Yourself'. The difference is that the authors explain how to apply this to _all_ aspects of your job, not just the obvious one which is code re-use and sharing.

In general, the message seems to be 'invest time in the short term to automate and increase efficiency in the long term'. A sensible message, but one that many people (and I most definitely include myself here) avoid doing because of the initial time and effort involved in learning the required technologies and implementing the automation (Emacs and Perl for example).

Other advice I particularly agreed with was the importance of recognizing limitations of methodologies and diagram-types, and using them as a guide and communication medium rather than as an end in themselves. I also really liked the sections on decoupling, which has a nice introduction to JavaSpaces - a really cool paradigm for certain classes of problem.

In summary, this is not really a reference book - instead it's a 'memory-jogger', reiterating many things you already know at some intuitive level, but fail to follow - up due to external pressures or just plain homeostasis.

Comment | 
Was this review helpful to you?
69 of 72 people found the following review helpful
Format:Paperback
I am an old hand in the programming theater now - I started as a professional in 1979. I have read many books and attended many conferences and discussions on the subject of programming. Some books were OK, most was too filled with specific coding details to be of any value. Until now, I have only read two books that I feel is any good in describing the programming activities. The first book is only in Danish and was released in 1979 (I still have it). The second book is this one!

I will imidiately agree with some of the negative reviewers that the book states "the obvious". But that is the whole point, dammit! I do know that I should not do so-and-so, but I still do the bad thing occasionally. The book shows me - gently! - other ways.

Some may be irritated because of the elementary stuff and simple language (and "no examples"), but if you need examples, you have perhaps not that many years of practical experience. I, at least, do not feel the need.

Some say that the book is part of the eXtreem Programming paradigm. Well, no - I think the book to be unrelated to a particular school of thoughts. Instead it is a book that every programmer can relate to.

Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
Boring but useful.
Really, I found the book boring. Still, it taught me a lot of things, but I dint't appreciate it until several months later. Read more
Published 1 month ago by J. I. Seco Sanz
"From Novice to Journeyman"
First off, this book is excellent in how it was written and how it presents its material. That said, I haven't given this book five stars because it doesn't quite live up to it's... Read more
Published 2 months ago by C. Sprague
Inspiring and well-written
The book is humorously written, in brief to-the-point chapters, which are largely self-contained, making it easy to navigate and look things up at a later point. Read more
Published 11 months ago by Buffer
Improve your skills as a developer
This book is similar to "Coder to Developer": Gives advice on a lot of topics to improve your skills as a developer (to stop being a simple developer and get into the path for an... Read more
Published 14 months ago by Kartones
Certainly an enjoyable, feel-good book, but, I'm not convinced that it...
The ideas presented are still very relevant today despite the examples being rather dated. The writing style puts ideas across in a clear, easy to read manner. Read more
Published 15 months ago by stevie
Great for any passionate programmer trying to improve
Great great book for anyone trying to become a better programmer.

It really does a great job at transmitting the general principles that can help making better software,... Read more
Published 20 months ago by Tibal
read it!
....even if you think you know everything already.

Among the many things this book tells you to do is that you should learn a new language every year. Read more
Published 23 months ago by M. Casanova
The Pragmatic Programmer
An excellent read, tho a little heavy going if you're going to try and read it like a novel. If you're a senior developer, it contains a lot of information you would probably... Read more
Published on 6 Jan 2010 by JW
Thought provoking
There were plenty of good reviews for this book so I thought I'd give it a crack. My reactions to it were mixed. Read more
Published on 30 Dec 2009 by M. Smith
Very good tips!
This book is a useful collection of good practices that will help programmers at improving their software skills and designs. Read more
Published on 20 Oct 2009 by M.I.
Search Customer Reviews
Only search this product's reviews

Popular Highlights

 (What's this?)
&quote;
EVERY PIECE OF KNOWLEDGE MUST HAVE A SINGLE, UNAMBIGUOUS, AUTHORITATIVE REPRESENTATION WITHIN A SYSTEM. &quote;
Highlighted by 203 Kindle users
&quote;
Two or more things are orthogonal if changes in one do not affect any of the others. &quote;
Highlighted by 176 Kindle users
&quote;
Prototyping generates disposable code. Tracer code is lean but complete, and forms part of the skeleton of the final system. &quote;
Highlighted by 160 Kindle users

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 

Search Customer Discussions
Search all Amazon discussions
   



Look for similar items by category


Look for similar items by subject


Amazon Media EU S.à r.l. GB Privacy Statement Amazon Media EU S.à r.l. GB Delivery Information Amazon Media EU S.à r.l. GB Returns & Exchanges