Dear allies and friends,
You're out here and I see you. Thank you for being here and taking the time to offer coding tips and solid career advice that 4 jobs and many years of self study would not have given me. A lot of you are deeply passionate, opinionated and experienced, have the best intentions but sometimes your delivery can use some improvement.
This is the one day I will do the work of explaining what's helpful and how to help, from my able-bodied and hypervisible perspective. Then the other 364 days I can spend levelling up, advocating for myself and actually helping others! 😄
This isn't a list of ideals; if I've listed this, it's because someone did something I found really helpful, and I wanted to share it with you all.
Find out what it is exactly they're having trouble with. Separate one problem from another if they're conflating things. Helping someone new may seem extremely boring and tedious but those with the right attitude will collect and learn what they can piece by piece from others who have time. If you are short on time, point them to the right resources. A link or video that explains the relevant problem might be helpful, while your favourite white papers might be too overwhelming.
Ask questions like "What are you trying to accomplish?" "Why do you think it's stuck?", "Have you tried ____?" to encourage problem solving. Helping them break down the problem or large concept, pointing out which part doesn't work or help them realize what their assumptions or mental models were. Guide them to find an answer to explain why your solution works.
Own mistakes and apologize when wrong. When this kind of behaviour comes from people with experience or at the top, it sets a tone for people to be psychologically safe and intellectually vulnerable. Soon, other team members start doing it too.
On a similar line, please use your power or seniority to create a healthy environment for learning and sharing difficulties. That means having a kind one-on-one with those who may share dismissive or elitist attitudes with coding, or casually discouraging offensive jokes on the spot. Comments like "What, you don't know ____?", eye-rolls and sighs when someone asks a question, or "We already went over this last week!", "Just read [link]", "This is bad" without an explanation of how to improve create a fearful environment and decreases trust in team members.
Don't make it up though.
For a long time I felt programming was something of a personal talent. If I was not logical or mathematically inclined as such and such, I would not be able to do certain things. This is not true after hearing even senior folks once struggled with simple things. It brings some common ground to the table and demystifies the treachery of 10x competence. I realize that programming is a type of thinking that can be learned and requires practice.
4. If your correspondence is over a longer term, point out any gotchas if someone comes back stumped.
Hearing the exceptions first usually doesn't help them avoid them as people often learn by doing, and usually they discover it themselves.
You are not mansplaining if someone doesn't already know something. And if you suspect they might feel patronized you can say something like "You may already know this, ..." (I actually use this line with men a lot because I don't want to embarrass them or put them on the defensive for not knowing something lol)
If they're asking, they've already expressed they don't know (and gotten over the fear of looking stupid). You will help them a long way!
This might be their first impression of a community and kind strangers have made a huge difference towards my impressions of working in tech. There are many tech worlds, and I am lucky to have found the ones I like to inhabit.
Because the most mediocre of us have had all had crises of confidence and occupational stalemates. If they're really unsure about continuing or thinking about quitting, help them figure out what they want to do with programming or why they enjoy it.
This last one is just my opinion:
Open doors for them, but only when you're sure they'll succeed or have a buddy. Be invested in their growth. Most people without CS degrees or typical mentorship work doubly hard to prove themselves.
Yes, of course we need to have more femme, trans and queer and nonbinary leaders of color. But I doubt even the most confident and capable of senior devs from a marginal position will be able to invoke much change or stand for much if your work culture encourages problematic attitudes.
Don't just throw their resume in the door because there is a need to have representative interviewees, or if you know the culture is intolerant and clique-y, or there are no resources for onboarding/mentoring them, or if they're not ready to succeed in a role. That won't level the playing field. It's just going to make it more unappealing.
Stop emphasizing or speaking of interviewing for "culture fit". It feels like a needless assessment of assimilation to get through the door.
We get that you want to hire a decent human who isn't a maniacal sociopath, who's able to work with others. Just saying what a great and open-minded workplace you have is fine and dandy. We've all heard that before.
In the case of already-hired coworkers who from minorities, develop the curiosity to understand where people are coming from. (Ok, the first question probably should not be racially or ethnically where they are really from since they get asked that a lot, but their view of things, their previous jobs, their favourite movies or foods...) Allowing them to be themselves without question, celebrate their own holidays, have their accents, wear the clothes and hair they want without scrutiny is a baseline expectation for feeling welcome somewhere.
Note: This article does not reflect the opinions of my employers, previous, current or future. This article reflects the opinion of many projects and communities I've been a part of.