[TriZPUG] Mentorship Program

Chris Calloway cbc at unc.edu
Thu Apr 16 21:58:49 CEST 2015


On 4/15/2015 10:33 PM, Kurt Grandis wrote:
> Hey Folks,
>
> At the PyCon Community Organizer meeting, the Chicago UG (ChiPy)
> mentioned that they've set up a mentorship program.
>
> The idea is to match beginners up with experienced users and they would
> meetup (physically or virtually) for at least 1 hour/week for 3 months.
> They would work together to come up with a plan to achieve the mentee's
> envisioned goals (be it professional or otherwise). Recommendations,
> code reviews, pairing, introductions, reading list curations,
> discussions, etc.
>
> Announcement:
> http://blog.tathagata.me/2015/03/chipy-python-mentorship-dinner-march.html
> http://blog.tathagata.me/2014/10/chicago-python-user-group-mentorship.html
>
> FAQ: http://www.meetup.com/_ChiPy_/messages/boards/thread/48812700
> Mentors: http://www.meetup.com/_ChiPy_/messages/boards/thread/48806595
> Mentees: http://www.meetup.com/_ChiPy_/messages/boards/thread/48756823
>
> We have a LOT of project nights and people pitching in and helping
> already. I'm always impressed whenever I attend, so maybe it's not as
> relevant for this area? I can imagine having a stable contact to reach
> out to and by also having some mid/long-term personalized guidance and
> support could also be very helpful. Anyways it sounded interesting and
> wanted to share the concept here. Food for thought.

tl/dr: I can't wait for you to do this.

The thoughts growing out of your food:

I think it is a relevant concept for this area specifically because of 
my experience at project nights, which are great but not as effective at 
mentorship as one would hope. That's because mentorship is only one of 
the project night possibilities. Project nights have many other aspects. 
Community building might be the strongest point of project nights. It 
has kept a lot of people more connected than they would otherwise be. It 
really puts the mutual self-help concept, which seems to me built into 
Python, to work.

I kind of have one person coming to project nights whom I am actively 
trying to mentor because he wrote to me and asked for that kind of help. 
That help is kind of open-ended, however. I listen to his goals and I 
try to devise paths to get there. I'm just there for when he needs me. 
But we don't meet weekly like the ChiPy program, nor have I devised a 
custom curriculum just for him like the ChiPy program. We haven't set an 
ending term of three months like the ChiPy program. We discussed the 
pros and cons possible paths and he picked some. We originally met 
outside project night and inviting him to come to project nights was 
just one of the paths recommended in the interest of my time. In fact, 
because he's sharp, he picked a path that was better than one I'd ever 
seen before and the experience educated me about a fantastic resource I 
hadn't known about previously despite having looked for something like 
it. I never fail to learn things when trying to help people learn.

But I think that personal commitment to one person's mentorship is kind 
of unusual at project nights, though. I've been coming to project nights 
for a long time now and this is the first time I've established such a 
one on one relationship before and it only happened in the last couple 
of months. I've had formal invitations from a couple of other local 
people in the past to do that to which I replied positively, but the 
invitation turned out to be insincere and were more of pleas for free 
consulting on grand ideas for world domination. One they figured out I 
wasn't going to write their code for them, I never heard from them again.

The usual pattern at project nights for mentorship seems to start with 
when we have introductions around the meeting space. The introductions 
seem to be key in getting things moving. They take the form of the usual 
your name, your employer, what you do with Python. Because project 
nights have open ended hours, we tend to wait until we have a critical 
mass of people present to have introductions when everyone has a piece 
of pizza. This might happen as late as an hour into project night.

During the introductions new to programming or Python will 
self-identify. If I'm I'm hosting the project night or leading 
introductions, after introductions I'll query the newbies for what path 
they are currently on and if they want suggestions. If they want 
suggestions, I try to give them from what I feel are appropriate paths. 
Those suggestions tend to change over time as I find newer and better 
paths. If there are several people needing help, I try to solicit 
volunteers and there are some usual suspects who are good at responding, 
often without even having to ask. We even have some advanced beginners 
who are good at coaching beginners, which I think it a great experience 
for those advanced beginners.

