I hope this qualifies as a programming question, as in any programming tutorial, you eventually come across 'foo' in the code examples. (yeah, right?)
what does 'foo' really mean?
If it is meant to mean nothing, when did it begin to be used so?
See: RFC 3092: Etymology of "Foo", D. Eastlake 3rd et al.
Quoting only the relevant definitions from that RFC for brevity:
Used very generally as a sample name for absolutely anything, esp. programs and files (esp. scratch files).
First on the standard list of metasyntactic variables used in syntax examples (bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud). [JARGON]