Learn how to build Discourse plugins by helping me

Round 2

Hey everyone, I’m happy to announce round 2 of this initiative!

I’m looking for up to two more people who’d like to work on an open source Discourse plugin, in exchange for specific instruction in how to code and think about building software. It’s a self-driven education in software development through open source contributions and detailed guidance.

I’ve learned a few things from round 1, and have made a few updates to the mentoring model. This is how it’s going to work.

Two mentors!

@gdpelican (James), the author of Babble, Retort, Mingle and a number of other popular Discourse plugins, has kindly agreed to lend some of his time to mentoring aspiring Discourse developers. He and I will be available to all mentees, and particularly for those working on our individual plugins.

The reasons both of us are doing this is the same and have been mentioned in previous posts. In short, we both love Discourse and open source software, and the more contributors we have to our plugins, the better for us in the long run.

You’ll focus on a specific plugin

One of the biggest lessons I got from the first round is that it’s best to focus on an individual plugin when learning. The best way to learn is to incrementally progress in your understanding the fundamentals, while focusing on individual tasks one at a time within a contained context.

You can choose any of my or @gdpelican’s plugins’ to focus on.

Collaborative environments

The first round was largely conducted via PM here on meta. For this second round you’ll be learning and building in a few different environments:

  • A private “Learn and Build” category on my sandbox. This is a private space to ask, talk and share anything you’re working on or are struggling with with your mentor and other mentees. You get your own topic to chat with your mentor in, but can also chat with the other mentees. This category is not meant to replace the great knowledge sharing that goes on here on Meta, but rather to provide a dedicated, private space for learning.

  • Github issues and projects. Individual tasks you’re working on will be handled via the in-built project management tools on GitHub. This is to provide structure to your work, to make it easier to keep track, and also to let folks using the plugin know what we’re working on.

  • A video check-in. I’ll also be hosting a regular video check-in with the mentees to see how they’re going and to surface anything they haven’t articulated in their written communications.

Current mentees

There are currently three mentees in the program:

We’ll be joined by @SaumiaSinghal in December (when she has a break from her studies).

How to join

If you want to join this initiative please reply here or PM me with:

  • What plugin you would like to focus on and why.

  • Your general background, and why you want to learn how to code.

  • Whether you’ve read and understood the “the basics” see here .

Like last time, I will give you a little test (tip: it’s not necessarily whether you solve the problem, but how you approach it). I think this time I will have a quick video chat with those who do well in the test to decide who to include.

We’ll be taking on a maximum of two more mentees.

How to support this

If you want to support this initiative, I recently started accepting donations on my sandbox. You can donate to an individual plugin, or to “meta” which will go towards this program as a whole.

Donations to individual plugins will be shared equally between the plugin maintainers, currently myself, and the mentees mentioned above on the plugins they’re working on.

Donations to “meta”, i.e. to the program as a whole will be shared by James and myself.

To handle donations, I’ve made a number of updates to the Donations Plugin (which I may relaunch soon as just a “Stripe Plugin”). You can see the amount donated to each plugin (or the program as a whole in ‘meta’), as well as the current maintainers and other metadata in category banners at the top of each category.

19 Likes