This website was archived on July 21, 2019. It is frozen in time on that date.

Sonya Mann's active website is Sonya, Supposedly.

Remote Mentorship

I read a lot. And I learn a lot from what I read. When I discover a writer I really like, whose work is particularly insightful, I glom onto them — I’ll tear through their whole archive, or if they’re particularly prolific, read all of their classics (defined as the pieces they themselves reference the most).

The internet’s casual and iterative blogging culture encourages this behavior in a way that the offline world doesn’t. Sure, you can read every book an author has written. But what about doing that and following their life on a day-to-day-basis? Social media lets you get to know someone in real-time even when they have never registered that you exist.

Map of the internet via Bill Cheswick. Remote mentorship is possible because of this technology.
Map of the internet via Bill Cheswick.

The term I use for this process is “remote mentorship” — it’s similar to traditional mentorship, but without the constraints of time or place. The mentor doesn’t have to be interested in the mentee or pay any specific attention to them. There’s no need to meet for coffee or exchange letters. In fact, this is scalable mentorship: someone can post once and influence many, without having to dispense one-on-one advice to each enthusiast.

I maintain a public list of people who shaped my intellectual growth. Some of them have mentored me in the traditional sense, and some are friends, but the majority are busy professionals who have maybe acknowledged me once or twice on Twitter. It’s not the same as dedicated hands-on mentorship, but I get just as much out of reading Slate Star Codex as I have out of personal coaching relationships.

Remote mentorship is a combination of the intellectual hero-worship that’s been around forever (boosted by the printing press), and today’s burgeoning influencer economy. It’s like the nerdy version of lusting after Instagram stars.

I’ve been thinking about this for literally years, but I owe a hat-tip to Venkatesh Rao’s “Cambrian Explosion of Consensual Realities” for the immediate inspiration. Guess what Rao qualifies as 😉

Stack Overflow & Discouraging Beginners

“The thing is, bad questions don’t destroy the community. […] But this hostile behavior does destroy the community. It pushes beginners away, who may ask better questions later once they get a bit more of a handle on what they’re doing. And it pushed people like me away; people who are there to help, and willing to do so even for beginners.” — lambda on Hacker News

Despite saying that I was not going to learn how to code, I’ve been playing around with Learn Python the Hard Way. The author has a smart practice of posing questions to the student as quasi-homework — your job is to Google around until you find the answer. Thus you build the habit of solving puzzles via research.

snake clipart

In the “Study Drills” section of the fifth exercise, the author instructs, “Try more format characters. %r is a very useful one.” I suspect I’m not the only student who instantly searched “Python format characters”. One of the first results was a page from the Python 2 docs. The answer was in there, but I didn’t realize that because it was way the hell down the page (here). The top of that page said this, which I found incomprehensible:

“The principal built-in types are numerics, sequences, mappings, files, classes, instances and exceptions.

Some operations are supported by several object types; in particular, practically all objects can be compared, tested for truth value, and converted to a string (with the repr() function or the slightly different str() function). The latter function is implicitly used when an object is written by the print() function.”

I read that and thought, “Well, this must not be what I’m looking for!” Back to Google. The next place I went was a Stack Overflow question:

"I've been looking for the list Python format characters for a good 30 minutes. I can't find any. Examples are %d, %r etc but I need a list with them along with a description if possible please." Closed on Stack Overflow as "not a real question".

Aha! Someone had the same problem I did! (Granted, I was a couple minutes into my search, not thirty, but the original post was from 2010.) Underneath the request for help, a closure note called this… “not a real question”? Hmm, okay. I guess the OP didn’t follow all the “You Must Try, and then You Must Ask” rules (which I wholeheartedly believe in, and to which Stack Overflow’s guidance seems similar) — but it was pretty clear what they were looking for.

I scrolled down to read the answers. This was the first one, ranked by upvotes:

“Here you go, Python documentation on old string formatting. Took me one minute to find (tutorial -> 7.1.1. Old String Formatting -> ‘More information can be found in the [link] section’), something must be wrong with your search strategy ;)” — user delnan

This is helpful because it provides the desired information. But it profoundly fails to empathize with the beginner’s struggle. I suspect that the person who asked this question, like me, found that docs page easily. It was just totally non-obvious that the answer was in there! I appreciate the third Stack Overflow response, which has a tenth of the first one’s upvotes:

“In Topic = 5.6.2. String Formatting Operations then further down to the chart (text above chart is ‘The conversion types are:’) [¶] The chart lists 16 types and some following notes. [¶] My comment: help does not include attitude which is a bonus. The attitude post enabled me to search further and find the info.” — user oceandreamer

Another user, Lennart Regebro, commented, “The first hit [on Google] is now tragically this stupid question” instead of the Python 2 docs page. Well, the docs didn’t help me at all without access to “this stupid question” and the explanations it provoked. Because you don’t know what you don’t know — reading the top of that docs page made me think it had nothing to do with what I was looking for. Yes, I was wrong, but that’s because I’m a goddam beginner! By definition I’m not good at parsing technical documentation!

If your answer to this problem is “read the entirety of every docs page to make sure there is no relevant section”, you’re being totally unrealistic — it’s just not going to happen. Maybe the original asker and I should have done ctrl + f for r% — but that didn’t occur to me, so I assume it didn’t occur to them either.

Beginners need guidance. They’re dumb and they flail around and they get stuck on “easy” problems. That’s why resources like Learn Python the Hard Way and Stack Overflow exist in the first place.

I don’t think the docs of a programming language should be tailored to newbies who have no idea what they’re doing. That would be silly. I do think that people who participate in learning-oriented spaces should not answer questions with this jaded, snarky, put-upon air. It is the opposite of welcoming and it does nothing to make me feel delighted about talking to programmers. But hey, if you don’t want a friendly community or you don’t want more people to learn how to code, then you’re doing it right.

I quoted Hacker News user lamdba at the beginning, but their comment is so good that you should really go read the whole thing.

Sign up for my newsletter to stay abreast of my new writing and projects.

I am a member of the Amazon Associates program. If you click on an Amazon link from this site and subsequently buy something, I may receive a small commission (at no cost to you).