Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am learning C/C++/Oracle/Unix.

I am thinking of developing some application on my own, but I have no Idea what else is required.

If you take an example of C++. I have very basic knowledge of it (data types, OOP concepts, vectors, file handling, exception handling, etc). I am not an expert though. I have just read one book about C++ and don't know much about graphics in C++.

I went to (an open source website for programming and development) they had some projects in C++ that are looking for developers.

Now this looks way beyond my knowledge but I want to buld something. If not, I want to learn more to do it but I have no clue where to begin and what material topics, books to read.

There so many things involved with an application: .exe files, .dll files and many more

1) Am I thinking in the right direction?

2) Is it possible to do it alone or be a part of such big open source projects online? What are the things that I need to collect online and study?

Please help, if possible please provide the topics, books, websites that might help me to study and proceed to achieve my goal.

share|improve this question
On SO, there is a question about a list of recommended C++ books. Try finishing to read through some of those books, along with working out the exercises in them. That will be a start. – vpit3833 Apr 28 '11 at 5:52
up vote 1 down vote accepted

In addition to C++, you should study the libraries, APIs and frameworks used in the individual projects. For example, if you're planning to help develop a 2D game that uses SDL, you will need to learn SDL.

share|improve this answer
Thanks, it helps – mukesh Apr 28 '11 at 6:54

You can always pick a project and start small. Find something on the bug list that you can do, that involves fairly small changes to the code, and fix it. Do a good job, and make sure you do everything the project guidelines tell you to, and test it well. If you get criticism from the developers that's more than "Go away, kid, you bother me", read it, make sure you understand it, and do things the way they say. That way, you have the satisfaction of having made a real, if minor, contribution, and people are likely to notice that you did it correctly. Most projects are interested in people who contribute more work than they cause, and taking somebody's patch without the documentation update or test case and written to different standards can be more work than writing one's own.

Combine this with further study. C++ is a big language with an unpleasant number of difficulties you can get into. Scott Myers' "Effective" series and Herb Sutter's "Exceptional C++" series won't teach you the big picture, but are good at showing you where the dark corners are and what to do about them. There's an excellent book list on Stack Overflow. There are doubtless other things to learn, such as the libraries the project uses and perhaps domain knowledge.

Don't expect to understand everything at once. That doesn't happen. Work on it here and there, and you'll slowly get a better understanding of the codebase.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.