Proposed Improvements to the freeCodeCamp Forum + Localization Approach

Hi freeCodeCamp contributor team, I have some exciting updates for the forum.

Forum link in Navbar

First of all, you may have noticed that we removed the link to the forum from /learn. We wanted to simplify /learn’s navigation. But it’s clear that many of us campers want to be able to go straight to the forum from /learn without having to use the address bar.

So tomorrow we will add the Forum link to the navigation bar of both /news and /learn.

Multilingual Forum

In the past, we have experimented with stand-alone forums for different world languages. But there are some compelling reasons why it makes more sense to have all world languages here together on the same forum.

  1. It reinforces to people that freeCodeCamp is indeed a global community. Only about 20% of people who use freeCodeCamp are here in the US where we’re based. People all around the world use freeCodeCamp, in every single country on Earth (yes – even North Korea).

  2. Many of us are multi-lingual, and could effortlessly move between threads in multiple languages, helping people in the languages that people use when they ask for help.

  3. Hosting all major world languages here on the same forum makes it much easier for people to realize “Oh – hey – I can talk to people in Spanish here, too.” In the past, this has been harder to point this out to campers, and we’ve had to figure out good ways to tell them “oh, hey, we have a Chinese forum over here.” Instead, they can just easily discover these other languages just browsing the forum.

  4. Having everyone on the same forum means we can reduce the number of accounts contributors have to keep track of (such as freeCodeCamp curriculum, freeCodeCamp forum, GitHub, Discord.)

English is likely to remain the most-widely used language in the freeCodeCamp community. For perspective, even with Wikipedia’s many available languages, about 50% of all use of Wikipedia is their English version.

We will also decide the best ways to filter out non-English results from Search.

The simplest way to do this is to make every world language a top-level subforum. For example, I have gone ahead and created our language-specific subforum here:

I propose that each of our parent-level language subforums have these 9 child subforums. Why these specific 9 subforums?

Simplifying the Forum Into Just 9 Subforums for Each Language

We started out with many, many subforums over the past 4 years. We have gradually consolidated these into a few broad, highly active subforums.

Since we are about to add several world langauge-specific subforums, this is a great time to merge some of our less-active subforums into the more active subforums.

Here are the 9 subforums I think we should have in every world language we support:

  • HTML+CSS
  • JavaScript
  • Python
  • Project Feedback
  • Career Advice
  • You Can Do This!
  • Programming Help
  • Contributors
  • freeCodeCamp Support

This is much simpler than our current English-language subforum configuration.

Proposed Simplifications for Our Current English-language Subforum Configuration

Currently we have 3 subforums that are a bit fuzzy in their purpose:

  • Front End Help
  • Back End Help
  • General

I propose we merge these 3 subforums into a single subforum called “Programming Help”. This will become the default subforum since – historically – getting programming help has been the most common reason people use freeCodeCamp.

We would still have 3 technology-specific subforums: HTML+CSS, JavaScript, and Python. Even though we would continue to link directly to these subforums from the “Ask for Help on the Forum” button in the curriculum, I propose we break these out of the “Curriculum Help” Subforum.

My reasoning for this: it is not currently clear for campers whether they can use these subforums to discuss non-curriculum-specific HTML+CSS, JavaScript, or Python topics.

We can not only get rid of ambiguity here, but also simplify the English subforums so that none of them have any child subforums. This is important because the Discourse forum software only allows for 2 levels of subforums (parent and child, but not grand-child). So this would make the English language subforums consistent with the other languages.

Other Subforum Optimizations

I propose that instead of sending campers to the Curriculum Help > Certifications Projects subforum from the curriculum’s “Ask for help” button on the forum, we instead send them to the technology-specific subforum (HTML + CSS for the Responsive Web Design certification, and JavaScript or Python for the other certification projects).

I also propose we merge “Mobile App Development”, “DevOps”, “Data Science + Machine Learning”, and “Design” into our new “Programming Help” subforum. These subforms are not particularly active, and I think one reason is that their purpose is not as clear.

All of this should dramatically simplify the process of choosing a subforum for a new post.

  • Is it about the JavaScript ecosystem (Node, React, D3, Phaser.js)? Post it in JavaScript.
  • Is it about the Python ecosystem (TensorFlow, NumPy, SciKit Learn, Tkinter)? Post it in Python.
  • Is it about something else? Post it in Programming Help.

In the past, we spread our forum community too thin with too many subforums. (At one point we had them for almost every major programming language and for major technologies like Linux and Git.) Over the past year, we’ve successfully simplified the structure, and the community has seems to be posting more as a result.

