Email or username:

Password:

Forgot your password?
Julia Evans

some people who make programming easier

(who am I missing?)

a comic by Julia Evans (@b0rk) titled "some people who make programming easier"

it's a 3x3 grid with a tiny example under each header

the loud newbie
- asks "wait how does X work??"
- someone thinks "I'm so glad they asked, I was wondering that too..."

the grumpy old timer
- someone says "X is so cool!"
- g.o.t. says "it is! let me tell you about some ways it can break though..."

the bug chronicler
- thinks "that bug was so gnarly, I'm going to write an extremely clear description of what happened so we can all learn from it"

the documentarian
- someone says "here's how you do x"
- doc thinks "I'll put those instructions in our wiki!"

the "today I learned"
- says "I just learned this cool new tool
-says "check out this weird bug!"

the "I've read the entire Internet"
- someone says "how does X work?"
- "I've read" says "ah, I read about that recently... here's a link from my 200 browser tabs"

the tool builder
- says "everyone keeps getting confused by x! I'm going to fix it with code!"

the question answerer
- someone says "hey can you explain how x works?"
- q.a. says "I would love to"

the final panel just says “?”

(description by @inherentlee@strangeobject.space)
415 comments
Peter Burka

@b0rk The person who whittles down the huge failing program with the weird error to a five line test case

DELETED

@b0rk

>

"(who am I missing?)"

The Wayland people.

Gwenn Petrichor

@b0rk The archivist : you need to use only version 1.02.01 of X because your computer cannot take anything heavyer ? Of course I remember how it used to work I'm going to emulate your outdated OS and outdated X to check. Wait, where are my floppies ?

electrical tape

@b0rk the “i’ve read the entire internet” is so relatable as someone with hundreds of tabs

Sumana Harihareswara

@b0rk Yay, I have been all 8 of these. That makes me happy.

bcpl

@b0rk the grinder: offers to help and then spends 3 days making it work just right

the niche setup guy: where nothing ever works on his machine

ruurd@mastodon.social

@b0rk hah. The Naysayer. No we're not going to do that. No you don’t need that. No we don’t have time for that. Usually overlaps the grumpy oldtimer and the BTDTGTT greyback…

Hackhörnchen

@b0rk The person who patiently waits until you come up with a solution to the problem, then shows you a more efficient way to do it without making you feel stupid.

The people who ease your embarrassment after you fucked up by sharing their own stories of making mistakes, breaking things and fixing them.

The senior dev who has your back when your boss is upping the pressure to finish a difficult task.

Kay Elby

@b0rk This might be very niche, but "the person who knows who to ask" has been a key one for me. They don't have the answer, but they know who will and aren't afraid to ask them. (I strive to be this person when I am established in a place 😅)

Kay Elby

@b0rk OH! I don't have a clever name, but the person who sorts through old-ass mystery projects with no docs, figures out how they work and writes documentation.

Matt Tearle

@b0rk

Nice!

Adjacent to the old-timer, the Local Historian (aka The Folklorist):

- “Why don’t we do X instead of Y to achieve Z?”

- “Aahhhh. Gather round and I will tell the ancient tale of The Time We Tried That and How It All Unexpectedly Turned to Custard…”

Matt Tearle

@b0rk

Also, thank you for portraying grumpy old-timers in a positive light.

👀

Neil Matatall :xss:

@b0rk the chronicler. The commit history is occasionally messy but the pull request body answers more questions than anyone would ever ask. It always includes alternatives considered that are either in the commit history or live in another branch.

🌈 Andrew ☄️

@b0rk maybe the mentor or similar, either “I enjoy doing this, but it’s a good learning experience for <junior> to do it” or “lol I really screwed that up, learn from my fail y’all”

Julia Evans

@bnut i'm obsessed with the "learn from my failures" person

Greg Mitchell

@b0rk The red-tape cutter - "You need access to this system or tool? Here's how you get it to happen fast"

Josh Braun

@b0rk @codinghorror I love this comic and the whole reply thread! Also, “The person who keeps nudging on a bug report for years until it’s fixed.”

