How did the author take this derivative? From Taylor's Classical Mechanics, pg. 220:

Given: $f(y+\eta (x)\alpha,y'+\eta (x) '\alpha,x)$
Derivative: $\frac{\partial f(y+\eta (x)\alpha,y'+\eta (x) '\alpha,x)}{\partial \alpha}=\eta \frac{\partial f}{\partial y}+\eta' \frac{\partial f}{\partial y'}$

I guess I can see how the derivative is a summation of 2 terms - it's because there are 2 terms in the argument for the function that depend on $\alpha$. However, I don't see where the $\frac{\partial f}{\partial y}$ and the $\frac{\partial f}{\partial y'}$ come from. I would have just said that the derivative with respect to $\alpha$ is $\eta + \eta '$.

Update: My main question is just this now: why does the author take the derivative of $f$ w.r.t $y$? He wanted to find the derivative with respect to a parameter that introduced, which is $\alpha$.
 A: The letters seem to be confusing you, and this is understandable. 
Perhaps if we instead write $\eta f^{(1,0,0)}+\eta'f^{(0,1,0)}$ it would make more sense? Here I am using the tuple to indicate which argument to differentiate with respect to. For instance, if begin with the function $f(u,v,w)=uv^2w^3$ then we have 
$$\begin{array}{l} f^{(1,0,0)}(u,v,w)=(1u^0)v^2w^3=v^2w^3, \\  f^{(0,1,0)}(u,v,w)=u(2v^1)w^3=2uvw^3, \\ f^{(0,0,1)}(u,v,w)=uv^2(3w^2)=3uv^2w^2. \end{array}$$
From this we could compute e.g. the derivative of $f(a(x),b(x),c(x))$ with respect to $x$:
$$ \frac{d}{dx}f(a(x),b(x),c(x))=a'(x)f^{(1,0,0)}+b'(x)f^{(0,1,0)}+c'(x)f^{(0,0,1)} $$
$$=a'(x)\cdot\big(b(x)^2c(x)^3\big)+b'(x)\cdot\big(2a(x)b(x)c(x)^3\big)+c'(x)\cdot\big(3a(x)b(x)^2c(x)^2\big). $$
If we normally write $f$ as $f(y,y',x)$ for example, then we might refer to $f^{(1,0,0)}$ and $f^{(0,1,0)}$ using the notation $\partial f/\partial y$ and $\partial f/\partial y'$ respectively, even if we're evaluating at an ordered tuple that looks a bit different from $(y,y',x)$, such as $(y+\eta(x)\alpha,y'+\eta'(x)\alpha,x)$.
A: You need to use the chain rule!  $y + \eta(x)\alpha$ for example is one of the arguments of the function, not a function itself!!
Hence what you have to do is to differentate the function first and then the functions inside it!
