Oh and Android design standards and best practices... Nobody tells you which stuff is outdated and that you need to use compatibility stuff by default to keep things working on more devices etc... Also no technical description on how to implement Material Design at all and some quirky problems are really common (e.g. negative margin on a button, easy in html/css, but impossible that way in Android).
edit: my new favourite android fuck-up though is having the icons for horizontal and vertical layouts swapped: http://i.imgur.com/xJ1ODI3.png "vertical" = child elements are underneath each other.
And why would you document that? It's not like it's one of the most common implementation mistakes to handle IVs incorrectly.
It still is nowhere near readable.
* The RNN tutorial is just a code dump, with barely any comments. And since it implements some state-of-the-art network, it has several optimizations that are guaranteed to drive a beginner crazy.
* Their seq2seq tutorial doesn't run anymore due to API changes. Their official reply (for months now) is "we are writing a new tutorial, so wait until we are done".
I fought (and lost) for switching libraries based on how bad the tutorials are, which is literally the opposite of what you'd want a tutorial to achieve. You can't get worse than that.
Sidenote: A very nice project that aggregates many API documentations and puts them into a coherent style and nice UX is http://devdocs.io/
Samesies for every wireless communication protocol I've used. ZWave, Zigbee, Bluetooth. Anything written by electrical engineers tends to be completely inadequate for software.
I find Ember and Angular's documentation to be infuriating. Ember is so incomplete, and Angular is so infantile. React in comparison is so well documented, but then there isn't a lot to document.
Just look at this: https://webrtc.org/native-code/native-apis/ - a couple of high level diagrams, and links to headers.
They've clearly gone to quite some effort to document it thoroughly. Yet whenever I have to read any of it my brain rebels and my eyes just slide off.
I think it may be a case of just too much jargon.
It's probably also because Maven problems are not the fun kind of problems, but rather the irritating kind. Whenever I'm trying to figure out how to make it do something it's because Maven has gotten in the way of the thing I actually want to be doing.
I'm sure the docs were great, but I didn't get much chance to peruse them :)
Those libraries were fantastic, so far ahead of the rest of the pack at the time in terms of API design and code quality. I remember looking at it and being so happy to see that there was a js utility/cross-browser library written by engineers thinking in terms of software rather than "scripts".
Magic methods with aliases sprinkled everywhere. Configuration parameters passed here or there, no one knows where. Initialization in a million ways, through using 3rd party frameworks (like express).
And for all that, there's few small pages of documentation, very badly formatted.
There is no perfect documentation, because you can't predict your audience. I document code in such a way as to make it easier for myself to go back to it. I've kicked myself too many times to count where I didn't document something; went back to code, found it confusing, went to find out who wrote it only to discover it was me.
Document your code for yourself.
If you aspire to have it used by other people, it is still good advice, but only a first step. The next step is to test the documentation. Have someone run through your intro tutorial and see both:
- How hard is the tutorial to work through
- How well does it help them build a mental model of the major interfaces of the project.
[0] https://docs.scipy.org/doc/numpy-1.12.0 [1] https://matplotlib.org/contents.html
The one thing I'd like to see is more examples. Sometimes a quick demo of a function is all that's required for basic use.
I think the Exim spec is pretty much the gold standard for reference documentation, but they need a separate user-friendly introduction too (there was a separate paper book at one point).
I've heard that every comment in code follows the same pattern: every line becomes smaller and smaller. There is a lot of dedication in this project.
The actual software design is great as well, single-handedly changed my mind about ORMs.
Also, I doubt there are any popular libraries with ^crappy^ documentation. why even use such a strongly negative word?... Disagree that it is strongly negative? Well I think your question is crappy.