toadjaune

@b0rk I can think of :
- the sysadmin/devops : ci, deployment, architecture and deployment of where your code is gonna be deployed, ensures you can access it and that it's usable, etc
- the observability guru : that one person that keeps installing apm, tracer, profiler, centralizing and formatting logs, and removing noisy output from them, etc

They may or may not be the same persona as the tool builder and each other, depending on how you see it :)

@b0rk I can think of :
- the sysadmin/devops : ci, deployment, architecture and deployment of where your code is gonna be deployed, ensures you can access it and that it's usable, etc
- the observability guru : that one person that keeps installing apm, tracer, profiler, centralizing and formatting logs, and removing noisy output from them, etc

groxx

@b0rk the trouble shooter:
> Q: is it me, or is this weird?
> A: yes! <tears apart entire computing stack>
> A: ......
> A: so long story short: pass 2, not 3.
> A: short story long: if you x and use y then z might pass q to w due to backwards compatibility reasons related to r, I found this bug report and it looks like they missed it in the docs. There are at least 5 other instances of this in the company, lemme set up some patches...

Edward L Platt

@b0rk the librarian: "oh, there's a really good library for that..."

David P

@b0rk The great Stack Overflow answer-er.

David P

@b0rk The person that asks, "I don't understand your question. What problem are you trying to solve?" (I learned to ask that question from the great book _Are Your Lights On?_)

Mina

@b0rk i embody each of those personas during a regular work-day.

Piper

@b0rk The tool builder called me out so hard, I've got to say. Love the whole thing.

Denis

@b0rk the online question self-answerer.

When you are running into an issue with a tool, and you start searching online for the error code, then you see someone posting that error in an issue on the project page. And then a few hours/days later they answer their own question with a workaround.

Francis 🏴‍☠️ Gulotta

@b0rk lol I'm whoever tries to get everyone else to be the #til

Denis

@b0rk "the breadcrumb leaver" ... sprinkling code and documentation with comments and links to context.

Like, when you copy/paste a piece of config from a documentation page, and add a comment with a link for where it came from.

Or, when you grab an environment variable out of the ether, comment with a link to your infra repo where that env variable is set.

Sam Sam You Know Where I Am.

@b0rk The psychologist.
"You are too far-gone with this problem. Stop. Go outside, breathe, sleep, plant a nasturtium, or do anything that is not this programming thing. Come back when you are sane."

Zach Klipp (he/him) 🥥🌻🍉

@b0rk I have seen @py do literally all of these on a regular basis

P-Y

@zachklipp @b0rk 🤗 oooh I love you too buddy!

