Learn how to be a great member of the Exercism community
We want Exercism to be a great place to spend time, whoever you are. To ensure that Exercism is that, we place a strong focus on being good community members.
This is formalized in our Code of Conduct but can be summed up simply in one sentence: Be kind.
There are a few principles to try and keep in mind as you contribute to Exercism. Whether you're mentoring, learning, hanging out in a chat space, or helping build things on GitHub, if you follow these ideas, you'll find that Exercism can be an incredibly fun and rewarding place to spend time:
The vast majority of people who are involved in Exercism participate because they want to help others. They're probably passionate about tech, maybe interested in education, but overwhelmingly want to be in a space where they're building something positive with others.
That means that the majority of discussions are happening between two people who want the best for each other and also for Exercism.
Sometimes, when disagreements happen, it's easy to jump to the conclusion that the other person is being difficult, or not listening, or not understanding your point. It's easy to imagine the other person feeling smug, polishing their ego, while they rile you up with their "wrong" opinions. In reality, that person is much more likely to be trying to communicate something that they feel is important and not finding words or strategies that are clear to others.
When we step back and presume everyone participating is trying to be kind, trying to do the right things, and trying to be clear, it makes it a lot easier for us to loosen the grip on our own egos and actively try to listen to the other person's point of view.
Which leads us to...
Learning that you're wrong about something is the best thing that can happen to you, because you're now less wrong than you were before. If you're someone that cares about being scientific in your thinking, pursuing knowledge, and being correct in things, then discovering you're wrong is the most exciting thing possible.
So when you enter into a discussion on Exercism, view it as an opportunity not to prove you're right but to discover where you might be wrong. In doing so, you may become more correct than you were before.
Adam Grant wrote a whole book on this. In it he quotes Ray Dalio saying "If you don't look back at yourself and think, 'Wow how stupid I was a year ago', then you must not have learned much in the last year".
Exercism is built on the tenet that we don't know what we don't know. The whole platform works around mentors pointing out knowledge gaps that you don't know you have. And it is an incredible experience when both sides are open to new information (very often it's the mentors that realize they didn't know something themselves when seeing new code and strategies from a student!)
It's easy to remember that feeling in the context of being a student in a mentoring session, but that spirit of openness just as important everywhere else within Exercism. When you think something sucks about the website, start by asking yourself what things you might not know— a decision that looks ridiculous from your perspective might indicate a gap in your knowledge — just as much as it might indicate that the decision actually is ridiculous.
Take a look at our post on Chesterton's Fence for some practical examples of how this principle applies.
A huge part of building a successful product, and a successful community, centers on people bringing different opinions and perspectives, and discussing those with the aim of finding a common truth. It may even require some disagreement about the accepted truth to arrive at a better truth. Disagreeing with each other is therefore a critical component of Exercism. Disagreeing with people constructively is a skill — one that is difficult to master.
Here are a few guiding points on how to disagree constructively within our community:
You've found a problem and feel like someone needs to know about it. The first thing to ask yourself is do they? Will telling someone that something is wrong make things better? Are you adding noise or signal?
More often than not, telling someone that they're wrong is great. You help them address a knowledge gap and help make Exercism better. But sometimes it's not worth the noise or energy, and correcting someone just makes someone feel worse about themselves. So before you jump in, just make sure that it's the right thing to do for other contributors.
Closely linked to the first point, our tribal nature often feels the need to comment when we see someone expressing a common (or conflicting) opinion. You see this a lot on GitHub with people adding 👍 and 👎 emojis onto every comment or spamming a thread with a "Me too!" comment. Many people see a public disagreement and feel they need to "reinforce" the people who's opinions they agree with.
If you're not saying something new, or something useful, ask yourself whether you need to say anything at all.
Each situation is different, but think before you click or type.
So you've gotten into a disagreement. Great! 🎉 Now, make it count.
Remember, you're not disagreeing with a person — you're disagreeing with their current view on something. Ensure you give them room to change that viewpoint without them feeling like they lose face to do so. Empower them to see the value of your viewpoint without making them feel stupid. Don't make it personal.
A clear red flag is needing to quote what someone has said to point out where they went wrong or contradicted themselves.
People contradicting themselves is often a sign of evolving thought.
It doesn't prove they're wrong — it proves that they're allowing their mind to be creative.
They're exploring different avenues, and putting things together in a different way.
Encourage this!
And remember to be your own person. You don't need to point out that you agree with X or that Y is clearly correct. It's not about people, it's about finding the best solution. Add signal, not noise.
Often disagreements don't come to conclusions that everyone agrees on. In fact, in Exercism nearly everything is some sort of compromise. You will therefore nearly always be a little unhappy with the outcome.
It is critical to being a good community member to accept decisions and embrace them, even if you disagree with them.
Decisions have to encompass a lot of viewpoints and they will ultimately contain a lot of trade-offs. What's good for one language track might be a little worse for another. Some architectural or organizational direction might cause you more work than it causes someone else. A site-wide or community-wide consideration might be deemed more important than your track-specific one.
If you don't feel you understand why a decision has been made, always feel free to ask. But once the decision is explained, the onus is on you to accept it even if you don't like it. If everyone strives to do this, the next time a decision does go your way at the cost of someone else's pleasure, you won't feel their guilt or resentment, and can focus your energy on more productive issues.
And trust that decisions are a made in good-faith — everyone is trying to do what is best for the community, the platform, and our students.
There are lots of ways to embrace being kind within Exercism, but the most powerful is to consider how your words affect others.
In a cross-cultural space full of people from different backgrounds -- who share different beliefs, value-systems, and natural languages -- communicating clearly is a super-power. It's easy to know how you intend your words to come across, but it's difficult to know how others perceive your words.
Take a read of The words that we use to learn more about why this matters so much.