Re: Mini project suggestions

From: Mike Wahler (mkwahler_at_mkwahler.net)
Date: 10/04/03


Date: Sat, 04 Oct 2003 19:06:39 GMT


"Michael Strorm" <mstrorm@yahoo.co.uk> wrote in message
news:5e705cb0.0310040418.33f3c0c5@posting.google.com...
> "Mike Wahler" <mkwahler@mkwahler.net> wrote in message
news:<x_Ieb.11731$NX3.10856@newsread3.news.pas.earthlink.net>...
> > "Michael Strorm" <mstrorm@yahoo.co.uk> wrote in message
> > news:5e705cb0.0310011430.cbc757d@posting.google.com...
> > > I bought "The C++ Programming Language"
> >
> > Yes, as your knowledge grows, I think you'll find this
> > book quite valuable. Make sure it's the 3rd or 'special'
> > edition though. Previous additions are essentially
> > obsolete.
>
> It's the Special... BTW, what is the difference between that and the
> vanilla 3rd ed? It doesn't seem to be mentioned anywhere.

See http://www.research.att.com/~bs/3rd.html

>
> > Another very good book, especially for those who have
> > previous experience with other languages, is Koenig
> > & Moo's "Accelerated C++". www.acceleratedcpp.com
>
> Yeah, I keep hearing about this. I'm giving serious consideration to
> buying it.

I bought it quite a while ago, and am certainly glad I did.

>
> > > I'm getting the very strong impression that
> > > (much more so than in C) learning to write "proper" C++ programs can't
> > > just be done through short question exercises.
> >
> > Short exercises are good start, especially to prove to
> > yourself you understand a particular concept(s).
>
> The concepts I'm usually fine with, but actually applying them is usu.
> a different kettle of fish.

Yes, choosing the right 'pieces' (concepts) for constructing
the 'puzzle' (application). This simply takes practice, lots
of it. Be prepared to throw away much code from false starts.
The code itself isn't what's really valuable, but the lessons
learned.

>
> > Don't be too optimistic with your time estimates.
>
> I've learned not to be :-/
>
> > Don't
> > worry if something takes far longer than you expect. Even
> > for professionals, one of the most difficult tasks is making
> > (and meeting!) time estimates.
>
> Reminds me of a Dilbert cartoon where the pointy-haired boss is asking
> for a time estimate, then giving that to *his* boss and so on...
>
> Only practice and experience
> > will help with this. And having built up a 'code base' of
> > useful functions helps a lot toward 'speed of development'.
> > The concept of code reuse. When writing a function, keep
> > in mind "can this be 'generalized' to be useful in other
> > contexts?"
>
> That's a good point... though I guess spending too long generalising a
> problem is a good/bad hacker trait depending on who you ask. ;-)
> This project has some scope for generalisation via base-classes for a
> start...

Yes, anything can be 'overdone'.

>
> > >It'd also be interesting to get some practice
> > > in software design in there.
> >
> > Design isn't really topical here, but we can help you
> > organize your code to best take advantage of the
> > language's power, prevent common errors etc. Software
> > design itself would be better discussed in groups such
> > as comp.programming and/or comp.algorithms, etc.
> > Often specific algorithm categories have their own
> > groups, e.g. cryptography.
>
> I was thinking more in terms of software design, rather than at the
> algorithm level...

Look for newsgroups, web resource, books etc. about that.
No particular one comes to mind at the moment.

>
> > Hint: Use the standard library.
> [snip]
> > Which reminds me: A very good book to have is
> > Josuttis' "The C++ Standard Library" www.josuttis.com/libbook
>
> Anything comparable online, in the same way that Sun have the Java
> documentation online?

There are several places online which document the standard library,
e.g. www.dinkumware.com , but they only *document it*, the
Josuttis book *explains* how it works and gives advice how
to use it effectively. Another similar book which is more
oriented toward application of the library rather than
dissecting it, is Austern's "Generic Programming and the
"STL".

-Mike



Relevant Pages

  • Re: Algorithms to generate permutations
    ... >>The position on algorithm design, ... > I claim that my government should not insist ... Would this have forced a US national competition? ...
    (sci.crypt)
  • Re: Motion control and RELATIVE position problem
    ... You should be able to wade through the software and figure out how to provide the algorithm with an absolute command instead of a relative command. ... I think Tim Wescott has published a PID algorithm in the past that is relatively easy to port to PICs, ... Partially this is because it's heavily optimized, and the PIC is not amenable to fast, well-structured C code, but partially it's because (in my humble opinion) the guy writing the code didn't really pay attention to maintainability. ... And lest I start a flame war: These are just my opinions, and I may design a PIC into a product tomorrow. ...
    (sci.engr.control)
  • Re: Encryption key changing the encryption logic.
    ... >>decides among various elementary crypto operations based on what it sees ... >>adversary knows which key bits select which algorithm and, in practice, N ... > or two rounds of a different block cipher. ... this design is covered under the 1-of-N discussion and your design is ...
    (sci.crypt)
  • Re: Test-Driven Development
    ... > Michael Mendelsohn wrote: ... The design is very similar to yours, which confirms a supposition I pose ... below, namely, that test design affects the algorithm design. ... > general-purpose algorithm generator, ...
    (comp.programming)
  • On How Incivility Has Destroyed Usenet
    ... On how incivility has destroyed Usenet: ... Allow me to advance a radical thesis: Today?s outbreaks of nasty online behavior are directly linked to the history of the ... My opinion, however, is that certain details in the design of the ... transient anonymity coupled with a lack of consequences is what brings out online idiocy. ...
    (soc.retirement)