I understand I need to find constants $c_1$, $c_2$, $n_0 > 0$ where
$0 \leq c_1n^b \leq (n+a)^b \leq c_2n^b$ for all $n \geq n_0$.
But I don't understand what should I do after above step.
The approach you would like to use here is "going backwards from the target".
Suppose we do have $c_1n^b \leq (n+a)^b$ for some constant $c_1\gt0$ when $n$ is large enough. What can we understand or deduce from it? What is needed to make it true?
Since the exponent is the same, we can use the law of same exponent, $(x/y)^m = x^m/y^m$ to simplify that inequality so that we will have the appearances of our variable $n$ closer to each other.
$$ c_1\leq \frac{(n+a)^b}{n^b}=\left(\frac{n+a}n\right)^b$$
Raising both sides to the power of $\frac1b$, we have
$$ (c_1)^{\frac1b}\leq \left(\frac{n+a}n\right)^{b\,\frac1b}=\frac{n+a}n = 1+\frac an$$
(Another way to obtain $(c_1)^{\frac1b}\leq\frac{n+a}n$ is to raise both sides of $c_1n^b \leq (n+a)^b$ to the power of $\frac 1b$.)
Since $c_1$ is a positive constant, $(c_1)^{\frac1b}$ is also a positive constant. To make the above inequality hold, we would like to make $\left|\frac an\right|$ small enough. For example, we can require $\left|\frac an\right|\le \frac12$. That is why you see the following condition.
$$|a|\le\frac12 n$$
What is nice here is that we can reverse the above argument to obtain a wanted constant $c_1$. Note that it is just as fine if we choose a different condition such as $|a|\le\frac13 n$ or $|a|\le\frac1{2019}n$ or infinitely many others.
If we start from $(n+a)^b \leq c_2n^b$, we could arrive at $|a|\le n$.
Are they derived from $0\le c_1n^b\le(n+a)^b\le c_2n^b$ ? Or are they just a general knowledge that can help solve this problem?
Yes, they are derived as you have just seen. You could say that they are general knowledge that helps solve this problem. You could also say that we just discovered some specific facts that help solve this problem.