Computing all the roots from the Cartan matrix I have the following Cartan matrix and I have to compute all the roots. I know there are 18.
\begin{equation}
\begin{bmatrix}
2 & -1 & 0\\
-1 & 2 & -2\\
0 & -1 & 2
\end{bmatrix}
\end{equation}
So if name my basis $\Delta=\{a,b,c\}$ I can get from the Cartan matrix :
$s_b(a)=a+b \to$ new root
$s_c(a)=a$
$s_a(b)=a+b$
$s_c(b)=b+2c \to$ new root
$s_a(c)=c$
$s_b(c)=c+b$ 
so in this step I got the new roots $\{a+b, b+c, b+2c\}$
So I start again :
$s_a(a+b)=b$
$s_c(a+b)=a+b+2c \to$ new root
$s_a(b+2c)=a+b+2c$
$s_b(b+2c)=b+2c$
$s_a(b+c)=c+b+a \to$ new root
$s_c(c+b)=b$ 
So I got the new roots $\{a+b+2c, c+b+a\}$
and I continue. But Am I using all the tricks I could use here?
 A: You are right in principle. Little correction: $s_c(b+c)=b+c$. Just for completeness, in a next step you would get the new positive root $s_b(a+b+2c)=a+2b+2c$, and then we have all 9 positive roots. By the way, this is the root system $B_3$.
You can make the procedure a bit more efficient by using the methods of this answer. Then e.g. in the first step, the entry $-2$ at position $a_{23}$ immediately tells you that the $c$-string through $b$ is $b, b+c, b+2c$, and you get two new roots for the price of one.
Unfortunately, for further steps, that answer tacitly assumes that we have a $2 \times 2$-Cartan matrix. But the idea is easily generalised.

Let $(n_{ij})_{ij}$ bet the Cartan matrix. Take a simple root $\alpha_k$ and a positive root $\lambda =\sum \lambda_i \alpha_i$ ($\lambda_i \in \Bbb Z^+$). If $r:= -\sum_i \lambda_i n_{ik}$ is positive, then the $\alpha_k$-string through $\lambda$ is $\lambda, \lambda+\alpha_k, ..., \lambda + r\alpha_k$. 

Here, in your second step, you can spare yourself computing $a$- or $b$-strings ($s_a$ or $s_b$) of $a+b$ because you already got it both through $a$- and $b$-strings; you don't have to look for further $c$-strings from $b+c$ or $b+2c$ either. On the other hand, instead of computing only $s_c(a+b)$, you easily get that the $c$-string through $a+b$ has length $-(a_{13}+a_{23}) =2$, so again you get two new roots $a+b+c$ and $a+b+2c$ at once.
And finally in that third step, one would see the length of a $b$-string through $a+b+2c$ is $-(a_{12}+a_{22}+2a_{32}) =1$, which again gives the last positive root $a+2b+2c$.
