468,525 Members | 2,304 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 468,525 developers. It's quick & easy.

c++ software development

The problem with learning from c++ texts is that the coding examples
are very small.

To prepare for a workplace setting, I would think a person needs access
to huge coding projects that occur in software development.

How does one get access to such projects via the web? A project
related to financial mathematics would be ideal. Perhaps Quantlib but
I found it difficult to install.

Anyway, I'm looking for advice on getting access to large coding
projects so that I can prepare for a more realistic setting for
workplace c++ than is available in standard texts.

(Yes, this is slightly OT because it's not specifically a query about
the c++ language. My apologies. However, I'm still hopeful that I can
get some help. One advantage of this particular newsgroup is that it's
extremely active, and I have generally got response to my queries very
quickly. I'm not sure whether that would be true for the completely
proper newsgroup.)

Paul Epstein

Sep 5 '06 #1
9 1949
pa**********@att.net wrote:
The problem with learning from c++ texts is that the coding examples
are very small.

To prepare for a workplace setting, I would think a person needs access
to huge coding projects that occur in software development.

How does one get access to such projects via the web? A project
related to financial mathematics would be ideal. Perhaps Quantlib but
I found it difficult to install.

Anyway, I'm looking for advice on getting access to large coding
projects so that I can prepare for a more realistic setting for
workplace c++ than is available in standard texts.

(Yes, this is slightly OT because it's not specifically a query about
the c++ language. My apologies. However, I'm still hopeful that I can
get some help. One advantage of this particular newsgroup is that it's
extremely active, and I have generally got response to my queries very
quickly. I'm not sure whether that would be true for the completely
proper newsgroup.)

Paul Epstein
Two words: Open source

High quality large scale software with very well documented code, since
they are intended to be read by and improved by others.
Sep 5 '06 #2
pa**********@att.net wrote:
The problem with learning from c++ texts is that the coding examples
are very small.

To prepare for a workplace setting, I would think a person needs access
to huge coding projects that occur in software development.

How does one get access to such projects via the web? A project
related to financial mathematics would be ideal. Perhaps Quantlib but
I found it difficult to install.

Anyway, I'm looking for advice on getting access to large coding
projects so that I can prepare for a more realistic setting for
workplace c++ than is available in standard texts.

(Yes, this is slightly OT because it's not specifically a query about
the c++ language. My apologies. However, I'm still hopeful that I can
get some help. One advantage of this particular newsgroup is that it's
extremely active, and I have generally got response to my queries very
quickly. I'm not sure whether that would be true for the completely
proper newsgroup.)
Here's one: http://met.no/diana/
Sep 5 '06 #3
pauldepstein wrote:
Anyway, I'm looking for advice on getting access to large coding
projects so that I can prepare for a more realistic setting for
workplace c++ than is available in standard texts.
Three places to start:

http://sourceforge.net/
http://cppunit.sourceforge.net/
http://unittest-cpp.sourceforge.net/

