Books for learning how to write "big" programs

Discussion in 'Python' started by duli, May 22, 2008.

  1. duli

    duli Guest

    Hi:
    I would like recommendations for books (in any language, not
    necessarily C++, C, python) which have walkthroughs for developing
    a big software project ? So starting from inception, problem
    definition, design, coding and final delivery on a single theme
    or application.

    Most of the code I have written and books that I have read deal with
    toy programs and I am looking for something a bit more
    comprehensive. For example, maybe a complete compiler written in C++
    for some language, or a complete web server or implementing
    ..net libraries in some language (just a few examples of the scale of
    things I am interested in learning).

    Thanks!
    Duli.
    duli, May 22, 2008
    #1
    1. Advertising

  2. duli

    Kurt Smith Guest

    On Thu, May 22, 2008 at 10:55 AM, duli <> wrote:
    > Hi:
    > I would like recommendations for books (in any language, not
    > necessarily C++, C, python) which have walkthroughs for developing
    > a big software project ? So starting from inception, problem
    > definition, design, coding and final delivery on a single theme
    > or application.


    The bigger the project, the more likely it is that you'll have
    documentation on how to use it (for a language or library, how to use
    the features in your program) but to take the time to write up a
    dead-tree book on the project's "inception, problem definition,
    design, coding and final delivery" is not likely well spent. Anyone
    who has the expertise to write such a book would probably be spending
    his time working on the next phase of the project itself.

    Someone will probably respond with an amazon link to a book that does
    exactly what you're asking, in which case, I will stand corrected.
    But I'll be surprised.

    >
    > Most of the code I have written and books that I have read deal with
    > toy programs and I am looking for something a bit more
    > comprehensive. For example, maybe a complete compiler written in C++
    > for some language, or a complete web server or implementing
    > .net libraries in some language (just a few examples of the scale of
    > things I am interested in learning).


    It seems to me the reason toy programs are so prevalent is because
    they illustrate a (few) well defined ideas in a short amount of code.
    A big project, necessarily, brings together all kinds of stuff, much
    of which may not interest the author at all, and so doesn't motivate
    him to write a book about it.

    Compilers, web servers & .NET libraries are *widely* varying areas.
    You may have interest in them all, but to significantly contribute to
    any requires a fair amount of expertise and specialization.

    The best route I've found to learn how to organize & program large
    scale applications is this: find a cutting edge program that interests
    you and that is open source. Download its source, and read the code.
    Diagram it. Map it out. Read the comments. Join the mailing list
    (probably the developer's list), lurk for a while, and ask questions
    about why they organized things the way they did. Get the overall big
    picture and learn from it. Better yet, find out what pitfalls they
    found and avoided (or fell into). Compare their approach &
    organization with another competing project. This is the wonder of
    open source software -- you have access to everything, and can learn
    from all the expertise the developers put into their opus.

    You can learn the basics from books, but nothing beats analyzing a
    species in the wild.

    Kurt
    Kurt Smith, May 22, 2008
    #2
    1. Advertising

  3. duli

    Dan Upton Guest

    On Thu, May 22, 2008 at 1:49 PM, Kurt Smith <> wrote:
    > On Thu, May 22, 2008 at 10:55 AM, duli <> wrote:
    >> Hi:
    >> I would like recommendations for books (in any language, not
    >> necessarily C++, C, python) which have walkthroughs for developing
    >> a big software project ? So starting from inception, problem
    >> definition, design, coding and final delivery on a single theme
    >> or application.

    >
    > The bigger the project, the more likely it is that you'll have
    > documentation on how to use it (for a language or library, how to use
    > the features in your program) but to take the time to write up a
    > dead-tree book on the project's "inception, problem definition,
    > design, coding and final delivery" is not likely well spent. Anyone
    > who has the expertise to write such a book would probably be spending
    > his time working on the next phase of the project itself.
    >
    > Someone will probably respond with an amazon link to a book that does
    > exactly what you're asking, in which case, I will stand corrected.
    > But I'll be surprised.
    >


    Well, except for some higher-level textbooks. For instance, I *think*
    (not positive) that any of Appel's "Modern Compiler Implementation"
    books give a pretty thorough treatment of implementing a compiler
    (except for the obvious part where, since it's intended as a textbook,
    some gaps are left for the student to fill in). I also think the
    recent edition of the Dragon book (Compilers: Principles, Techniques,
    and Tools 2nd ed) has a complete compiler frontend in one of the
    appendices (although you kind of have to mix and match to figure out
    where in the book they've described the parts that lead to writing out
    the code shown in the appendix).

    -dan
    Dan Upton, May 22, 2008
    #3
  4. On Thu, May 22, 2008 at 4:55 PM, duli <> wrote:
    > Hi:
    > I would like recommendations for books (in any language, not
    > necessarily C++, C, python) which have walkthroughs for developing
    > a big software project ? So starting from inception, problem
    > definition, design, coding and final delivery on a single theme
    > or application.


    With regard to the arcitecture of systems rather than process, there
    are some good boos liked to from here:
    <http://martinfowler.com/articles/enterprisePatterns.html>. Patterns
    of Enterprise Application Architecture in particular is a bit of a
    classic.

    --
    Cheers,
    Simon B.

    http://www.brunningonline.net/simon/blog/
    GTalk: simon.brunning | MSN: small_values | Yahoo: smallvalues | Twitter: brunns
    Simon Brunning, May 23, 2008
    #4
  5. duli

    mabbikeel Guest

    On May 27, 9:58 pm, c james <> wrote:
    > duli wrote:
    > > Hi:
    > > I would like recommendations for books (in any language, not
    > > necessarily C++, C, python) which have walkthroughs for developing
    > > a big software project ? So starting from inception, problem
    > > definition, design, coding and final delivery on a single theme
    > > or application.


    I'm not sure, but perhaps Code Complete would be one to check out. I
    found it a good read on general design and implementation details, and
    has some bits on managing complexity.
    mabbikeel, May 27, 2008
    #5
  6. duli

    Guest

    On May 22, 12:49 pm, "Kurt Smith" <> wrote:
    > On Thu, May 22, 2008 at 10:55 AM, duli <> wrote:
    > > Hi:
    > > I would like recommendations forbooks(in any language, not
    > > necessarily C++, C, python) which have walkthroughs for developing
    > > a big software project ? So starting from inception, problem
    > > definition, design, coding and final delivery on a single theme
    > > or application.

    >
    > The bigger the project, the more likely it is that you'll have
    > documentation on how to use it (for a language or library, how to use
    > the features in your program) but to take the time to write up a
    > dead-tree book on the project's "inception, problem definition,
    > design, coding and final delivery" is not likely well spent.  Anyone
    > who has the expertise to write such a book would probably be spending
    > his time working on the next phase of the project itself.
    >
    > Someone will probably respond with an amazon link to a book that does
    > exactly what you're asking, in which case, I will stand corrected.
    > But I'll be surprised.
    >
    >
    >
    > > Most of the code I have written andbooksthat I have read deal with
    > > toy programs and I am looking for something a bit more
    > > comprehensive.  For example, maybe a complete compiler written in C++
    > > for some language, or a complete web server or implementing
    > > .net libraries in some language (just a few examples of the scale of
    > > things I am interested in learning).

    >
    > It seems to me the reason toy programs are so prevalent is because
    > they illustrate a (few) well defined ideas in a short amount of code.
    > A big project, necessarily, brings together all kinds of stuff, much
    > of which may not interest the author at all, and so doesn't motivate
    > him to write a book about it.
    >
    > Compilers, web servers & .NET libraries are *widely* varying areas.
    > You may have interest in them all, but to significantly contribute to
    > any requires a fair amount of expertise and specialization.
    >
    > The best route I've found to learn how to organize & program large
    > scale applications is this: find a cutting edge program that interests
    > you and that is open source.  Download its source, and read the code.
    > Diagram it.  Map it out.  Read the comments.  Join the mailing list
    > (probably the developer's list), lurk for a while, and ask questions
    > about why they organized things the way they did.  Get the overall big
    > picture and learn from it.  Better yet, find out what pitfalls they
    > found and avoided (or fell into).  Compare their approach &
    > organization with another competing project.  This is the wonder of
    > open source software -- you have access to everything, and can learn
    > from all the expertise the developers put into their opus.
    >
    > You can learn the basics frombooks, but nothing beats analyzing a
    > species in the wild.


    I think I have lately understood what you mean, thanks to Programming
    Python 3rd Ed by Lutz. It doesn't teach Python itself -- the book aims
    to teach Python programming at an application level, but I'm starting
    to wonder whether that knowledge can be obtained from any book. The
    book goes through over 1500 pages (!) giving small- and medium-sized
    example programs and describing their details. Roughly after a couple
    of hundred pages I started to feel like all that was trivial (isn't
    looking at code and figuring their details what we do in our every-day
    programmer lifes?), and then started to feel like it was really
    useless. Maybe large-scale programming can only be self-thought in
    every day life, am I right?.
    , Jun 5, 2008
    #6
  7. duli

    Bob Martin Guest

    in 69148 20080605 140635 wrote:
    >On May 22, 12:49=A0pm, "Kurt Smith" <> wrote:
    >> On Thu, May 22, 2008 at 10:55 AM, duli <> wrote:
    >> > Hi:
    >> > I would like recommendations forbooks(in any language, not
    >> > necessarily C++, C, python) which have walkthroughs for developing
    >> > a big software project ? So starting from inception, problem
    >> > definition, design, coding and final delivery on a single theme
    >> > or application.

    >>
    >> The bigger the project, the more likely it is that you'll have
    >> documentation on how to use it (for a language or library, how to use
    >> the features in your program) but to take the time to write up a
    >> dead-tree book on the project's "inception, problem definition,
    >> design, coding and final delivery" is not likely well spent. =A0Anyone
    >> who has the expertise to write such a book would probably be spending
    >> his time working on the next phase of the project itself.
    >>
    >> Someone will probably respond with an amazon link to a book that does
    >> exactly what you're asking, in which case, I will stand corrected.
    >> But I'll be surprised.
    >>
    >>
    >>
    >> > Most of the code I have written andbooksthat I have read deal with
    >> > toy programs and I am looking for something a bit more
    >> > comprehensive. =A0For example, maybe a complete compiler written in C++
    >> > for some language, or a complete web server or implementing
    >> > .net libraries in some language (just a few examples of the scale of
    >> > things I am interested in learning).

    >>
    >> It seems to me the reason toy programs are so prevalent is because
    >> they illustrate a (few) well defined ideas in a short amount of code.
    >> A big project, necessarily, brings together all kinds of stuff, much
    >> of which may not interest the author at all, and so doesn't motivate
    >> him to write a book about it.
    >>
    >> Compilers, web servers & .NET libraries are *widely* varying areas.
    >> You may have interest in them all, but to significantly contribute to
    >> any requires a fair amount of expertise and specialization.
    >>
    >> The best route I've found to learn how to organize & program large
    >> scale applications is this: find a cutting edge program that interests
    >> you and that is open source. =A0Download its source, and read the code.
    >> Diagram it. =A0Map it out. =A0Read the comments. =A0Join the mailing list
    >> (probably the developer's list), lurk for a while, and ask questions
    >> about why they organized things the way they did. =A0Get the overall big
    >> picture and learn from it. =A0Better yet, find out what pitfalls they
    >> found and avoided (or fell into). =A0Compare their approach &
    >> organization with another competing project. =A0This is the wonder of
    >> open source software -- you have access to everything, and can learn
    >> from all the expertise the developers put into their opus.
    >>
    >> You can learn the basics frombooks, but nothing beats analyzing a
    >> species in the wild.

    >
    >I think I have lately understood what you mean, thanks to Programming
    >Python 3rd Ed by Lutz. It doesn't teach Python itself -- the book aims
    >to teach Python programming at an application level, but I'm starting
    >to wonder whether that knowledge can be obtained from any book. The
    >book goes through over 1500 pages (!) giving small- and medium-sized
    >example programs and describing their details. Roughly after a couple
    >of hundred pages I started to feel like all that was trivial (isn't
    >looking at code and figuring their details what we do in our every-day
    >programmer lifes?), and then started to feel like it was really
    >useless. Maybe large-scale programming can only be self-thought in
    >every day life, am I right?.


    Of course.
    Bob Martin, Jun 6, 2008
    #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. HDL Book Seller
    Replies:
    0
    Views:
    915
    HDL Book Seller
    Dec 1, 2004
  2. Guest

    Books, Books, Books...

    Guest, Sep 19, 2004, in forum: C++
    Replies:
    3
    Views:
    517
    ÁÍÄÑÅÁÓ ÔÁÓÏÕËÁÓ
    Sep 19, 2004
  3. duli
    Replies:
    25
    Views:
    688
    Paul McGuire
    Jun 5, 2008
  4. duli
    Replies:
    26
    Views:
    587
    Paul McGuire
    Jun 5, 2008
  5. Shaguf
    Replies:
    0
    Views:
    343
    Shaguf
    Dec 24, 2008
Loading...

Share This Page