The Pragmatic Programmer: From Journeyman to Master

The Pragmatic Programmer: From Journeyman to MasterWard Cunningham 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 Youll 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 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 Youre A New Coder, An Experienced Programm

Andrew HuntAndy Hunt is a programmer turned consultant, author and publisher.He co authored the best selling book The Pragmatic Programmer ,was one of the 17 founders of the Agile Alliance, and co foundedthe Pragmatic Bookshelf, publishing award winning and criticallyacclaimed books for software developers.Andy started writing software professionally in early 80 s acrossdiverse industries such as telecommunications, banking, financialservices, utilities, medical imaging, graphic arts, and of course,the now ubiquitous web.Source .com

❮PDF / Epub❯ ☄ The Pragmatic Programmer: From Journeyman to Master Author Andy Hunt –
  • Paperback
  • 321 pages
  • The Pragmatic Programmer: From Journeyman to Master
  • Andy Hunt
  • English
  • 18 March 2017
  • 9780201616224

10 thoughts on “The Pragmatic Programmer: From Journeyman to Master

  1. says:

    This is essentially a self help guide for programmers, the kind of book that enumerates the habits of Good and Happy People and makes you feel slightly guilty about not practicing most of them, but probably won t result in you forsaking your evil ways and stepping on the path toward Nirvana Hunt and Thomas are friendly but occasionally annoying gurus Their cloying metaphors boiled frogs, etc and kitsch jokes are offputting, and some of their advice borders on insult One assumes that when they devote a whole section to interpersonal communication that they are targetting the particularly closeted and uncouth breed of computer geek recently emerged from the dark and brutish cave of high school, struggling to make headway in a world full of messy, inconsistent, emotional people who don t even know how to reverse grep an Apache log.That said, I think there are nuggets of good advice for everyone all over the book Programming, like reading and writing, is ultimately a private, personal activity, and to be honest, most of us software engineers were that closeted high school nerd at some point, and draw upon that focused, single minded persona when we do things like coding, so there are lessons to be learned from taking a step back occasionally and examining the craft, as Hunt and Thomas do They are, as I said, occasionally infuriating, but even their silly aphorisms and mantras are usually memorable what software engineer isn t constantly trying to stay DRY I ve no doubt I ll be flipping through it again in the future, especially when I feel like I ve hit a wall, fell in a rut, or found myself exploiting tired and hackneyed idioms that don t do the English language any justice.

  2. says:

    While many complain about already knowing everything in the book, or that it s outdated, I believe they are quite missing the point Perhaps this book didn t speak to you at the point you are at in developing your skills and crafts, but it might speak to someone else just beginning Rating the book low for the reason it wasn t what you needed is rather disingenuous, as a rating should be a guide to the quality of the book overall The information contained in this book is essential for software developers who want to develop their skills and knowledge into a craft worthy of renown, to become masters of the field It is essential for anyone working in a team or working solo.The book is dated in the specific examples it uses, as would any book become so dated What is not dated are the principles, the tips, the stories, the wisdom of this book.As I was reading it, it felt all so familiar Yes, most anyone who has been at the craft of software development will probably recognize much of this I felt like the authors had been following me around during my consulting practice in the 90s as they pull from the same stories, lore and practice that I taught Reading this book now, in 2012, I recognize all this and am grateful for the review One may know a lot of practices, but having a refresher on the extent of what matters in software development helps.As I approach a new team, a new job, I am looking to convey a lot of these concepts to people who may have only been cursorily exposed to them, and develop the team into a high quality, high craftsmanship group This book will aid in that quite a bit, I hope although the Russian translation may be lacking.If you are just starting out, read this book.If you are in the midst of your career, read this book.If you are an experience veteran of the craft, or feel yourself a master, read this book, THEN TEACH IT.

  3. says:

    I no longer have any need for mentors or friends now that I have AVClub the AVQA and Gateways to Geekery columns in particular , Quora, and Stack Overflow.Case in point That I found this book Over the past couple of years I have been gradually writing and less gradually maintaining a code base for separate projects It s getting the point where I might as well figure out what the hell I m doing So I go to Stack Overflow and find my way to a question like What programming book do you wish you had read early in your career This book is the top answer.The think I like about this book is that it is very high level and it makes a lot of sense They make their point and move on But that doesn t mean they aren t touching on some key issues in knowing what they hell you are doing When I found myself thinking, yeah yeah, that s when I knew I needed to slow down and pay attention Unlike most books on coding, this one has aged will age very well.Out of the many good points made in this book, three of them are my main motivation lately 1 Don t keep separate copies of important code or data Eventually they will get out of sync and lead to madness This is summed up as the DRY principle Don t Repeat Yourself 2 Automate everything possible If you are following 1 , you will wind up doing 2 out of necessity.3 Keep everything, even the dinkiest script, under source control With tools like Dropbox that have a packrat option, this is easier than ever But a formal source control system is preferable.With these three principles you can pretty much bootstrap yourself to any level of competency Now I look at the regular manual tasks that I perform and others perform with utter disdain And I understand why Doc Brown automated feeding his dog in Back To The Future It is the only way forward.I bought this book to read on a flight to NY But I found it so motivating that a few chapters into the book I got out my laptop and started implementing the ideas that were popping in my head Good stuff Their love of Perl strikes me as a little misguided, but who am I to judge

  4. says:

    4.0 Good for new programmersThis seems to be a favorite in the office, so before I participating in the recommending of this book to new hires, I figured I should check it out first There is definitely some good stuff in here, but most won t be new for anyone who s been programming professionally for 2 or 3 years or I think most engineers problems is that they don t do what they know is the right thing.I think many people have said this before, but at the risk of duplication I ll say that the book contains a lot of common sense codified The other interesting bits are the suggestions for ways to behave as a good engineer Thing is many of them feel like personality traits than things you can learn or decide to do.such as learn new things languages, editors, frameworks see how things work if something s broken find out why, don t just get tests passing if you find rotten code, refactor try to learn keyboard shortcuts write time saving scripts and tools like Robert just did automate everything especially testing test hardBut if you want to be better and don t do some of these, maybe reading this will remind you how important it is to do them.

  5. says:

    For a total beginner, the concepts will be difficult to internalize For a seasoned programmer on a good team , it will be little than a general reinforcement While it s hard to imagine the right time in one s career to read the The Pragmatic Programmer probably, often , it s a classic It s written at a high enough level that very little material is outdated In fact, some of the arguments ring much truer now than they would have in 1999.See this review and others on my blog

  6. says:

    Who is this book for Certainly not for experienced, skilled software developers Considering myself at least experienced, I found most of the material in this book a rehash of methodologies and techniques I ve used for than a decade Granted, there were a few gems here and there, but mostly I was bored because I didn t learn anything new.One has to respect that this book is from 1999, so in that perspective, it must have been quite ground breaking Had I read it in 1999, I wouldn t have known any of these things.The question is, though would I have been able to use this book for anything back then While I found myself agreeing with lots of advice given in the book, I also found that the reason I could agree with so much is that the advice is so vague that you can read your own interpretation into it.Perhaps you could view that as a strength of the contents It attempts to plant a lot of seeds into the readers minds, without ever being prescriptive or dogmatic In that sense, it lives up to its titular pragmatism.Still, it leaves me with the feeling that if you don t already know how to work in this way, will you be able to learn it from the book I don t think so.As an overall observation, it seems that most of what the authors call pragmatic programming is simply what s later become known as agile development Thus, I have much respect for the authors in 1999, they were certainly at the bleeding edge of modern software development perhaps they still are today , but I don t think the book stands the test of time.

  7. says:

    This is my favorite non technical tech book It explores good software development practices In my opinion it is than just a checklist of what you should do it literally changed my approach to development with positive results.Others have mentionned that they already knew most of the things in this book, and practice these good habits in their development environments I ve worked in dozens of environments ranging from very successful experienced companies, to fly by night operations that have no business writing code Any one of these environments would have been vastly improved if some of these practices were incorporated And in several environments, I was able to introduce some of these concepts which led to increases in productivity and happiness If you and your organization already does everything in this book, and you see it as a ho hum read, congratulations to you For the rest of us, I think this is chocked full of high level abstract concepts that will improve any development environment It s communicated in a very straight forward manner, and also advises you to take a pragmatic approach to everything only using the things that make sense in your situation.Overall, a wonderful book.

  8. says:

    In fact, it s a good book if you re just beginning to program I ve just read it late, so it contains nothing new to me I can t imagine that there are software developers who don t know about practices described in this book Besides, it s already outdated RCS Really.As to Russian edition of this book, it s translated very badly, it s almost unreadable.

  9. says:

    I have changed my job after reading this book So be careful

  10. says:

    I didn t like the structure of the book Some of the concepts were vaguely presented I was also bored a little bit while reading it.Some notesChapter 1 A Pragmatic PhilosophyTip 3 Provide Options, Don t Make Lame ExcusesBefore you approach anyone to tell them why something can t be done, is late, or is broken, stop and re evaluateTip 4 Don t Live with Broken WindowsDon t leave broken windows bad designs, wrong decisions, or poor code un repairedTip 5 Be a Catalyst for ChangeStart with something, hot water with stones to make a soup and slowly people will be adding ingredients to your water and see how useful it can beTip 6 Remember the Big PictureConstantly review the project, look out for the big pig picture, things can deteriorate pretty fastTip 7 Make Quality a Requirements IssueGood software today is better than perfect or great software tomorrow, give your users something to play with and evolve from thereTip 8 Invest Regularly in Your Knowledge PortfolioLearn a new language, read a technical book every quarter, read non technical books too, take classes, participate in local user groups, stay current, experiment with different environmentsTip 9 Critically Analyze What You Read and HearTip 10 It s Both What You Say and the Way You Say ItChapter 2 A Pragmatic ApproachTip 11 DRY Don t Repeat YourselfDuplication can happen when it s imposed by the environment, when developers don t realize they re duplicating code, when we get lazy, code duplicated across different teamsTip 12 Make It Easy to ReuseThrough the following Tip 13 Eliminate Effects Between Unrelated Things Orthogonality unrelated modules should be self contained and independent, if you change one, the others shouldn t change dramaticallyTip 14 There Are No Final Decisions Reversibility Tip 15 Use Tracer Bullets to Find the Targetget the code out thereTip 16 Prototype to LearnPrototyping is a learning experience Its value lies not in the code produced, but in the lessons learned That s really the point of prototyping.Tip 17 Program Close to the Problem domainTip 18 Estimate to Avoid SurprisesTip 19 Iterate the Schedule with the CodeChapter 3 The Basic ToolsTip 21 Use the Power of Command ShellsLearn some shellTip 22 Use a Single Editor WellTip 23 Always Use Source Code ControlTip 25 Don t PanicTip 27 Don t Assume It Prove ItTip 28 Learn a Text Manipulation LanguageChapter 4 Pragmatic ParanoiaTip 30 You Can t Write Perfect SoftwareTip 31 Design with ContractsThe caller must not pass variables which violate the conditions example sending negative numbers to sort It s not the responsibility of the method itself Tip 32 Crash EarlyTip 33 If It Can t Happen, Use Assertions to Ensure That It Won tTip 34 Use Exceptions for Exceptional ProblemsChapter 5 Bend or BreakTip 36 Minimize Coupling Between ModulesBy following the law of Demeter a function should only act on it s parameters, objects it creates, methods in the object it creates Symptoms of ill code Developers afraid of changing the code because they re aren t sure what might be affected Tip 37 Configure, Don t IntegrateTip 41 Always Design for ConcurrencyTip 42 Separate Views from ModelsChapter 6 While You Are CodingTip 44 Don t Program by Coincidenceplan, document, testTip 45 Estimate the Order of Your AlgorithmsTip 46 Test Your EstimatesTip 47 Refactor Early, Refactor Often Don t try to refactor and add functionality at the same time Make sure you have tests first Tip 48 Design to TestWhen you design a module, or even a single routine, you should design both its contract and the code to test that contractTip 49 Test Your Software, or Your Users WillTip 50 Don t Use Wizard Code You Don t UnderstandChapter 7 Before the ProjectTip 51 Don t Gather Requirements Dig for ThemTip 52 Work with a User to Think Like a UserTip 53 Abstractions Live Longer than DetailsTip 55 Don t Think Outside the Box Find the BoxIs there an easier way Are you trying to solve the right problem, or have you been distracted by a peripheral technicality Why is this thing a problem What is it that s making it so hard to solve Does it have to be done this way Does it have to be done at all Tip 56 Listen to Nagging Doubts Start When You re ReadyBut how do you tell if you re procrastinating or if it s a good judgment to wait A technique that has worked for us in these circumstances is to start prototyping Either you ll be bored and start doing the real work or that you realize something isn t right and you ll find a solutionTip 57 Some Things Are Better Done than DescribedAs a Pragmatic Programmer, you should tend to view requirements gathering, design, and implementation as different facets of the same process the delivery of a quality system Distrust environments where requirements are gathered, specifications are written, and then coding starts, all in isolationChapter 8 Pragmatic ProjectsTip 62 Test Early Test Often Test Automatically.Tip 63 Coding Ain t Done Til All the Tests RunTip 65 Test State Coverage, Not Code CoverageTip 66 Find Bugs OnceTip 67 Treat English as Just Another Programming LanguageTip 68 Build Documentation In, Don t Bolt It OnTip 69 Gently Exceed Your Users Expectationstake the extra mileTip 70 Sign Your Work

Leave a Reply

Your email address will not be published. Required fields are marked *