In business, the first thing you will probably do is download the corporate
codebase and build it all. (Tip: The easier that proceedure is, the
healthier your new team's process is.)

The next thing you should do is add automated unit tests to it, to explore
it, and get ready to use the tests to add features. So learn using any
SourceForge C++ project, and with either of those two test rigs.
(Yes, this is slightly OT because it's not specifically a query about
the c++ language.
It's perfectly on-topic, because this is the best newsgroup for the
question. No other newsgroup discusses all platform neutral aspects of C++.
( news:comp.std.c++ is for the raw language itself... )

--
Phlip
http://c2.com/cgi/wiki?ZeekLand <-- NOT a blog!!!
Sep 5 '06 #4

pa**********@att.net wrote:
The problem with learning from c++ texts is that the coding examples
are very small.

To prepare for a workplace setting, I would think a person needs access
to huge coding projects that occur in software development.

How does one get access to such projects via the web? A project
related to financial mathematics would be ideal. Perhaps Quantlib but
I found it difficult to install.

Anyway, I'm looking for advice on getting access to large coding
projects so that I can prepare for a more realistic setting for
workplace c++ than is available in standard texts.

(Yes, this is slightly OT because it's not specifically a query about
the c++ language. My apologies. However, I'm still hopeful that I can
get some help. One advantage of this particular newsgroup is that it's
extremely active, and I have generally got response to my queries very
quickly. I'm not sure whether that would be true for the completely
proper newsgroup.)

Paul Epstein
I would have a look at the Boost libraries (http://www.boost.org/).
They have pretty much everything you'd look for in a large coding
project - threading, STL, templates, et al. They're also multi-platform
in case you're looking to switch hit between Linux and Windows.

mb

Sep 5 '06 #5
pa**********@att.net wrote:
The problem with learning from c++ texts is that the coding examples
are very small.
[snip]

Well, actually, the problem isn't that the examples are small.
The problem is you are looking at the wrong books. And that
you think you can learn large app design by looking at code.

Modern software development consists of a much longer design
stage than in the past. For example, a C++ project might involve
an up-front "before the coders are hired" design stage the consumes
as much as 60 percent of the development time. And during that
time there is not a single line of source code written for the app.

Large scale development moves you to a level of abstraction that is
somewhat removed from language syntax. And so, looking at large
app source code is probably the least efficient method of learning it,
even supposing the code you look at embodies the result of a good
design process. Reading code is going to make you think that the
specific language features your example uses are samples of good
large scale design. Then you will have to unlearn this, after doing a
lot of damage to any large project that is unfortunate enough to hire
you. Because language features are only the surface of good large
scale design. And probably the least important aspect.

Looking at source code is going to reinforce such things as "code
like mad" and "code-n-fix" methods. The usual diagram for these is
a large cloud with a lot of strange things attached to it, like a
cartoon
image of a bar brawl. Really what you want to do to prepare for a
large app development task is look at some development cycles
that are appropriate for many developers. Such things as waterfall,
spiral, and so on. Also learn about some tools (such as
automated source code control, and automated documentation
creation tools) to make the task easier to control. In other words,
stuff that has little or nothing to do with looking at the code.

If you want to learn large scale coding architecture, methods of
integration, how to design a large app so that it will work, how to
keep bug rates down in large code, how to document large codes,
and various such topics, then you want a different *set* of books
from the ones that teach you language features. Look for books
with the right things in the title. For example, if the book is callled

something like "The C++ Language" then you are not on the right
track to get large code management techniques. If the title is
something like "Large Scale C++" then you are probably getting close.
You also want to look at some books about project management, team
structure and interaction, scheduling, and such like. For example, you
might find yourself _The Project Management Body of Knowledge_.

A good introductory text that surveys a lot of these topics is
_Code Complete_ by Steve McConnell. That will get you started.
Once you read it you can branch out to other books that give
you more detail on areas you are interested in.
Socks

Sep 5 '06 #6
Puppet_Sock wrote:
Modern software development consists of a much longer design
stage than in the past. For example, a C++ project might involve
an up-front "before the coders are hired" design stage the consumes
as much as 60 percent of the development time. And during that
time there is not a single line of source code written for the app.
That is a recipe for disaster. Numerous studies have shown that the longer
you design without code, the more you plan-ahead without feedback, the
bigger risks you generate.

Further, you imply that one team - architects - should plan the designs,
while another team - coders - write the code. This system only compounds
those risks. The architects are typically _not_ the ones staying up all
night trying to make those plans work!

Most of the huge software failures we read about in the trade journals
indeed planned a long time before writing code.

--
Phlip
http://c2.com/cgi/wiki?ZeekLand <-- NOT a blog!!!
Sep 5 '06 #7

pa**********@att.net wrote:
The problem with learning from c++ texts is that the coding examples
are very small.

To prepare for a workplace setting, I would think a person needs access
to huge coding projects that occur in software development.
If you want to get into this proffession you'll need to go to school.
You can know everything in the world but you'll have a hard time
getting an interview without the experience or education. Entry level
development positions usually expect a 4 year degree in computer
science or a related field. You won't even get your little toe in the
door without one anymore.

Getting this degree should put you into practice meeting deadlines and
working in teams. Your projects will be small and when you actually
make it into the workplace it will be like getting hit with a big
hammer and it will seem like you're entire college experience was a
waste...and maybe so...but it does provide the oportunities to work in
teams and to get some experience under your belt. Sign up for any work
in your field you can...volunteer, paid, whatever. Many people don't
go for the volunteer positions but they do pay later when you have that
extra 2 years of work experience to put on your resume. Open Source
software can pay off too...especially if you wrote something they can
look at (assuming you stick to good coding practices and don't
willy-nilly ignore long standing guidelines).

And be prepaired to teach yourself. A computer science degree is
almost entirely useless unless you continue that education on your own.
Buy lots of books and read them. I still continue my education at
home, without compensation, and it serves me quite well.

Beyond that, entry level programmers are expected to be very green.
Don't expect to get good results by trying to sign into some huge
project. Expect them to mentor you into it as they will want to
anyway. There are as many ways of large project management as there
are stars in the sky (well, that might be a slight exageration).

Sep 5 '06 #8
Phlip wrote:
pauldepstein wrote:
>Anyway, I'm looking for advice on getting access to large coding
projects so that I can prepare for a more realistic setting for
workplace c++ than is available in standard texts.

Three places to start:

http://sourceforge.net/
http://cppunit.sourceforge.net/
http://unittest-cpp.sourceforge.net/
You should also consider the boost test library:
http://www.boost.org/libs/test/doc/

It is - in my view - simpler to use than cppunit. But it is definitly a
matter of personal taste.

Heinz
Sep 5 '06 #9
hhex wrote:
>http://sourceforge.net/
http://cppunit.sourceforge.net/
http://unittest-cpp.sourceforge.net/
You should also consider the boost test library:
http://www.boost.org/libs/test/doc/

It is - in my view - simpler to use than cppunit. But it is definitly a
matter of personal taste.
It has feeble support for test suites. CppUnit has the best support for
them - at the cost of humongous overhead!

--
Phlip
http://c2.com/cgi/wiki?ZeekLand <-- NOT a blog!!!
Sep 5 '06 #10

This discussion thread is closed

Replies have been disabled for this discussion.

By using this site, you agree to our Privacy Policy and Terms of Use.