There are all kinds of outcomes from that, but they follow a few general 
patterns.

A frequent one today is someone is already on a path with Coursera and 
wants to continue that. I like that because if someone has the 
motivation to take a MOOC, that to me is indicative of some degree of 
self-selection. So we make ourselves available for assistance if there 
are questions. At the last project night I helped someone completely new 
to programming, not just Python, with their Coursera homework. That 
person needed a line by line walk through of iterating over a text file 
object. Even though the Coursera course was designed for people new to 
programming, it was still weak on explanation and shoveled out a 
examples at a higher level than I would expect someone new to 
programming to pick up unless that were one of those one in a hundred 
people with completely natural talents. He needed that walk though 
repeated several times. He needed to stop at several points and have 
things explained in much greater detail than the course material offered 
and with many side digressions to illuminate why things were working 
rather than leaving it up to magic or osmosis.

Project night is good at that pattern. And he seemed relieved to get 
that help. But I would expect he would leave project night, continue 
with Coursera, and continue to be confused. If project nights are your 
only opportunity for personal one on one help in such situations, it 
might take you a long time to get through that one Coursera course. I 
always encourage people in those situations to email or call me for help 
anytime. But I rarely get takers. I make sure they are one our email 
list. And I make sure they know about the awesome Python tutor list. But 
I see little evidence of followup there. I think the more newbie a 
person is, the more trouble they have asking for help, or asking for it 
in constructive ways, and coaching people on asking for help is yet 
another skill.

Sometimes my approach with people who are having MOOC trouble is to ask 
them if they are happy with their present path and if they are open to 
alternatives, suggest a different path. But the insufficiency of the 
project night level of help in such a situation goes a long way to 
explaining how a frequent further outcome of this pattern is even though 
such people seem to really love the help (and pizza) they got and get 
excited that they made some progress at project night, nine times out of 
ten you'll never see them again. There are degrees of self-selection. 
That's OK because if everyone who ever got excited about help they got 
at project came back for all the subsequent project nights, we'd soon 
not have a place big enough to meet nor enough time and people to help.

I don't know the degree to which one can fight the self-selection factor 
in Python. Nor do I know the degree to which I want to fight that. One 
of the things I loved most about the Python community when I first found 
it was what a better quality of intellect I found than in any other 
software community I'd ever encountered. It didn't take long to figure 
out Python's self-selection culture is what makes that quality. I 
sometimes wonder if by trying to lower the bar to Python, am I 
contributing to a yet another future software ghetto? I don't know. But 
I do feel strongly that to make progress as a society, the younger we 
can reach people with software skills, the better. Most of the really 
great programmers and data scientists I know were tinkering at a very 
young age. Maybe you can't fight self-selection. But maybe you can 
identify self-selectors earlier and give them all the support they need.

Another pattern happened at the last project night. Thanks to Clinton 
Dreisbach, two recent graduates of Ironyard's Python program showed up. 
They already had projects in progress. We discussed their project 
problems and I think got them unstuck on a database connection problem, 
or at least pointed in a better direction. A bigger deal, though, was 
that they were looking for work. So we got them a plan for employment 
networking involving TriPython. That kind of assistance, where someone 
is already well down their path, is much easier to give. I think we will 
continue to see those two people show up. This is also a really 
important reason for project night in itself. I'm convinced that having 
a community on-boarding process and activities for people who are fresh 
out of training programs is essential. It does no good to invest in 
education if the result is never to put the education to work.

There are many other patterns to what goes on at project night. But I 
don't think it is germane to examine them all on an email list or to 
comment on the efficacy of a more formal mentorship program. I think 
just those couple of mentions can make it is clear that more people 
could be helped more. Which goes without saying. People can always be 
helped more. Part of me wants to limit how much TriPython is perceived 
as a service bureau because I don't think we want people thinking 
TriPython is simply a place where one comes to get served by people who 
are waiting to wait on you. If your user group is about rolling out a 
doormat, and you are the one doing the rolling, don't be surprised when 
you get used like a doormat. But at the same time, in the do-acracy, we 
want to encourage and enable anyone who is willing to offer a service to 
others.

