For developers looking to contribute to the programming world, Instructor Nathan Houle has a recommendation: document. A program or library's documentation is essentially its user manual. Sometimes thought of as coding’s drier cousin, documenting open-source software, Houle has found, can be educational and rewarding.
Lately, Houle has been lending a hand to Ramda, an open-source utility library similar to Lo-dash.
“[Ramda] showed up on Daily JS, and they got a bunch of press, and a bunch of people tried to use it and found that a decent amount of its documentation was sparse, missing, or out of date,” Houle recalls.
“There is almost no pull request that you can make that will be appreciated more than a documentation on an open source project,” says Houle. “So I got a really warm response from them.” (A pull request is a submission of edits or additions to software, which can be accepted or rejected by the code’s authors.)
Both in his lectures and his contributions to the programming community, Houle sees accessibility as a catalyst to production.
"I'm interested in taking projects and making them really approachable for people, because you could write some great software, but it doesn't matter if no one can use it.”
While documentation might seem peripheral to most programmers’ work, there are many natural opportunities to make this sort of contribution.
"Once you get your code above a certain size, more than 10 to 15 files, you tend to start pulling in other libraries,” says Houle. “It's really common to find ones that don't work. You see the set up instructions are outdated or there are three extra steps that you had to do. That's a super simple opportunity for a pull request. Not only do you get the benefit of using that library, you get to contribute. The people who build these libraries have a ton going on, and they really appreciate it.”
On top of that, often the person that benefits the most from documentation is the documenter.
“I know that library really well now,” Houle says.
As teachers often find, explaining something is the best way to truly learn it.