As a developer, I constantly learn new concepts and tools.
This learning process usually starts when I’m coding and I get stuck.
I do a quick Google search and usually end up on a Stack Overflow page that looks like this:
Then at lunch, I hear all my friends raving about something called functional programming.
“Hm…” I think to myself. “I only learned object-oriented programming, and am a bit embarrassed to ask what functional programming is.”
So I turn to my laptop. “What is functional programming?” I ask Google.
And Google tells me to read a Wikipedia article that looks like this:
Wow — that’s a lot of big words, links to articles, and footnotes. Entscheidungsproblem? Is that even English?
I just wanted a “good enough” explanation of what the heck functional programming is.
Introducing the freeCodeCamp Guide — good enough explanations for busy people like you
This desire for “good enough” explanations inspired us to build the freeCodeCamp Guide.
The Guide is a searchable reference that aims to cover all concepts related to software development.
The articles are simple enough for non-native English speakers to understand them. They’re short enough for busy people to read them while taking a few sips of coffee.
Currently, the freeCodeCamp Guide has about 3,000 articles. About half of these are “stubs” — topics that we know are important, but haven’t had time to write yet.
These articles cover topics that aren’t part of the freeCodeCamp web development certificates, like SQL:
For our search engine, we’re using the powerful open source Elasticsearch tool. Not only does this search through the freeCodeCamp Guide articles, it also searches through:
- hundreds of interactive freeCodeCamp coding challenges
- hundreds of freeCodeCamp YouTube videos
- and soon, thousands of freeCodeCamp Medium articles
This entire project is completely free and open source. So if you’re looking for an easy way to get started contributing to open source, this is it!
How to contribute to open source — right in your browser — by improving the freeCodeCamp Guide
You can contribute to the freeCodeCamp Guide right in your browser on GitHub. You can also do this without going through the usual process of cloning the GitHub repository to your local computer, installing packages, and exploring the codebase.
Instead, you just need to choose a topic you’re interested in — maybe you just discovered a new design concept, for example — and write about it.
Currently there are thousands of topics and sub-topics. Most of these are Wikipedia-style “stubs” with nothing more than a name. You can do some research and help flesh-out these stubs.
Here’s a short gif showing how you can do this:
The steps are:
- Explore the guide folders and choose a topic you want to write about.
- Open that folder’s index.md file by double-clicking it.
- Click the pen symbol in the upper right-hand corner to edit it.
- Make your changes to it. You can embed images, YouTube, CodePen, REPL.it — whatever you need to help teach a concept.
- Scroll down and describe your changes in the commit message.
- Make sure the “Create a new branch for this commit and start a pull request” radio button is selected.
- Click “Commit Changes.”
- On the next page, click “Create Pull Request.”
We will run some tests to make sure your changes didn’t break anything. Then one of our maintainers will give you feedback on your article. Once everything looks good, we’ll merge your pull request.
Your contribution will automatically be deployed to the freeCodeCamp Guide, where millions of people can read and reference it.
Contributing to our guide articles is a good way to ease into contributing to open source. You can also join our Contributor chat room to hang out with other contributors and ask questions.
How we built the freeCodeCamp Guide
Over the past few months, we’ve used a variety of tools to build this fast, single-page app:
- React and Redux
- Gatsby.js — a tool for creating fast static websites
- Elasticsearch — the gold standard for full-text search
- Netlify — a high-performance static website hosting tool
The following people have been instrumental in the development of the freeCodeCamp Guide so far:
- Stuart Taylor
- Heather Kusmierz
- Timo Keurentjes
- Steve Chevalier
- Vanessa Sena
- Kuriakin Zeng
- Eric Leung
- Kevin Holmes
- Rahul Tiwari
The freeCodeCamp Guide is very much a work in progress. If you notice any bugs, or see any ways that the freeCodeCamp Guide can be improved, create a GitHub issue and we’ll look into it.
If you want to support the freeCodeCamp Guide and other open source efforts that the freeCodeCamp community is building, you can support our nonprofit with monthly donation you can afford.
Have fun exploring the freeCodeCamp Guide!
Thanks for reading, and for being a part of the freeCodeCamp community. We’re going to keep doing everything we can to make life easier for busy people like you!