Coplan has asked for the wisdom of the Perl Monks concerning the following question:

Greetings fellow monks,

Alas, I have come to that particular point in my learning curve where I need to have a serious project to work on and fellow monks to associate with in order to learn more of this great art we call Perl.

In comes Sourceforge. I have been browsing this great library of projects that once were, still are, and soon coming. I have filtered by the great language, Perl, and I have come up with several projects that I might try to associate myself with. Specifically, I'm looking towards working with MP3 projects, but that's not really needed to answer my questions. I have two questions:

1.) Assuming I have a list of projects that I'd consider getting involved in. What kinds of questions should I be asking the current developers? I don't want to sound selfish, but I don't really want to work on a project that would die. But what types of things would I look for in order to determine that said project is, in fact, a healthy project (Aside from the obvious like its documentation, the community support and so on).

2.) Again, assuming I affiliate myself with a graceful project that I have selected using your answers to question #1, what kind of things can I expect from affiliating with a project? It seems obvious to me that I would inevitably learn something from the other developers. But assuming I'm not nearly as talented as they are (yet), would that cause excessive burden to a large project? Would it be wise for me to try to help with a project with my small amounts of skills?

So much to learn, and so few ways to learn it. Reading a community site such as this can only get you so far. I realize that I need to do something. It's just a matter of finding something to do.

--Coplan

Replies are listed 'Best First'.
Re: Selecting a project for Learning
by halley (Prior) on Apr 29, 2003 at 17:07 UTC

    My top two tips here are:

    • Lurk on a project's mailing lists to see if they're alive and friendly.
    • Improve a project that you already use and like, but don't love.

    Slightly aside, as a third option:

    I have a young daughter and a full-time job, so I get maybe 15min of serious private "thinking time" per day. This is nowhere near enough for me to make significant progress on my dozens of pet projects. I've often thought about a project model where I blurt out one-page specifications or summaries of what I'd love to see written, and offer a small money or bounty bounty to entice some person such as yourself to write up the initial implementation. A "want ad" for a small learning project. I could write them myself, I want to write them myself, I know exactly what I'd write if I had the time, but I don't have time. I'd rather give someone else the idea (and an incentive), than to let the idea wither away on the vine.

    --
    [ e d @ h a l l e y . c c ]

      Your third option sounds very interesting. I will say that I'm quite good at teaching myself the solutions to most problems in due time. But as I said, it's always finding something to do to promote my learning process that's the problem. After all, how do you know that space travel is possible if you're not even aware that space exists? Same goes for Perl...how do I know I can do that if I don't even know that "that" is possible with Perl.

      Of course, having such a model would be very interesting. But I will admit it depends on what the goals of each small project might be. I'll be honest, there are things that wouldn't interest me enough to keep me coding. I'm not a programmer by nature. But I'm interested in many things. I might find some of your mini projects very exciting. Others might not peak my interests very much.

      As for improving projects...I'm playing around a bit with a lot of projects right now. Unfortunately, they either have code that's beyond my level (and I can't understand enough to improve upon it), or they aren't well documented. Such is the life of Open Source, eh?

      Thanks for your thoughts.

      --Coplan

Re: Selecting a project for Learning
by Coruscate (Sexton) on Apr 29, 2003 at 21:02 UTC

    I too have looked through Sourceforge. The only unfortunate thing about such a site is the number of projects that fall by the wayside and are forgotten. It'd be interesting to see a percentage showing how many projects are actually kept alive.


    If the above content is missing any vital points or you feel that any of the information is misleading, incorrect or irrelevant, please feel free to downvote the post. At the same time, please reply to this node or /msg me to inform me as to what is wrong with the post, so that I may update the node to the best of my ability.

Re: Selecting a project for Learning
by allolex (Curate) on Apr 30, 2003 at 12:39 UTC
    I don't really want to work on a project that would die.

    It may be best to choose a project that you would be prepared to take ownership of in order to keep it from dying.

    But assuming I'm not nearly as talented as they are (yet), would that cause excessive burden to a large project? Would it be wise for me to try to help with a project with my small amounts of skills?

    I've noticed a lot of developers are more than happy to tell you exactly what kind of help they need. I'm really not sure if this is a question that can be answered in general, but may rather have to be deferred to a case-by-case decision on your part.

    Good general advice (I think), especially on Sourceforge, would be to be as accurate as possible in your developer profile and then write a cover letter, kind of like your query here, to explain what you want to give and gain in the project.

    Good luck with whatever you do !

    --
    Allolex