I learn by performing web searches on commands I know from other languages, along with the term "Lua". For the most part that gets me pages from the sites TheOriginalBIT linked above.
Be aware, though, that not all commands will work the same in ComputerCraft as they're documented on those sites - their names or effects may vary. If a command has any documentation on the CC wiki, then pay attention to what that has to say.
Probably the largest percentage of what I've learned comes from reading forum posts in this board section. It's common to see people throwing out comments like "by the way, you could take this block of code and do the same thing faster and easier with this one", and that knowledge is very valuable - it's difficult to look up stuff about coding concepts if you don't even know those options
exist, but simply reading manuals cover to cover tends not to reveal the most useful stuff very quickly.
Once I
have a command, if I'm still unsure exactly how it behaves I'll write a short script for the sole purpose of playing with it. Passing it random-ish variables and confirming I get back the results I expect.
How I originally learned to
program, however, was via library books -
Usborne in particular, and about a year ago I even ordered some of the books from that series just for the sake of having them. Heh. Maybe I should try and get Island of Secrets running in ComputerCraft.
Once computing moved on a bit and Windows became more popular, I shifted to QBasic. There were not nearly as many interesting books on that language, and this was before internet access was common in the home, but the IDE includes a working code example for pretty much every command - you could literally type in "if", right click that word, and instantly get a page or two of info on it along with a commented example program (filled with other commands that you may or may not know, but could
also right click, and so on…).
Eventually I started on Java. Still without much in the way of internet access, it was again just a case of relying on the official documentation of the language, but by then I was mostly just translating commands & concepts I already knew into a slightly different dialect. These days, when working with a language I'm not familiar with it's web searches all the way, command by command. Typically the first search is to determine what the "does not equal" sign is… <>, !=, ~=, I don't see why there are so many variants…
See, most higher-level languages look the same, at a glance - once you've got a semi-decent knowledge of a few (… and an internet connection), you can quickly learn to produce working code (not always "good" code, but "working") for just about any of the others.
Bah. You've got me rambling now.