Why is $f(x)g'(x)+f'(x)g(x)$ a linear map? Assume $f:E \rightarrow \mathbb{R}^m$ and $g:E \rightarrow \mathbb{R}$, and $E \in \mathbb{R}^n$ is open. Assume $x \in E$, and $f$ and $g$ are differentiable at $x$. To get the derivative of $f(x)g(x)$, I get a product rule version, namely $f'(x)g(x)+g'(x)f(x)$. 
According to the definition of a derivative (In Rudin's Principles of Mathematical Analysis), $f'(x)g(x)+g'(x)f(x)$ has to be a linear map. But why is it a linear map? Doesn't that imply we need g and f to be linear as well?

The derivative of $f$ at $x_0$ is a linear map $A$ such that $f(x) - f(x_0) - A(x-x_0) = o(x-x_0)$ as $x \to x_0$. That linear map is what we call $f'(x_0)$. The actual mapping $x_0 \mapsto f'(x_0)$ is usually not linear.
Now when you look at $fg$, the situation is essentially the same. You get a linear map $A$ such that $f(x) g(x) - f(x_0) g(x_0) - A(x-x_0)=o(x-x_0)$ as $x \to x_0$. The product rule winds up telling you that the linear map is $f'(x_0) g(x_0) + f(x_0) g'(x_0)$. You should try to be careful about signatures to make sure this makes sense: $f'(x_0)$ is a map from $\mathbb{R}^n$ to $\mathbb{R}^m$ and $g(x_0)$ is a scalar, so that is the right type of thing (you multiply by $g(x_0)$ after applying $f'(x_0)$ to the input). Now $f(x_0)$ is a fixed vector in $\mathbb{R}^m$ and $g'(x_0)$ is a linear map from $\mathbb{R}^n$ to $\mathbb{R}$, so that is also the right type of thing (you multiply by $f(x_0)$ after applying $g'(x_0)$ to the input).
