Live data from Hacker News

Ask HN: How to RTFM?

news.ycombinator.com

31–40 of 47 posts

Re: Ask HN: How to RTFM?

#31

Exactly. The question is where's TFM today ? Doxigen is not TFM. The examples are not TFM. The comments are not TFM. The video posted on Youtube is not TFM. The blog is not TFM. I want TFM or at least TF Man Pages.

Thing is, Documentation that thorough is hard, and it's only harder with the rapid release schedules many have adopted as of late. Then you have software that hasn't had a completed set of man pages in years, because no one bothered to finish it. So, I've resorted to reading the source code to see what the blazes is going on if there's no competent manual available.

If I'm grabbing for the manual in the first place, I've found it's mostly to search for an answer to "Can I do x in y context without having to code it in the way I know works but is exhaustive, bloated, and a waste of my time".

I ran into this last year with an XML parsing library; I wanted to do something so simple yet the library appeared as if it couldn't - parse incoming XML payload - but the library's manual only discussed parsing XML as if it were fully formed and from a local file, which is only applicable in a fantasy world. It seemed very odd to me that the library would have its own routines for local file loading, so I assumed it was required and I would have to write incoming XML to a file and load it every time. Then I looked at the source code to the library and discovered the author had coded it specifically so that newbies could use it and not be affected by XXE attacks. Now the library specifically mentions this in its tutorial, but not in its manual, so I never saw the bloody thing.

I wasted a whole day for something that could have been mentioned in the "manual".

Re: Ask HN: How to RTFM?

#32
Seems like you're going about it backwards - start with the reference docs to figure out how something _should_ work, then if that breaks down start looking to other sources for workarounds or more information. This approach will force you to get better at understanding TFM. Going to SO or blogs may be a quick way to get a solution but as a software engineer you also need to understand how and why that solution works, which is where the reference docs come in.

If you're finding that TFM is just too dense to get through then you probably need to start learning/understanding the building blocks in whatever way works best for you (online courses, wikipedia, more reference manuals, tutorials, etc).

Re: Ask HN: How to RTFM?

#33
I find example usages first then decipher what the manual means while referring to them. Many times it feels like manuals have their own language, phrasing, templating syntax or what-have-you. If you have something to compare against when they you can usually understand what they mean from that. I really wish more manuals had simple examples at the start of the manual. You don't even need many, just like 2.

Re: Ask HN: How to RTFM?

#34
Why do you need to be interested in something in order to read the manual? Sometimes part of being a professional is just forcing yourself to grind through it.

Re: Ask HN: How to RTFM?

#35

I think reading software manuals is a waste of time. Unless if you do something wrong, you break something, it is much more efficient to just try to do a few examples and work with the tool, then when you need the manual, you read it. Just search on it what you need. I think it is impossible to read those things and still be ahead of the curve on what is happening with software and things in general. Very time ineffi…

I used to feel the same way... until I actually read one.

It was a point several years ago that I was looking for a "better" solution to something I was doing. A bunch of Stack Exchange answers on the topic each had a different way of doing it, and each was as complicated as my own solution. Over the course of years, people tried to make the solution better.

Then I noticed the very bottom answer, below some dozen others. Posted about a month before my search.

It was one line.

The individual just posted the one-line answer and a link to the manual.

It was part of the standard library.

And had been SINCE INCEPTION.

It was at that point that I began to RTFM. There are good manuals and there are bad manuals. But one thing I've noticed is that for most libraries, it is absolutely invaluable to be able to have a high level picture of what's available. It has completely changed the way I code, now.

First, read a few hello world tutorials so I can wrap my head around the gist. Then RTFM. Then maybe read a book about it if I want a good idea of best practices. Only then do I search SE or other online sources.

Which I now rarely have to do, for the things in which I RTFM...

Re: Ask HN: How to RTFM?

#36
post #8

I’ve had the opposite experience. I’ve found countless times that online tutorials confuse the issue, even if they help you to accomplish some specific task. The FM on the other hand tells it like it is. The trick is to only read the parts that you need to in order to clear up your confusion. This sometimes means reading one section and having to look something up in another section before you can understand the firs…

> If you find yourself five levels deep in this process and still unable to comprehend what you’re reading, you need to take a step back and ask yourself if you do in fact have any real understanding of the technology you’re using. ... in which case, you are in exactly the right spot to learn the fundamentals of whatever you're trying to learn :D One reason why I value (good) manuals is precisely that they are not si…

