[OT sort of] Recommended Reading

Discussion in 'C++' started by Michael, Oct 15, 2004.

  1. Michael

    Michael Guest

    What books would you guys put as essential reading on your book shelves? For
    instance I think that "Code Complete", "Effective C++" and "Design Patterns"
    have all greatly improved my c++.
    Any thoughts??
    Mike
     
    Michael, Oct 15, 2004
    #1
    1. Advertising

  2. Michael

    David Hilsee Guest

    "Michael" <> wrote in message
    news:ckn6je$b7j$...
    > What books would you guys put as essential reading on your book shelves?

    For
    > instance I think that "Code Complete", "Effective C++" and "Design

    Patterns"
    > have all greatly improved my c++.
    > Any thoughts??


    "The C++ Programming Language" and "Modern C++ Design" are excellent books.
    Sutter's "Guru of the Week" articles are also good, as are his books (e.g.
    "Exceptional C++"). "The Design and Evolution of C++" answers a lot of
    questions concerning why the language is the way it is. Also, "Large Scale
    C++ Software Design" provides (sometimes outdated) guidance for developing
    larger C++ programs. I'd say that all of these books are great, and I'd
    rank them in the order that I listed them.

    --
    David Hilsee
     
    David Hilsee, Oct 15, 2004
    #2
    1. Advertising

  3. "Michael" <> wrote in message
    news:ckn6je$b7j$...
    > What books would you guys put as essential reading on your book shelves?
    > For
    > instance I think that "Code Complete", "Effective C++" and "Design
    > Patterns"
    > have all greatly improved my c++.
    > Any thoughts??
    > Mike
    >


    'More Effective C++' is also excellent.

    john
     
    John Harrison, Oct 15, 2004
    #3
  4. Michael

    JKop Guest

    Michael posted:

    > What books would you guys put as essential reading on your book
    > shelves? For instance I think that "Code Complete", "Effective C++" and
    > "Design Patterns" have all greatly improved my c++.
    > Any thoughts??
    > Mike



    Well, just for perspective, I've learned more in this newsgroup than I have
    in any book. . .


    -JKop
     
    JKop, Oct 15, 2004
    #4
  5. Michael

    Michael Kurz Guest

    "Michael" <> schrieb im Newsbeitrag
    news:ckn6je$b7j$...
    > What books would you guys put as essential reading on your book shelves?

    For
    > instance I think that "Code Complete", "Effective C++" and "Design

    Patterns"
    > have all greatly improved my c++.
    > Any thoughts??



    For C++ I liked:
    [1] Object Oriented Programming in C++ , Josuttis N
    [2] The C++ Programming Language
    [3] Excpetional C++
    [4] Modern C++ Design


    Language independent:
    [5] Design Patterns, GoF
    [6] Pragmatic Programming, Hunt A

    Wheres [6] in my case lead automatically to:
    [7] Perl programming, Larry Wall
    [8] Programming Ruby, Hunt A (you see I like Andrew Hunt's book)
    [9] Lexx & Yacc, Helmut Herold (I have it in German, dont know if its
    available in English as well)


    Regards
    Michael
     
    Michael Kurz, Oct 15, 2004
    #5
  6. Michael

    osmium Guest

    Michael posted:
    >
    >> What books would you guys put as essential reading on your book
    >> shelves? For instance I think that "Code Complete", "Effective C++" and
    >> "Design Patterns" have all greatly improved my c++.
    >> Any thoughts??
    >> Mike


    I would certainly include the printed version of _C++ FAQs_ by Marshall
    Cline in any list of must reads for C++/
     
    osmium, Oct 15, 2004
    #6
  7. Michael

    Phlip Guest

    Re: Recommended Reading

    [Books are on-topic, guys...]

    Michael wrote:

    > What books would you guys put as essential reading on your book shelves?

    For
    > instance I think that "Code Complete", "Effective C++" and "Design

    Patterns"
    > have all greatly improved my c++.
    > Any thoughts??


    Reposted from c.l.c++.mod:

    M Plus Plus! wrote:

    > I've read the sams publishing Teach yourself c++ in 21 days.. can anyone
    > recommend any more books to aid me in my quest of becomming a proficient
    > C++ programmer?


    Within each category, I sort in order from entry-level to advanced. Note
    that some books (shamefully) reference languages other than C++. Learn the
    languages and read the books to become a better C++ programmer.

    These books introduce some topics they probably didn't teach you in
    school...

    Firstly, books directly about C++ coding and designing:

    * Accelerated C++: Practical Programming by Example by Andrew Koenig &
    Barbara E. Moo
    * Effective C++ 2nd Edition by Scott Meyers
    * More Effective C++ by Scott Meyers
    * The C++ Programming Language 3rd Edition by Bjarne Stroustrup
    * Large Scale C++ Software Design by John Lakos
    * Scientific and Engineering C++: An Introduction with Advanced Techniques
    and Examples by John J. Barton, Lee R. Nackman
    * C++ Coding Standards: Rules, Guidelines, and Best Practices by Herb Sutter
    & Andrei Alexandrescu
    * Modern C++ Design: Generic Programming and Design Patterns Applied by
    Andrei Alexandrescu
    * Exceptional C++ by Herb Sutter
    * More Exceptional C++ by Herb Sutter


    Next, books about design:

    * Design Patterns: elements of reusable object-oriented software by Gamma,
    Johnson, Helm, & Vlissides
    * Refactoring: Improving the Design of Existing Code by Martin Fowler
    * Refactoring to Patterns by Joshua Kerievsky
    * Smalltalk Best Practice Patterns by Kent Beck
    * Domain Driven Design: Tackling Complexity in the Heart of Software by Eric
    Evans
    * The Art of Computer Programming by Knuth


    Books about the culture of programming around the source code:

    * Lean Software Development: An Agile Toolkit for Software Development
    Managers by Mary Poppendieck and Tom Poppendieck
    * Extreme Programming eXplained: Embrace Change, 2nd Edition, by Kent Beck
    * Agile Development: Principles Practices and Patterns by Robert C. Martin

    * AntiPatterns: refactoring software, architectures, and projects in crisis
    by Brown, Malveau, McCormick & Mowbray
    * The Pragmatic Programmer: From Journeyman to Master by Andy Hunt & Dave
    Thomas
    * Rapid Development: Taming Wild Software Schedules by Steve McConnell


    How to preventing long open-ended debugging sessions:

    * Test-Driven Development: By Example by Beck
    * Code Complete 2nd Edition by Steve McConnell
    * Test Driven Development: A Practical Guide, by Dave Astels
    * How to Break Software: A Practical Guide to Testing by James A. Whittaker


    Specific programming scenarios:

    * C++ GUI Programming with Qt 3 by Jasmin Blanchette & Mark Summerfield
    * Developing International Software 2nd Edition by Dr. International
    * Working Effectively with Legacy Code by Mike Feathers


    /C++ GUI Programming with Qt 3/ is especially noteworthy because, unlike
    most other GUI Toolkits, C++ does not wrap Qt. Its inventors architected Qt
    directly in C++, using only the finest OO idioms.

    The TDD books are especially noteworthy because, as you start writing
    programs larger than a couple modules, you will discover that most
    programmers spend most of their time debugging. The solution to this
    connundrum is so simple it shouldn't need a book, but our industry has a lot
    of "antipatterns" to overcome. The solution is to write tests for every kind
    of behavior you need, to only add code when you can get a test to fail, and
    to use Undo if a test fails unexpectedly (and you don't feel like applying a
    light amount of debugging). Replacing our advanced interactive debuggers
    with an Undo button helps code's behavior never depart from a known state.
    Prevention is better than a cure.

    The Refactoring books are significant because, no matter how smart you are,
    you will always write code whose design could be improved after you read it.
    You could fight this effect, by planning on paper for a long time, or you
    can leverage it. Refactoring fits TDD like a glove.

    Smalltalk (and Python & Ruby) is a strongly typed dynamic language. C++ is
    an almost-strongly typed static language that introduces generics to cover
    some dynamic typing abilities. Curiously, the higher level your code, the
    more dynamic typing you need. Dynamic typing means that foo.bar() will
    compile and execute no matter what type 'foo' is, so long as it has a method
    'bar()'. This works as if all objects inherited a common interface, Object,
    that magically declared every possible method.

    Curiously, the big software vendors keep pushing statically typed languages,
    Java & C#, while high-level code, such as GUI code or business-logic code,
    typically must bend over backwards to provide dynamic typing. Free and
    powerful languages, such as Ruby, supported entirely by their own programmer
    communities, are going to teach these big software vendors a thing or to.

    --
    Phlip
    http://industrialxp.org/community/bin/view/Main/TestFirstUserInterfaces
     
    Phlip, Oct 15, 2004
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Guadala Harry
    Replies:
    4
    Views:
    377
    Steve C. Orr [MVP, MCSD]
    Sep 12, 2004
  2. nobody
    Replies:
    0
    Views:
    539
    nobody
    Jun 1, 2004
  3. JerryJ
    Replies:
    11
    Views:
    1,407
    Dave Moore
    Apr 28, 2004
  4. nntpman68
    Replies:
    2
    Views:
    269
    Roedy Green
    Mar 11, 2008
  5. Navin
    Replies:
    1
    Views:
    699
    Ken Schaefer
    Sep 9, 2003
Loading...

Share This Page