Fog Creek Software
Discussion Board

A good project for intermediate (C++) programmers?

I'm pretty comfortable with C++. I would like to work on a non-trivial project that is useful but at the same time not beyond my abilities (I have no formal training in computer science). I'm familiar with basic data structures, but no compilers, operating systems, etc.

I could possibly work with a higher level language, but I'd very strongly prefer to use C/C++.

I've been looking for interesting projects on the Internet, but they either have too much code (10 megs of source or something), too little documentation and too much code, or they are beyond my abilities (compilers, virtual machines, mini-operating systems, etc.)

I'm stuck. Anyone got any advice (besides learning more CS ASAP)? The more specific, the better.

Thanks in advance.


Warren Henning
Tuesday, August 20, 2002

Define 'good' - what are you hoping to get out of it?

My first experience of a 'real world' project was the when I first started work after university (as an undergraduate, you work on problems that are solved already). I looked for an entry-level programming job at a small or large company, or volunteered at a NGO.

> too much code (10 megs of source or something)

Usually you're not even expected to read it all. The essence of programming in C is using libraries while 'ignoring' their implementation; and, writing these libraries.

> beyond my abilities (compilers, virtual machines, ...)

You can learn the basics of any CS topic by reading a good book or five.

> I'm familiar with basic data structures [...] C++

If you're using C++ I hope you're using the Standard Template Library.

Christopher Wells
Wednesday, August 21, 2002

A good project is one that you think is fun.  I do screen savers for fun, myself.  (

My next good project will probably involve ODE.  (  Because rigid body dynamics is fun.  (Of course Jeff Lander is sucking me into continuum mechanics at the moment.  Darn him.)  I'm very close to another inverse kinematics phase, too.

Think of something you'd like your computer to do.  I like watching the screen.  Perhaps you've got your own server, and want to write your own Kazaa, or just a skinnable IRC client.  Whatever.  Why not?  Make sure you like it, so you don't stop at the first severe roadblock.

David Blume
Wednesday, August 21, 2002 ?

Tuesday, August 27, 2002

*  Recent Topics

*  Fog Creek Home