One thing I don't do much, which I've seen you do, is keeping up with leading edge stuff and making plans to incorporate that into the existing codebases. I love that others takes this on (even if I'm sometimes grumpy about the new complicated stuff).

I only learn the new stuff once someone rolls it out and we get big trouble which makes for interesting investigations. Then I love to dig in, while the house is on fire 😅

Zach Klipp (he/him) 🥥🌻🍉

@py @b0rk I don’t think that always makes programming easier though. At least not in general.

Bill Phillips

@zachklipp @py @b0rk It can. But it takes a *lot* of research work

Bill Phillips

@zachklipp @py @b0rk Even then, some days I feel like, "Maybe it wasn't worth making all our code easier to read at the cost of breaking all our stack traces"

Ray Ryan

@zachklipp @py @b0rk Says the man who nearly singlehandedly moved Square from Java and RxJava to Kotlin, Coroutines and Compose.

Zach Klipp (he/him) 🥥🌻🍉

@rjrjr @py @b0rk Wow I'd like to meet this person, I don't know anyone who's done that singlehandedly 😛

Ray Ryan

@segiddins @zachklipp @py @b0rk

Well of course he does. I'm just implying that he did it with one hand tied behind his back.

Zach Klipp (he/him) 🥥🌻🍉

@rjrjr @segiddins @py geez i need to have you people write my resume. And maybe my tinder profile 😅

Bill Phillips

@zachklipp @rjrjr @segiddins @py Those RxJava->coroutines docs you wrote were sick as hell

Mastodon directive: add to Zach's resume. thank you Mastodon

Zach Klipp (he/him) 🥥🌻🍉

@billjings @rjrjr @segiddins @py in hindsight, I wish I’d published them as a blog post instead of just on the internal wiki. Then I could link from my resume 😛

Bill Phillips replied to Zach Klipp (he/him) 🥥🌻🍉

@zachklipp @rjrjr @segiddins @py Same. I need to set myself a new deadline for pipelining internal things to public

Bill Phillips replied to Bill

@zachklipp @rjrjr @segiddins @py Starting a few months ago, I set myself a deadline of writing something every single week, rain or shine

And that, surprisingly, has been working? So now I have a huge backlog of material

Material that, if I ever change jobs, will never make it out of Square. :(

P-Y replied to Bill

@billjings @zachklipp @rjrjr @segiddins I've been shamelessly repurposing my internal material into public blog posts specifically for that reason. Do it!

Michael Engard

@b0rk I’m sorry to be terribly earnest for a second but I find myself having stumbled upon an actual community of geeks enjoying my geeky things and speaking my geeky language and I missed this so much that I’m slightly emotional about it.

blinkenjim

@b0rk You, you're missing you. Seriously, I would like to share this with my team. I will label the last box You, and I'll write in the question "How will YOU help make programming easier for the team?"

Paul Cantrell

@b0rk
THE COMPLIMENTER

[“Oh that’s nice work. Instead of merely thinking this in my head, I will say so out loud, to their face!”] “Hey Sally, nice work on that patch!”

Steven Heywood

@b0rk
The Naïve Questioner: "What is it intended to do?" (The guy who accidentally reminds you that though you've just invented a really neat coffee grinder you were supposed to be making toast.)

Mr. Completely

@b0rk The Good UX Person

Coder: I think it's going to work, but I'm not sure it totally makes functional sense in context?

UX: Let me review and clarify the spec for you so your work isn't wasted!

Mr. Completely

@b0rk The Infrastructure Genius

Coder: I want to use this tool or framework but it requires a thing that's blocked by a maze of dependency upgrade or other technical requirements, and I hate that stuff, maybe I'll just spin up shadow infrastructure and sob gently

Infra genius: I love that stuff, gimme a a little time and I'll find a solution that works for everyone

✿ Floby 💉😷💨

@b0rk in my experience , after the first 100, the amount of open tabs is measured in pixel width

✿ Floby 💉😷💨

@b0rk currently upgrading my setup to a 4k monitor

bazzargh

@b0rk the panopticon. I monitor _lots_ of work channels and nosey lots of problem threads that seem interesting. Mostly they fall through to on-calls (who I might backchannel a bit) but every couple of weeks, I'll see one that maybe worked on re-running but looks...odd. 'That can't possibly happen. tell me more?'. And it'll be a day of digging, some heisenbug re-occurring since 2016, and 4 services need patched to fix it *properly*...

Bill's in the shop for repairs

@b0rk Is it possible to be all of these people? Asking for... a person.

Mathias Panzenböck

@b0rk The decision maker: Enough bike shedding, let's go with option X and reevaluate at date Y.

Mathias Panzenböck

@b0rk The scope creep reducer: Let's remind us what the focused vision of our product is, and don't frankenstein on things that have no place being there. We can make a separate different, but integrated product for that other thing.

Alisdair Calder McGregor

@b0rk @laser The office admin, for they are the person whose job it is to ensure that there is coffee for the programmers to turn into code.

Jared Davis

@b0rk if it’s not been said already…

“””
The Doer
“Come, sit down with me and we’ll work it out together”
“””

Paddy

@b0rk the pairing buddy ("how do I do X?" "Let's find out together!")

The archaeologist (knows or can find the history of a codebase or system and can explain why things are the way they are)

MilesMcBain

@b0rk The Hacker

“I sniffed the traffic and found an undocumented API call…”

The Git Surgeon

“Oooooh this is bad. Let’s reattach the HEAD shall we?”

draNgNon has VOTED

@b0rk the person(s) who take care of overhead, like tools for generating PRs or ci/cd or just compilation

Stuff you need to work in order to code, but not part of writing the code or even the same domain expertise

wohali 💯

@b0rk be all of these people!

how about "I don't know how X works, but I know who does" -- the superconnector?

Shawn Parker :hachyderm:

@b0rk “The Veteran” : “why am I not running a goat farm instead of doing this?”

Prickly Pam (D-PA)

@b0rk

The tester who explains EXACTLY WHAT THEY WERE DOING when the thing broke.

Instead of saying, "It doesn't work," then when you ask what they were doing when it didn't work, they say, "I hit enter."

Robert Kern

@b0rk I am in Panel 2, and I don't like it.

(Not true. I came to terms with being the Grumpy Old Timer in my 20s.)

gayme (he/him) :flag_bisexual:

@b0rk the Not Replier: finds that what you're doing is wrong, but waits for your self "aha!" moment instead of spoiling it

tef

@b0rk may i humbly suggest "the easily nerdsniped"

"Hey, I'm having trouble with this!"

"Funny, that should... huh. Wait. Let me investigate. That's weird"

[three hours pass]

GeePawHill

@b0rk Something about your friend who laughs in sympathy with your problem, having their own rich experience with that problem.

Morgan

@b0rk that one person who somehow manages to find every relevant StackOverflow question even though you searched it in 4 different ways and found nothing
Also: the infodumper who every 5 minutes goes off on a tangent to explain something you've been wondering about that none of the other experienced programmers/tutorial leaders thought was worth explaining (e.g. & in Rust, once I found an infodumper that shit slaps)

skategoat 🐐

@b0rk the person that goes "oh I have no idea how to do that as well" and then thinks of the solution out loud step by step while talking to you. Reassuring and helpful

Mohit Sindhwani

@b0rk

The Simplifier - if they only need to be able to achieve this capability, we could just do these things. (A bit like the minimalist)

The Efficient Googler - the one who knows how to frame a question to Google and then quickly filter through pages to find the correct, relevant answer (but also reads the caveats before proposing them to you)

Adrian :v_bi: :v_trans:

@b0rk As a newbie (who is actively trying to become more like "the loud newbie" by forcing myself to ask more questions), I have a lot of love and appreciation for "the question answerer" and "the grumpy old timer". I sometimes get worried that I'm bothering people by asking them for help, so it's super cool when people seem to genuinely enjoy explaining things to you.

C.B.Leslie

@b0rk

"apathetic enthusiast"

keeps to themselves until you mention their current obsession.

nf

@b0rk the prototyper “so I couldn’t stop thinking about that problem you were taking about, so I thre together a proof of concept…”

Sheldon McGee

@b0rk What about "the fearless question asker"? The one that will ask a dumb question that the team wonders about too but is too embarrassed to ask.

klausfiend

@b0rk does anyone actually know how X works, anyway? I understand Weyland is supposed to be easier 😂

glyn

@b0rk the user, because without users, what's the point?

the specifier. "what is X?"

the standardiser. "Wouldn't it be great if some implementations of X were consistent?"

the employer. "Let me pay you to build X."

and finally, let's not forget who's below:

the library developer.
the compiler writer.
the operating system developer.
the hardware developer.

Mullaney

@b0rk Forgive me if someone else has said it already, but I can't read this comic without thinking of the website formally known as Twitter.

Alicia

@b0rk

The ones who teach you how to document your code.

Also the ones who port something to every platform under the sun.

Dawn

@b0rk The Arcanist: "I'm stuck on this problem that seems really weird." "First thing to try is <thing that's obvious to everybody familiar with the details of that specific thing, which is to say maybe three of the people you'll ever meet>." "Thanks, that worked." (These tend to also be grumpy old timers and there's some overlap with the 'I've read the entire internet'.)

Also the 'back up three steps': What are you really trying to do here? Would this other approach be a better way to do that?

Grant Neufeld

@b0rk The shield-bearer (or maybe “human shield”).

In my first coding job, my manager shielded my co-workers and I from all the corporate politics and struggles so we could have a relatively low-stress work environment to focus and learn. That manager’s stress level was often beyond ridiculous, sadly.

fluffy 💜

@b0rk I like to think I'm several of these, and also these are skills that are never actually valued on the job in my experience.

Jason Anthony Guy

@b0rk @mekkaokereke

The Editor: Takes your Really Good Thing and makes it Somehow Even Better.

The Socrates: “Ok… and what happens if you do that?”

The Synthesizer: Summarizes two hours of meetings/discussions/readings into three bullet points that explains everything.

The Dumb Actor: Unafraid to look dumb by asking an “obvious” question, so the answer is on the record and not assumed.

Jason Anthony Guy

@b0rk @mekkaokereke

The Contextualizer: Has so much history, can explain every decision made by the team to help understand a why we are where we are.

The Edge Caser: Have you thought about X, Y, and Z?

The Connector: Knows everyone and willingly puts you in touch with them to solve each others’ problems.

Ellie

@b0rk I think I did all of those while being on-call for the better part of a decade, annoyed people, and got super burned out. 😭

Jeffrey Bouter

@b0rk the Pippi Longstocking

"I've never done that before, so I'm sure I'll be able to do it"

Kit Bashir

@b0rk @betsybookworm I love your drawing especially their “shirts”. What about the “copilot”? “I don’t know either, let’s find out together!”

nick

@b0rk You, tomorrow, when it's your turn to help someone else 😃

WesMason

@b0rk
Why am I called out by so many of these...
@janeadams

Richard Hendricks

@b0rk The artist who makes nice, easy to read zines, of course!

Patrice

@b0rk The patient mentor asking just the right questions to guide them to the answers

Niclas Hedhman

@b0rk

The Ignored Genius

"Everyone is doing X the wrong way. Here is it how it should be done. Faster, smaller, simpler."

Brain explodes.

iwein

@b0rk the researcher: "this concurrency issue is vexing" -"yeah fascinating... Let's design an experiment to catch it in the act"

Hopefully you know the type. Always missing deadlines, never scared of a puzzle.

John Blair

@b0rk I prefer to be the cheerful old timer!

Thomas Svensson 🖖

@b0rk

Great stuff, both funny and educative.

"The news bearer"

"X is old stuff, everyone is moving to Wayland now."

Randy Au 🙃

@b0rk I think no one's mentioned the CS/algo person who can say "that problem looks like the one called XYZ in the lit and the best/most practical solution so far is this reference"

fabs();

@b0rk the duck. Programming was easier for me when I found my one true debugging partner.

E.M. Faulds / Beth

@b0rk uhh I saw this blog and it may be extremely relevant noidea.dog/glue.
As the ND woman on the team, I often covered several of these squares, and then got passed over for any thanks.

Pete Alex Harris🦡🕸️🌲/∞🪐∫

@EMFaulds @b0rk
One of the questions in the team healthchecks at Skyscanner is whether glue work is being distributed fairly. Not to say it always is, but at least someone's thinking about it.

Marco van Burgsteden

@b0rk The insomniac genius. Had a colleague abt 25 years ago: hey Fred, would you have a look at this, I can't get it to work. Fred would calmly do his actual job (sales) that day, log on that evening at home and the next morning there'd be perfectly functioning code for me. Commented and all.

Often passively aggressive comments, but hey, who's complaining?

clayote

@b0rk Fans. The fact that I have a lot of stars on GitHub keeps me going.

Renarde

@b0rk Tutorial-man, they make tutorial about almost everything on like 12 website.

LovesTha🥧

@b0rk the patient listener.

Can be done as a punchline and have it be a rubber duck

Ole Hüser

@b0rk I’m like that Tab Girl. I also always have to much tabs open.

WearyBonnie

@b0rk
I've only worked in an environment where we got to work very closely with our users so this may not be universally applicable, but: the person who understands what the user actually needs, not just what's currently shiny & popular

Jonathan Hendry

@b0rk

The manager who allows time for this.

Go Up