15

Most of the newcomers in programming start with basic projects to start with programming. Most of the C++ progammers spend some time with puzzles and contests but this is not always helpful. Sometimes you've to spend some time on real projects. Starting your own open source project could be a problem in self-learning for newbie cause of lack of mentors and peers who can't look at your code and give suggestions. Open source projects can solve this problem, some projects could be best suited for new programmers. Besides everybody is newbie at some point. So i'll try and make this question a bit from beginners perspective.

I tried few questions on stack overflow before asking this like How do i join & Bare minimum you need and how to get involved with open source and what level of programming etc. But this is not helping me when it comes to self-evaluating with skills. How to find that out ? How can i check what it takes to join open source project and am i really that comfortable with huge source code etc.

My question is when to consider yourself comfortable joining open source programming ? I mean how will you test yourself that you're ready to take burden of big/small projects of open source ? how will you test yourself to see if you could work with version control/other programmers/tight schedule etc ?

20 accepted

when to consider yourself comfortable joining open source programming ?

The best answer to that question, in my opinion, is "When you think you can bring something to the project".

You're using an application / library and something is missing, or you found a bug ? Report it, try to correct it, send a patch ; et voila ;-)

Maybe your patch will be accepted, if it's OK ; keep doing that a couple of times : correcting bugs is something (even bugs you didn't report -- see the bugtracker of the project you choose) that will allow you to know the project.

And, after a while, maybe you'll get commit rights to the projects ;-)


It's not necessarily a question skills or whatever : you can participate in a big open source project without having to modifiy the core of the project or whatever : even small patches (like translation, minor modifications to the UI, minor bug corrections, ...) are usefull to the project, and they won't require you to be a rock start ; instead, they'll be a perfect start either for you to know the project, and others to see that you are doing well.

About version control / other programmers / tight schedule : I'm guessing that, when you have (professionnaly speaking) worked for a couple of years, you are more than ready for all that ; open source projects are maybe even a bit more forgiving about that, in some ways -- for instance, there might be less presure than when you have a client on your back ^^


As a final note : whatever you do, if done well, will be useful : what matters is that you do it for the project, and not just "to do open source" !

3

When I feel comfortable getting paid nothing to work on someone else's project, it's time.

My goal as a newcomer to software was to get paid by someone to do what I like. Since then I've taken on some proprietary work that I sponsored, and made some profits from that.

I'm no Anders Hejlsberg, but I've made a pretty good living. Given that the talent bar for being a professional developer in software is so much lower than being a professional athlete or musician, is there any special reason why you've set your sights on being an amateur?

3

Anytime! Really, open source projects live of their users using the project. The basic idea is not to join the project to learn but to use the code and contribute back enhancements, changes in behavior, etc. Even the reporting of a bug is contribution or answering questions for others or documenting a how to guide. So don't sit on the fence but jump right in.

Off course this turns the "question" into "What project should I immerse myself in?" Well, the best project for you is one where you really get some use out of it. If the software scratch some kind of itch for for you. Weather it is building a web site with content and community, morphing images in artful ways, enjoying all the bells and whistles on that Mac OS X IM app, or ... If the software does something for you beyond just learning to program, it will keep you much more and much longer motivated.

2

There is a simple logical answer to this.

You can download the open source project.

  • Make a change to the project or fix a bug that was on the list.
  • Compile it and test it.
  • Submit the code.

There really is nothing in your heart or mind that will tell you when you're ready to contribute to open source society. There is no test other than actually trying it.

Once you try it you can check these areas of feedback.

  • Your feelings on what you did.
  • Your feelings or thoughts on what you can improve about your own approach
  • How comfortable you are in soliciting feedback or incorporating any feedback you received.

These are the areas to improve and work on (above and beyond any technical skills that was demonstrated or not demonstrated by your changes). Get super comfortable following all of these areas and make sure that you are making the changes for yourself.

Good luck and welcome!