I find that a lot of documentation is poorly written or poorly structured. They read like a straight description of a piece of software rather than a document designed to help you understand what’s going on.

Re: Ask HN: How to RTFM?

#37
The thing is with RTFM is that it takes time. We don't all have time. So while RTFM will sometimes help, almost all the manuals lack good examples. It would be much more useful if all manuals had an equally extensive examples section. Then we could say RTFE(xamples). `man awk` and `/` for `examples`, they have a great example section. `man curl` doesn't have a specific section but does have examples sprinkled throughout the options. `man kill` has zero references to `example`, yeah, probably don't need it but there are some nice `kill` tricks that could be in there.

I do read `man` pages daily, and it does get easier & faster with time. I am a pro at searching man pages, but again, most lack good, high quality examples, which would be most effective. As soon as I open a man page I press `/`, which lets me search. If I am looking for an option (e.g. -F) I search for ` -F` with the preceding space, this almost always gets you the actual option, not just mentions of it. Then I press `n` or `shift + n` to go to the next and previous results.

Also keep in mind that some apps don't have man pages, for those try `help ` or `info `.

Another tip is that the `apropos` or `man -k|--apropos` command can search all man pages for you. Also there are hidden man pages, like `man 7 signal` instead of just `man signal` (try it). `apropos` can find those for you.

Getting faster at reading is a key part of this, I spent some time exercising my eye muscles and it does help. (Eye Q) was the name of the software I used, I plan on revisiting that again.

I also spent a lot of time reading technical books, which _only_ helps if you practice the information you learn. Otherwise it just goes in and out. You want to take knowledge and turn it into skills, by practicing. Deliberate Practice to be more specific per the book Peak by Anders Erickson (must read for all learners).

At any rate, don't be afraid to ask and use StackOverflow, we don't all have many hours to find answers, we need to be effective, that includes reading a lot, but also knowing how to search, very effectively. Search Engines are a manual in a sense.

Re: Ask HN: How to RTFM?

#38
For context I have been writing professional code since the early 90's, and while I have a ton of experience, I still will pull out the manual or google to refresh myself. The difference between being in college and the professional world is it is expected that you have to use reference material to do your job effectively. And over time things you use frequently or have solved frequently will stick in your head. The things you have solved, but not used regularly will require more time to refresh.

The more you specialize in solving a specific type of problem or in a specific area of software the less referring you do for everyday problems but it will still be a part of your normal day.

Also, when you read something, the only way to truly understand it (and tradeoffs) in my opinion is to write tests and actually test it. That is something that is super critical to success, doing small test projects to prove it out and see what works and what doesn't. Because frankly what is written in the manual and what it actually does or how you actually do it might differ still.

Re: Ask HN: How to RTFM?

#39
> I am a new college grad working as a Software Engineer...

I don't want to sound harsh but...How did you manage to earn a college degree without learning how to research specific topics?

That's pretty much all I did in college, I tried to "pivot" a while back and started at one of those private universities and was truly offended when they said I had to take a course on "researching topics" or some such nonsense and wouldn't let me out of it when I said "but, Dude, I have an art history degree..."

Re: Ask HN: How to RTFM?

#40
> I really want to go in depth into x y z

Don't worry. Manuals are not supposed to be read like a textbook/tutorial. Not most of them anyway.

I know a guy who read through half a thick book on Python without writing a line of code. He said it all made sense until a point, where he began to hate the language. Well, it was a terrible book for a beginner, but the point is, reading about the stuff is not enough and you will only get repelled.

Choose one tech that you like. Investigate how real use works, mostly by trying to build real things, even if only for study purposes. If you get lost or the learning material gets repulsive/boring, move on. You need to have a good time. Seek existing useful examples by other people in real famous software not textbooks. Emulate them / reuse parts for your projects / invent, imagine new uses. You get deep by enjoying and "pushing the envelope" on what you can build. Not by reading per se. That is a parallel activity that can help, but is not enough.

Many books/manuals are good for getting straight idea on which version of the tech supports the feature you need, and what is the version-specific syntax and limitations. But this is the kind of information that gets useful only after you already have a very good working knowledge of the thing and need to deal with real world ugliness of different versions/obscure features/corner cases at work.

Post reply on HN