views:

310

answers:

5

Hello everyone! I really want to learn more about C++. I know the basics, and I know the concepts, and I have even been able to create C++ projects myself, but my problem is being able to view, fix, and add to code I haven't written myself. I have looked at some open source projects on sourceforge, etc, but many of them are so big or there are soooo many projects available until I don't know what to do.

Are there any "small or simple" projects or tasks in C++ that will allow me to extend my knowledge of C++ by use of hands on experience? Please let me know.

Thanks

A: 

Creating your own client / server application using socket programming is a big and fun area in programming which you should check out.

http://subjects.ee.unsw.edu.au/tele3118/wk6_sockets.pdf

Baversjo
wk6_sockets.pdf is not available (at least right now). For instance wget says "failed: Connection timed out.".
Peter Mortensen
A: 

...but my problem is being able to view, fix, and add to code I haven't written myself.

That is tough even for experienced programmers.
A book that might help you is Code Reading: The Open Source Perspective by Diomidis Spinellis.

Nick D
+1  A: 

If you are already able to create own projects, I think the best way to learn how to read&change someone's code is to get job in software company. They even will pay for it :)

Kirill V. Lyadvinsky
A: 

Read The Art of Unix Programming ( TAOUP ). Its available online, well written and has lots of case studies that represent well designed programs. You may also find some good C++ opensource software amongst those case studies.

Apart from TAOUP, take a look at Boost C++ Libraries. They provide peer reviewed source libraries that are very well documented.

Another one, I have heard is Postfix ( an Open source email server for Unix ) that is said to have well written C++ code. Though, I must admit I do not have any direct experience with it.

Hope this helps :)

ardsrk
A: 

Welcome to Barry if you own a BlackBerry and use GNU/Linux. A small project, yet very useful.

ryanli