I am optimistic that by further simplifying things, we can make it easier for campers to use the forum, and easier for contributors to answer questions here. This will also counteract the Paradox of Choice, which essentially means that the more options you present campers with (in this case, subforums to post in) the less likely a camper is to choose to post in any of them.

What are your thoughts?

Do you think it will be OK for us to simplify the structure of the subforums, and distill them down to 9 core subforums for each world language?

Do you think doing this will make it easier for you as a contributor to reply to questions as campers ask them?

What do you think of these 9 subforums I’ve chosen, and their importance in the grand scheme of the forum?

Thanks for your feedback.

6 Likes

it would much help in knowing where to put topics, it would stop that ambiguity for example for Python help that is not curriculum related…

2 Likes

Here’s another +1 for the newer, more straightforward sub-forum structure.

2 Likes

These changes sound well thought-out.

Questions: Will the Contributors subforum lose all children? Also, does this mean there will be one freeCodeCamp Support subforum for each language (human)?

I worry having multiple freeCodeCamp Support posts in all kinds of languages would lead to campers asking for support in their native language (when they could in English), and, potentially, lose out on easier support. That is, more able to support in one language than another.

2 Likes

are there other languages planned other than Spanish?

Hi Shaun,

worry having multiple freeCodeCamp Support posts in all kinds of languages would lead to campers asking for support in their native language (when they could in English), and, potentially, lose out on easier support. That is, more able to support in one language than another.

Yes – this is something that I’ve been thinking about, too. This said, I do think it could be helpful for people to be able to ask support questions in their own language, and get the “your question is similar to” feature in the sidebar when they start to ask a question that has already been asked. Because many of them may not think to ask in English, or may not be capable of asking in English.

Even though English is taught in high school in most countries in the world, in my experience some people are skill a bit anxious about speaking it or writing it – even after years of English classes in school. So it might put people at ease to be able to ask support questions in their native language.

Is this feature language agnostic?

For example, if I start a post about an error in Spanish, will I get referred to existing posts in English?

We hope to have all major world languages represented here, starting with Arabic, Chinese, French, Russian, Portuguese, and Spanish. I hope to find a few key contributors for each language and roll them out slowly – probably starting with Spanish, Chinese, and Arabic.

I believe so. If your message was mostly just a standard error message, you may see “your post is similar to” recommendations in languages other than your native language. We would want to test this and potentially update Discourse itself to better-handle multilingual forums.

1 Like

I definitely think this is a move in the right direction. I like the consolidation and additional clarity that the new structure offers, and opening up to more (non-programming) languages is a huge plus.

And I’m glad to see the forum link coming back. :slight_smile:

2 Likes

Languages

I think that including other languages here makes a lot of sense. In addition to the points that you made I think that it also avoids a “ghettoization” of non-English languages. Also, it allows experienced members who only speak English (like myself) to try our best to help via Google Translate when a question doesn’t get an answer from a native speaker. (I encourage other mods to do this when they can and also to indicate in their response that they used a translation service and may not have understood perfectly.)

Subforum Simplification

My one “yes, but” is about getting rid of “General”. Although I spend a lot of time moving things out of general, there legitimately are a decent number of non-programming and non-freeCodeCamp-specific questions. “What type of computer do I need?”, “What do you think of these other resources?”, “Is it normal to have to look things up every time?”, and so on.

freeCodeCamp Support

I don’t have strong feelings about this, but it might be worth keeping this at a top level, rather than in each language. Although most of the support questions are “how do I claim my certificate” which is easily answered by community members, I wonder if this subforum feels like a more direct way to get help or answers from a moderator, contributor, or experienced member. When I see a support question, I give it immediate attention, regardless of what language it’s in. That wouldn’t change if it’s in a language subforum of course. I’m just wondering about how organization shapes perception. The counter-argument is that non-English speakers may feel less welcome to post support questions if they don’t see the topic in their subforum.

Overall :+1:

4 Likes

Just like everyone else, I think simplifying the forum sounds like a good idea. But keeping a General section might be worth considering.

Having multilingual support is valuable. But I can see it causing some issues as well, some of which have already been voiced.

  • Will people get timely support.
  • Are we able to moderate the different languages efficiently?
  • Might it fracture the community?
  • Having multilingual support both increases and decreases accessibility. That is, if someone does not speak English, it is increased by letting them write in their native language. But if I do not speak that language, it is decreased for me.

I do worry a bit about support and moderation. As @ArielLeslie suggested it might be a good idea to keep support top-level. At the end of the day, I think we will only really know after it has been implemented. Ideas and reality are often at odds.

But I agree, overall :+1:

1 Like

