Boolean logic's overbar notation isn't very friendly to text editors. The electronics-tutorials.ws folks seem to struggle a bit with this.
Here at SE, we can deal. The expression, formally, would be:
$$
Q = \overline{ABC}
$$
Anyway, I used an SE syntax called mathjax to show this fancy overbar stuff, which codes as follows:
$$
Q = \overline{ABC}
$$
More about this here: Most common MathJax uses in Electrical Engineering?
Now, if you were to code this as a C language expression (C being a language that doesn't know anything about overbars) you'd get:
Q = !(A && B && C);
They're nevertheless the same expression. As there are so many people who use C, you'll see this form often as it's easier to represent with normal text. Verilog borrows from C and uses this form as well. VHDL? Enjoy your verbose typing...
Anyway, all these forms read as "NOT (A AND B AND C) gives Q", as you said.
Now, to say "(A AND B AND C) gives NOT Q" is a bit confusing, but it's still valid, kind of. Nevertheless, C language and Verilog will not allow a unary NOT operator on the left-hand side of an expression.
That is, this format isn't allowed:
!Q = A && B && C; // "(A AND B AND C) gives NOT Q" - nope
While this format is a-ok:
Q = !(A && B && C); // "NOT (A AND B AND C) gives Q" - ok
Bottom line: your reading as "NOT (A AND B AND C) gives Q" is preferred to the one given on that website.