Where are the Novice Mentoring Opportunities?


Today I helped a lurker in #parrot find a productive task.

He's kept an eye on Parrot for several years, but today he asked if there was anything he could do to help. I walked him through getting the source code and suggested an introductory task of an hour or so. At least two other developers gave him other potential tasks.

Any community-driven project of reasonable size has several small tasks suitable for a novice. We're fortunate in Parrot that we have plenty of opportunities for people who know Perl 5 or C or Perl 6 or virtual machines or want to learn any of them -- as well as technologies like parsers, opcode dispatch, garbage collection, JIT, installers, and more. We add a new committer every couple of months. We take mentoring very seriously.

As nice as this is for the Parrot project, it's a small part of the entire Perl ecosystem. (Some committers have little interest in the Perl ecosystem itself -- they care more for Parrot as a free software VM unbeholden to corporate interests or a practical demonstration of new ideas in compiler technology or the promise of radical language interoperability or powerful tools for developing little and large languages or an excuse to use what they learned in computer science classes or....). If there are a million people who've written one or more lines of Perl code in the past ten years, maybe a thousand of them have sufficient interest in Parrot and related projects that they may one day contribute a patch or a bug report or a FAQ.

That leaves a million or so other people as potential contributors.

I can think of plenty of opportunities for them to help the Perl ecosystem with an afternoon of time:

  • Add a test to a favorite CPAN module
  • Triage bugs in a CPAN module or other Perl project
  • Test DarkPAN code against bleadperl
  • Add to the Perl 5 Wiki
  • Review the Perl 6 synopsis
  • Join/start/lead/speak at a Perl Mongers group
  • Mentor a novice developer
  • Teach a Perl class or lead a study group at a local community college

There are many more possibilities. The question "What is there to do?" doesn't interest me, at least in comparison to a deeper question.

How do we connect those million developers with these possibilities?


Mentoring is not a perl thing really. The perl culture still suffers from a disregard for new users. Obviously this is a generalization, not everyone in the perl culture lacks patience, many are quite helpful; like brian d. foy and yourself. But there still exists a self-important egocentric culture at large where newbie questions are met with impatience and criticism is met with abuse.

This is not consistent with a culture that wants patient mentoring.

If someone is interested in working with DBIC and mysql replication, feel free to contact me at 'jjnapiork at cpan.org'. I'd be happy to mentor, but by mentor I mean I assume you have the basics and are looking for more challenge and someone to assist when you are stuck.

In response to Jeremiah Foster, I very much agree that you *parts* of the Perl community are not-so-friendly to newcomers, such as certain IRC channels that I will not name, or p5p, who (sadly) don't have much time for mentoring newcomers (but I hope the corehackers project changes that.)

But I must disagree with you that "mentoring is not a Perl thing." I helped organize nine mentors and nine students in Google Summer of Code this year, and our problem, same as last year, was *too many potential mentors* for the amount of students that were applying.

Also, you may not have had much interaction with the Perl 6 or Parrot communities, but I can tell you, we take mentoring new contributors very seriously there.

For those reading this that *are* interested in getting mentored by someone in the Perl community, the best (but not only) option is to get on the tpf-gsoc-students mailing list http://groups.google.com/group/tpf-gsoc-students and/or come join us in #soc-help on irc.perl.org. I hope to work with The Perl Foundation throughout the year prepare for next years GSoC as well as look into the possibility of TPF hosting its own $Season of Code.

You have to find a good mentoring match as well. I asked for a mentor and Shlomi volunteered but he is in Israel and I am on the east coast in the US. Having a mentor close to the same time zone helps. So I am still looking. I am more encouraged that more of these postings are cropping up so at least in is getting some air time.

Wow, good stuff dukeleto! Excellent to see such mentoring going on.

I also have to agree with you about the Perl 6 culture, it is different from Perl 5, and much more welcoming. I have had some interaction with those folks and can warmly say people like jnthn, TimToady, wiklund, Moritz Lenz, pmichaud, and many others, which make me feel that there is genuine community built in to Perl 6. This is the type of culture I am willing to invest my time and energy in because the rewards are so significant.

I was generalizing of course about the perl culture, and that is pretty much all one can do. However, when I see at least five web frameworks on CPAN, multiple ORM systems, and more CGI modules than there are web sites, I ask myself why are all these things being developed? Isn't it just a land grab? A way to say "I own this slice of CPAN! Bow down before me!"

You may reply - this is just people contributing the way they see fit, and of course you'd be right. But at some point our own self interest is in conflict with code reuse and even best practices. It takes a bit of humility to learn, then teach, and then mentor, someone else's code. I think we need more of that and fewer web frameworks.

FWIW, I was recently surveyed on the subject of mentoring and ended up being quoted in this article: Mentoring in Open Source Communities: What Works? What Doesn't?.

Modern Perl: The Book

cover image for Modern Perl: the book

The best Perl Programmers read Modern Perl: The Book.

sponsored by the How to Make a Smoothie guide



About this Entry

This page contains a single entry by chromatic published on September 29, 2009 11:06 PM.

Failure-Driven Design was the previous entry in this blog.

Why Perl 5.11.0 Matters is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Powered by the Perl programming language

what is programming?