Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
Programming IT Technology

Book Recommendations For A New Programming Shop? 19

Posted by Cliff
from the starting-out-with-the-right-books dept.
QwkHyenA asks: "I'm a new programmer who has been working for a DOD government contracting company for 2 years now. We started off with 2 programmers in house and will move up to 6-8 within the next 3 months. What books/resources can help me with setting up a real programming shop (i.e. language references, CVS, Do's & Don'ts...)"
This discussion has been archived. No new comments can be posted.

Book Recommendations For A New Programming Shop?

Comments Filter:
  • XP is based on a really happy intersection of novelty and practicality. There are lots of strange new ideas in these books, but they really deliver.

    For something a bit more basic, but equally concerned with results check out "The Pragmatic Programmer" by Andrew Hunt and David Thomas. This book nailed down lots of points about programming for me. It would be especially useful for a new shop because it would give your crew a common vocabulary for the fundamentals.

    --Tim

  • Once you start adding a number of people to a project you need to start thinking about how best to create a good working environment and how to manage people. Such soft skills are just as crucial as figuring out programming standards or which software tools to standardize on. I'd highly recommend the following:
    "Peopleware: Productive Projects and Teams" (2nd ed) by Tom DeMarco and Timothy Lister
    "Extreme Programming Explained" by Kent Beck

    You may not agree with everything in these books but nonetheless they offer a lot of ideas to consider. I would suggest that is much easier to overcome poor software tools than poor project management and leadership.

  • For any programmer/team that wants to get a handle on how they do things, how long they take, where the defects come from and where they are found, there's probably no better beginning that the techniques of Watts S. Humphreys, starting with Introduction to the Personal Software Process [204.179.152.61]. I like the price at FatBrain [fatbrain.com].
  • XP has a lot of good ideas. Not all of them should be applied to all projects, but some of the more 'radical' ideas should at least be considered. I work at a hardware company, and so some of the assumptions that XP is based on don't apply to us, but we still use various XP techniques from time to time because they are helpful.

    I would also stand behind 'The Pragmatic Programmer'. While it it is focused much more on the individual programmer, it has sound advice that applies to just about any programming work environment

    - Mike

  • Certainly if you are doing managment of any kind, you must read Mythical Man-Month (try and get the reprint with extra chapters). But I would also encourage you to read (after MMM) either 'The Cathedral and the Bazzar' by Eric Raymond or one of the 'Extreme Programming' books. The reason that I suggest this, is that some things have changed since MMM was written (namely large open-source projects) and a lot can be learned by understanding how those projects were 'managed' and why they were so successful. I think it is important to get grounding in MMM first, then learn about how to potentially do better than MMM implies you can do.

    - Mike

  • It sounds like you're looking for software design and development practices. If so, Steve McConnell has written several excellent and very accessable books on the topic. (You can get more details on the books at <http://www.construx.com/stevemcc/>.)

    In particular, his "Software Project Survival Guide" does a great job of describing a good process you should follow to give your software the best chance possible of shipping on time, within budget, and with as few bugs as possible. I especially like that Steve is not dogmatic about his approach; he readily admits that not everyone is going to find it a panacea. However, it *is* a very good place to start, especially if you're new to professional software development. Once you've followed his recommendations on a few projects you'll know enough to know when you should deviate from those recommendations.

    When dealing with developers who have recently graduated from college, or those that haven't worked with more than a couple other developers, I've found that this book provides excellent guidance. Most of this kind of developer just don't understand why and how formal policies and procedures are important, but this book makes intelligent arguments that are quite persuasive. (Some folks will never get it, though, and the best thing you can do is get rid of them as quickly as possible before their ways doom the project.) I bought copies for every person on my development teams and had weekly reading assignments that we'd discuss over beers on Friday afternoons. It made for great conversation and learning!
  • What language(s), what Operating System(s)?

    For any language Programming Pearls by Jon Bently(Addison-Wesley) is great.

    For Linux-
    The Unix Programming Environment by Brian W. Kerninghan and Rob Pike(Addison-Wesley)

    If your using ANSI/ISO C++ then:

    • C++ Primer, Third Edition, by Stanley B. Lippman and Josee Lajoie(Addison-Wesley)
    • The C++ Programming Language by Bjarne Stroustrup(Addison-Wesley)
    • The C++ standard Library, A Tutorial and Reference by Nicolai M. Josuttis(Addison-Wesley)

    If you are using C++ and Windows I'm moving to Canada. And you should have The Official Reference Library for Microsoft Visual C++ 6.0(Microsoft Press)

    In my opinion these books kick ass.

    --
    Spelling by m-w.com [m-w.com].

  • Ugh! Watts S. Humphrey. (Note: Not "Humphreys", which everyone, including myself until last month, usually says). I recognize some of the things he's brought to the software engineering industry, but I just don't agree with many of his practices. PSP, while a good idea conceptually, is almost never used due to practicality. If I'm writing down everything I've done and in the last hour (including interruptions), then I'm losing time doing the things that I'm sitting there writing about! Not to mention, Watts Humphrey represents everything that I HATE about S/W Engineering. I'm not saying the things he professes are wrong, just that I hate them. I'm currently reading two books by him (Managing the Software Process, An Introduction to the The Team Sofware Process) in my S/W Eng Process class at RIT [rit.edu] and I can't stand them. They are so dry and boring and seemingly dated even though one of the books was published just this year! I'm reading his team version of PSP (TSP) and it basically incorporates all of the bad things about PSP into a team-oriented environment, which according to Fred Brooks makes everything all the more inefficient. So I would personally say avoid Watts Humphrey books like the plague. If you want to learn about SW Process, read Fred Brooks.
  • For overall coding efficiency and insight, I warmly recommend "The Pragmatic Programmer". Not linked to any programming language or paradigm in particular, it explains the secrets of the trade in clear and concise terms. I have given this book to others regularly, and rookie and veteran coders alike benefit from the advise in the book.

  • In reference to the Programming Pearls comment: My name is Dan Bentley, Jon Bentley is my father and I've read this book about 37 and a half times in helping to proof read it. I'm currently a freshman and I'm taking an intro programming class and I understood all of the examples (given mainly in pseudocode) and the concepts help me to break down the problems for my class, which is exactly what software engineering is. It's a great book and doesn't take more than a couple of days to read, even at low priority. On other notes, The Practice of Programming by Kernighan and Pike as well is a useful book.
  • Thank you kindly. Will look into it. Happy Holidays!
  • If I only had 100 yrs of Solitude! I get more folks walking in asking what's up with the router, is my system ready yet, why won't Outlook export my Calendar? and my favorite...Is the mail server down? Then actual quite time...Coding time...

    Ah...

    To ONLY program!

    Happy Holidays!

  • I think I have enough reference material to fill a small library (when I walk into Barnes&Nobles, they meet me at the door with a Latte :)

    I will look into the book Programming Pearls thou.

    I'm looking more for ways to keep our shop operating smoothly and keep us all from straying off the project path (i.e. Who's doing what, is anyone breaking someones else's code and are we using enough comments?! :P)

    Languages used here are:

    C++

    Sun's Java 1.2

    *whispers* VB (not by choice thou!)

    Thanks,

    QH

  • You're the second person to mention an Extreme book. I'll definitely look that one up!

    Thanks,

    QH

  • These last few (okay several!) posts are just what I'm looking for! I need to know more about the 'Process' of S/W development versus the actual coding part. I've got the coding part down pretty well, but the management/timelines/work env$ parts are getting tricker to deal with and are only getting worse.

    Thanks to everyone for their help on this matter!

    Happy Holidays to Everyone!!

    QH

  • _Refactoring_ by Martin Fowler
    anything by Laura Lemay
    _The Design of Everyday Things_ (aka The Psychology of Everyday Things)
    _One Hundred Years of Solitude_ by Gabriel Garcia Marquez



    • The Art of Computer Programming, D. Knuth
    • The Mythical Man-Month, Brooks
    • Programming Pearls, Bentley
    • An Introduction to Database Systems, Date
    • The Science of Programming, Gries
    • Software Reliability: Measurement, Prediction, Application, Musa

    I would also look through the publication catalogs of the ACM and the IEEE Computer Society.

  • The basic set of books I recomend for a company library are:

    • The C Programming Langauge - Kernighan & Ritchie, Prentice Hall
    • The Standard C Library - P.J. Plauger, Prentice Hall
    • The UNIX Programming Environment - Kernighan & Pike, Prentice Hall
    • The Practice of Programming - Kernighan & Pike, Addison-Wesley
    • The Elements of Programmiing Style - Kernighan & Plauger, McGraw-Hill
    • The Mythical Man-Month - Fred Brooks, Prentice Hall
    • Peopleware DeMarco & Lister, Droset House Publishing
    • The Cathedral and the Bazaar - Eric Raymond, O'Reilly & Assoc.
    • C+C++ Programming with Objects in C and C++ - Allen Holub, McGraw-Hill
    • Enough Rope to Shoot Yourself in the Foot - Allen Holub, McGraw-Hill
    • Tog on Software Design - Bruce Tognazzini, Addison-Wesley
    • Tog on Interface - Bruce Tognazzini, Addison-Wesley
    • Managing Projects with make - Oram & Talbott, O'Reilly & Assoc.
    • Open Source Development with CVS - Karl Fogel, Coriolis Inc.
    This set covers a wide range of topics, from bare language issues, through design and coding practices, all the way up to project and corporate management issues. You may need to supplement these books with a few more that address specific fields of interest to your business (my list is a bit short on web, C++ and unix system programming books, for example), but these are a good start.
  • Bjarne Stroustrup's The C++ Programming Language, Third Edition has some chapters at the very end which are about software development and management. Very much worth reading, and it's applicable to just about any programming language or development environment.

Dead? No excuse for laying off work.

Working...