QuoteOriginally posted by: samkhalilianI did have also the idea of trying to make a contribution to some open source project as you mentioned. But never done this before, so not sure how I go about doing this.Download the package, make some changes, talk to people on the mailing list for the package. Also you'll quickly find that some people and places are open and some people places aren't/QuoteGiven I am a novice C++ programmer, what if your contribution is sh*t! Your work is simply rejected, therefore it is tested by others?Then you work with the mailing list to improve the work until you get it into the source repository. This involves some political skills, and it also involves trying to figure out for yourself what projects would be useful. You'll usually find that there are a huge amount of open bugs, and simply fixing some bugs will get you a lot of useful experience. You'll find yourself frustrated at times at the difficulties in installing programs, the difficulties of dealing with non-existent or outdated documentation, the difficulties in testing, and you'll find most of your time spend on bug fixing rather than on any new functionality. There is also the political aspect of software development. There are also things about version control, release schedules, software risk management, etc. etc.The error is to see all of those things as distractions from "real work" but the reason that participating in an open source project is that those things I mentioned *are* the real work.