473,833 Members | 2,133 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Books for learning how to write "big" programs

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.
Jun 27 '08 #1
7 2030
On Thu, May 22, 2008 at 10:55 AM, duli <du*******@gmai l.comwrote:
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
Jun 27 '08 #2
On Thu, May 22, 2008 at 1:49 PM, Kurt Smith <kw******@gmail .comwrote:
On Thu, May 22, 2008 at 10:55 AM, duli <du*******@gmai l.comwrote:
>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
Jun 27 '08 #3
On Thu, May 22, 2008 at 4:55 PM, duli <du*******@gmai l.comwrote:
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.co m/articles/enterprisePatte rns.html>. Patterns
of Enterprise Application Architecture in particular is a bit of a
classic.

--
Cheers,
Simon B.
si***@brunningo nline.net
http://www.brunningonline.net/simon/blog/
GTalk: simon.brunning | MSN: small_values | Yahoo: smallvalues | Twitter: brunns
Jun 27 '08 #4
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.

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.
--
http://mail.python.org/mailman/listinfo/python-list
"Dreaming in Code" www.dreamingincode.com may fit part of this
description. While it isn't exactly what you desire, it is a good read
on the difficulty in creating excellent software.

Jun 27 '08 #5
On May 27, 9:58*pm, c james <cja...@callone .netwrote:
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.

Jun 27 '08 #6
On May 22, 12:49*pm, "Kurt Smith" <kwmsm...@gmail .comwrote:
On Thu, May 22, 2008 at 10:55 AM, duli <dulipi...@gmai l.comwrote:
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 27 '08 #7
in 69148 20080605 140635 s0****@gmail.co m wrote:
>On May 22, 12:49=A0pm, "Kurt Smith" <kwmsm...@gmail .comwrote:
>On Thu, May 22, 2008 at 10:55 AM, duli <dulipi...@gmai l.comwrote:
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
documentatio n 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.
Jun 27 '08 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

27
4219
by: duli | last post by:
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...
0
9796
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10782
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10500
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
7753
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6951
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5624
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5789
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
3972
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3078
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.