There are several features of the ChiPy program that I find interesting. 
Not all of them would be necessary here. Just because somebody does 
something a certain way in one place doesn't mean everyone has to do it 
the same. But I think it's worth understanding a few things about the 
ChiPy program. It would at least show what kinds of decisions need to be 
made by someone about what a mentorship program would look like and how 
it would operate. The ChiPy progam appears fairly heavyweight:

# They had an application process. That means someone made an 
application and an application submission mechanism. It means someone 
administered an application judging and/or matching process.

# Not everyone who applied got matched to a mentor. That implies 
building in the possibility of disappointment or raising limitations on 
the promises made.

# Someone or group of people decided on some levels of mentorship to 
offer. Some were more in demand that others. Some were more successful 
at finding mentors that others. Medium skill level mentorship seemed 
most in demand. Advanced skill mentorship seemed scarcest in supply.

# Someone kept metrics on their program so that we even know those 
things. Who would have thought there are people all about quantitatively 
verifying the efficacy of their ideas. :)

# The program has a fixed term. That means it also had a start and end 
date. That's probably a selling point. But it may mean that the program 
has to line up in time with other opportunities, like the graduation 
dates of other training programs. A continuous or on-demand program 
might be a consideration?

# The mentors develop a curriculum for each level of mentorship and keep 
that curriculum in a common repository. That means someone has set up a 
repository and access. I don't know if that means that all the mentors 
have to use a common curriculum or not. I don't know how rigorous each 
mentor is about creating or following a pre-determined and/or recorded 
curriculum.

# Someone solicited local Python shops to participate. They went outside 
their membership as a user group to find mentors. That's pretty awesome 
right there. That expands the reach and impact of your user group. But 
it also means someone was unusually persuasive. Wonder what kind of 
carrots were dangling from their sticks? It goes a bit against the grain 
of do-acracy. Someone is running around asking other people to do 
something rather than doing it themselves. But if in the asking you can 
make it the idea of the person being asked...

# Someone spent a good amount of effort on communications, publicity, 
and outreach. It takes effort to find and guide people into such a 
program. It takes effort to tell the story about it. Emails, social 
media, blogging, phone calls, reaching out to other groups, conference 
talks, group meetings, personal meetings.

# Someone spent some time on organizing and coordinating. When you see 
activities like a kick-off dinner, you know there is a mastermind at 
work behind whoever else is involved.

I just love this as an idea. In order for it to become a reality here, 
the do-acracy has to do its thing. I know for a fact that I cannot 
mastermind this. Organizing, publicizing, and participating four 
meetings per month puts me at my limit. Officially open ended mentoring 
of one person puts me at my limit. And I have someone at work that I 
have an even more active mentoring relationship with that I need to give 
more energy to than I currently am.

More people could be helped, but it will take more people helping and 
self-organizing. We have seen more people starting up their own Python 
training programs locally in the last few years, exactly what a 
do-acracy should do (if you don't like the path, blaze your own), and I 
hope project nights offers those programs an avenue for follow-up. But a 
mentorship program could be even more effective follow-up. I always told 
PyCamp alums that I am willing to be their free Python coach for life. 
Maybe only one person per class takes me up on that. That maybe because 
they got tired of me at PyCamp or it may be because they realize I can't 
answer every question daily from hundreds of graduates. It would be 
wonderful if there were a way to pair each person trained with their own 
personal helpful Python friend.

While I'm at my limits, I can offer support for anyone who wants to do 
this in the same way I offer support for anyone creating any kind of 
local Python activity. We can give you floor time for speaking at any 
meeting. I can give you posh meeting space in Chapel Hill in the 
evenings. You can use and abuse this mailing list to your heart's 
delight. I can give you whatever access you need to our website or 
hosting infrastructure you might desire including support. I'd like to 
give whatever support I can to anyone who wants to pick up this ball and 
run with it.

-- 
Sincerely,

Chris Calloway, Applications Analyst
UNC Renaissance Computing Institute
100 Europa Drive, Suite 540, Chapel Hill, NC 27517
(919) 599-3530


More information about the TriZPUG mailing list