As far as languages, my concern would be being overloaded with a lot of other languages. While I understand that we may have a few Pashtun speakers on here, I don’t think they’re going to get great responses. And for English speakers, having to wade through Spanish, Mandarin, and Portuguese posts might get a little off putting. The fact is that English is the language of opportunity in coding. And I would worry that trying to be (weakly) everything to everyone might damage the quality of what we do well for the majority - clear help in English. I’d rather go for the Pareto win. But if that’s the direction it’s moving, so be it. If we can filter by language, that might help, but then I imagine most people will just click their language of choice and so we end up with essentially different forums.

As to breaking up by techs, I understand the difficulty between breaking down too much and not enough. I don’t know much about the Discourse platform, but it would be nice if we could at least tag things like you can on SO and other places, like a “react” or “redux” or “http” tag. Even if we couldn’t sort by those, it would be nice visually.

2 Likes

In response to this, it does look like Discourse has a tag feature - but it would need to be enabled on the admin panel.

2 Likes

As a user of the forum who visits mostly to see if I can offer help to others I share this concern. Depending on the implementation, like filtering by language, scrolling through questions in languages I don’t know (and therefore also can’t help with) would be a negative to my user experience and I might be less likely to try to help. Not because I don’t want to, but because it is more difficult.

1 Like

That’s actually an interesting topic.

Is English used because most people speak English or because people, who don’t speak English are too anxious to post and just quit being here?

Good point. I think there should be a critical mass of moderators who speak the specific language. Most people probably take the path of least resistance, so they ask in their native tongue. This probably will lead to other problems down the road (getting help on GitHub etc.).

We would also lose quality answers, because a specialist could help in English, but not in another language. But I think the best way is to test it.

1 Like

Yeah, moderation is another issue. You talk about quality of answers, but I think there is also the issue of unmonitored activity. If people start a Romanian thread (assuming we don’t have moderators), how do we know what is being discussed? Is there harassment going on? Something illegal? Sure, there is the Wikipedia model, but I think that is a little different - it’s material that’s meant to be “permanent” and there is a dependably large body of people ready to flag anything.

But whatever gets decided, I’ll support it.

1 Like

The simplification is really good – we could keep going back and forth on this forever, but these categories make sense. Should be more user-friendly, removal of child subforums is good, as is the merging of the slow subforums into “Programming Help”. Makes things that bit easier to manage.

However, “General” would be a big miss because, as noted in a few other comments, it covers things that aren’t programming per se.

Slight worries regarding the language-specific forum, I have similar misgivings to @kevinSmith .

On the one hand, the reasons set forth by @QuincyLarson are good, and I can’t argue with the intent in any way. On the other hand, we get n duplicate, balkanised forums. Personally I feel it should be done explicitly as an experiment for a set period of time and then seriously reviewed, because I feel this is going to be difficult to moderate and manage.

That’s what I think this proposal will be able to tell us, definitely the best way is to test it.

1 Like

I think it is a mix of both. Obviously people that don’t speak English (or are frightened of it) will shy away. But also the plain fact is that English is the lingua franca of the coding world. When I look on github or npm, I almost never see anything that isn’t in English. Chinese is starting to pop up but it is still a sliver. Beyond the most major techs and libraries, it can be nearly impossible to find documentation in anything other than English.

I spend a lot of time looking for a job in Spain and an amazing amount of them work in English. I do see a lot that work in Spanish - but I don’t know that I’ve seen any that work in an “outside” language other than English.

But again, I come back to the Pareto argument - 20% of your work makes 80% of the people happy. That last 80% of the work to make the other 20% happy is a lot of work with a lot less reward.

Does an Italian restaurant improve itself by serving hot dogs and kung pao shrimp and fish and chips because it wants to increase its market share? Or does that divert them from what they do best, what brought their core customers to them, and dilute the quality of the thing at which they excel? It’s can be a balancing act and good points can be made on both sides, but it’s hard to maintain quality and focus while striving for quantity of customers and expanding services into new realms. I tend to value focussed quality over weaker quantity. Is it better to be a high quality focussed product to the majority or try to be a catholicon for everyone?

Of course, if people filter for only their language, it will be a moot point for most. But it also means that the forum help in many of these languages will be of low quality and poorly moderated. And that will become the brand.

But again, I’ll support to the best of my ability whatever is decided.

3 Likes

It makes me think of my wife - she’s a native Spanish speaker and when she moved here her English was passable but still not great. When she went to the DMV she was excited to see that the drivers’ manual was available in several languages, including Spanish. After about 15 minutes she went back and got the English version - the Spanish version was an unreadably bad translation.