Teach, Don’t Tell (2013)
stevelosh.com
stevelosh.com
I've found it useful to take lessons from Kathy Sierra's excellent "BADASS: Making Users Awesome" book. Look, folks, people don't want to use your library because the library itself is awesome - they want to use it to make something awesome for themselves, or to do something that makes them look awesome. Focus on how a new user can use your library/tool to accomplish what they want, not just a laundry list of explaining features.
Apply some of the marketing wisdom and user empathy resources and you will be so far ahead of 90% of the libraries/tools/internal code that exists today.
A git repo with a basic example is NOT a tutorial and teaches very little.
I greatly appreciate all the boilerplates / examples people put out there. I really do, I've spent a lot of time digging through them and have learned a great deal. However it is very inefficient. While they show the "what" to do, they often neglect the "how" and the "why".
> Seriously: fuck wikis. They are bad and terrible. Do not use them. Take the time and effort to write some real documentation instead.
As a counterpoint, a well-maintained wiki in the right situation can make the difference between confusion and enlightenment. A wiki isn't a substitute for proper documentation, but it can be an effective supplement for things like "the docs didn't cover this particular corner case very well, so here's what I did to resolve it, and if anyone can improve on it, have at it".
I also disagree with the assertions that wikis as documentation (instead of as a supplement thereof) are inherently bad in and of themselves, but I do agree that they won't magically populate themselves; the authors of the system in question would be wise to produce the wiki's content themselves and be actively monitoring for erroneous edits, at which point - as the author suggests - said documentation might as well be checked into version control alongside the rest of the code.
A crowd is at a tremendous disadvantage when called upon to provide a singular vision. The crowd shines when a job demands completeness.
Once the newcomers or old hands take their lessons and return to their work, they're going to run into unpredictable issues that would require a tremendous breadth of coverage for any one knowledge source to handle. That's where a wiki like the one for Arch can be a big help.
http://gaearon.github.io/react-dnd/examples-chessboard-tutor...
The "Learn" section (the blog, actually) is also very good.
Figure out what to practice, then practice :-)
That's what I'm currently doing with j2c, a small js library.
After writing the core (JS object to CSS compiler) in a couple of evenings, I decided to play the open source game, polish the API, bullet-proof the test suite and write good docs. That took much more time, and I'm not fixed yet on the final API.
[0] - https://github.com/sjl/
[1] - http://stevelosh.com/blog/2012/07/caves-of-clojure-01/
* Doing a lot more meatspace stuff (guitar, bass, photography, etc). * Getting ready to move to Iceland to go back to grad school in the fall.
Once things calm down with the move I'll likely be writing/coding publicly a lot more again.