I was trying to understand the Wikipedia article on homoiconity, but it's too verbose and does not explain the main theory behind the word concisely. I should add that I'm not a native English speaker so I prefer simple English over academic white paper quotes.
So, what exactly does it mean if a language is homoiconic? What makes C#, Java or JavaScript non-homoiconic?
It means "code as data" which is a general characteristic of Lisp family.
(add 2 3)
Just like above string, which is both a list and also a function call. The "Homo" prefix stands for this characteristic.