Why if $p (x_1, \dots, x_n)$ is polynomial on $\mathbb{R}^n$, then $p (x) \neq 0$ is satisfied by open dense set? I have problems in seeing what exactly is the all point of first category and second category sets. Finally, I've found a reference (Bredon's "Topology and Geometry") that introduces the topic in a way that is sort of comprehensible.
Still, there is a piece in that reference that I do not get:

"Often, one is interested in a condition on points of a space that is satisfied by an open dense set of points. For example, if $p (x_1, \dots, x_n)$ is a polynomial function on $\mathbb{R}^n$, then the condition $p (x) \neq 0$ has this property, and a special case of that is the determinant function on square matrices."
  (Bredon - "Topology and Geometry" p.57)

I have no clue why this is the case.  
Is there somebody who can enlighten me?
As always, thank you for your time.
 A: The author certainly means that this holds whenever $p$ is a non-zero polynomial. The set of points $x \in \mathbb{R}^n$ such that $p(x) \neq 0$ is open because its complement is the preimage of the closed singleton $\{0\}$ by the continuous map $p$, which is therefore closed. It is dense because a polynomial is analytic, and an analytic function that is zero on some neighborhood is zero everywhere on the connected component of that neighborhood.
A: Let's assume that $p \neq 0$, as otherwise this is false. First, let's see why the set $ NZ = \{x \mid p(x) \neq 0\}$ is open. The polynomial $p$ is a continuous function from $\mathbb{R}^n$ to $\mathbb{R}$, so the inverse image of a closed set is closed. The point set $\{0\} \subset \mathbb{R}$ is closed, so its inverse $Z = \{x \mid p(x) = 0\}$ is also closed. Our set $NZ$ is just the complement of $Z$, and hence must be open.
To see why $NZ$ is dense, let's take a point $z = (z_1, z_2, \cdots, z_n) \in Z$ and find  points $x \in NZ$ arbitrarily close to it. We can do this by induction on the number of variables. If $n=1$ this is a classic result: a nonzero polynomial is zero at a finite set of points. For $n=2$, rewrite $p(x_1,x_2) = \sum_{i=1} ^{d} x_{1}^{i}q_{i}(x_2) + r(x_2)$ by factoring out $x_1$. By hypothesis either some $q_{i}(x_2)$ is not zero or we can reduce to $p = r(x_2)$, and then $p$ is a polynomial in one-variable whose zero set is just the zero set on $\mathbb{R}$, times the real line. Now plug in the value $x_2 = z_2$. 
$$ \sum_{i=1}^{d} (x_1)^{i}q_{i}(z_2) + r(z_2)$$
If this is a non-constant polynomial in $x_1$ then near the zero $x_1 = z_1$ there will be values for $x_1$ giving us something non-zero (as it has only one variable), and we will be done. Otherwise all $q_{i}(z_2)$ are zero. But since these are polynomials in one variable we can replace $z_2$ with a nearby value $z_{2}'$ and make one of these polynomials nonzero. Then near $(z_1, z_{2}')$ is a point $(z_{1}',z_{2}')$ making $p$ nonzero, and again we are done.
For the inductive step on $\mathbb{R}^n$ we would rewrite, where again we assume some $q_{i}$ is nonzero else we automatically reduce ourselves to the $n-1$ case.
$$p = \sum_{i=1}^{d} x_1^iq_i(x_2, \cdots, x_n) + r(x_2, \cdots, x_n)$$
Then plugging in the values $x_2 = z_2, \cdots, x_n = z_n$, we either get a single-variable polynomial in $x_1$ with a nearby nonzero point, or we tweak the values to $x_2 = z_{2}', \cdots, x_{n} = z_{n}'$ to make some $q_{i}$ nonzero, which we know we can do by induction, and the find a nonzero point with those coordinates.
A: As the other answers explained, $S:=p^{-1}(\mathbb{R}\setminus\{0\})$ is open because $p$ is continuous. What follows is yet another proof that $S$ is dense in $\mathbb{R}^n$ when $p$ is nonzero:
Case I: $n=1$. The fundamental theorem of algebra gives that any nonzero $p$ will have at most $\operatorname{deg}(p)$ real roots, and so $S$ is the complement of a finite set, which is necessarily dense.
Case II: $n>1$. Suppose $S$ is not dense, meaning there exists $x_0\in\mathbb{R}^n$ for which $p$ evaluates to $0$ on a neighborhood of $x_0$. We will show that $p$ is necessarily the zero function. Take any $x_1\in\mathbb{R}^n$. Then there exists $\epsilon>0$ for which $q(t):=p(x_0+t(x_1-x_0))=0$ for every $t\in[0,\epsilon)$. Since $q(t)$ is a single-variable polynomial with infinitely many roots, it follows from Case I that $q$ is the zero polynomial, and so $p(x_1)=q(1)=0$.
