[proofplan]
We build a single oracle computation of $A \oplus B$ from $C$ by dispatching an input according to its parity. On even inputs the machine simulates the oracle computation of $A$ from $C$; on odd inputs it simulates the oracle computation of $B$ from $C$. We then explicitly construct reductions from $A$ and $B$ to $A \oplus B$, and use these reductions to verify the least-upper-bound property at the level of Turing degrees.
[/proofplan]
[step:Compute the join from any common Turing upper bound]
Assume $A \le_T C$ and $B \le_T C$. By the definition of Turing reducibility, there exist oracle Turing machines $M$ and $N$ such that, for every $n \in \mathbb{N}$,
\begin{align*}
M^C(n) &= \mathbb{1}_A(n), &
N^C(n) &= \mathbb{1}_B(n).
\end{align*}
Define an oracle Turing machine $P$ as follows. On input $m \in \mathbb{N}$ with oracle $C$, first decide whether $m$ is even or odd. If $m$ is even, write $m = 2n$ for the unique $n \in \mathbb{N}$ and output $M^C(n)$. If $m$ is odd, write $m = 2n + 1$ for the unique $n \in \mathbb{N}$ and output $N^C(n)$.
For even $m = 2n$,
\begin{align*}
P^C(m) = M^C(n) = \mathbb{1}_A(n) = \mathbb{1}_{A \oplus B}(2n) = \mathbb{1}_{A \oplus B}(m).
\end{align*}
For odd $m = 2n + 1$,
\begin{align*}
P^C(m) = N^C(n) = \mathbb{1}_B(n) = \mathbb{1}_{A \oplus B}(2n + 1) = \mathbb{1}_{A \oplus B}(m).
\end{align*}
Thus $P^C$ computes $\mathbb{1}_{A \oplus B}$, so $A \oplus B \le_T C$.
[guided]
The goal is to combine two oracle computations into one. The hypotheses $A \le_T C$ and $B \le_T C$ mean precisely that membership in $A$ and membership in $B$ can each be decided using oracle access to $C$. Thus there are oracle Turing machines $M$ and $N$ satisfying
\begin{align*}
M^C(n) &= \mathbb{1}_A(n), &
N^C(n) &= \mathbb{1}_B(n)
\end{align*}
for every $n \in \mathbb{N}$.
The join $A \oplus B$ stores $A$ on the even integers and $B$ on the odd integers under the coding fixed in the theorem statement:
\begin{align*}
A \oplus B = \{2n : n \in A\} \cup \{2n + 1 : n \in B\}.
\end{align*}
So an input $m$ tells us which computation to perform. If $m$ is even, then $m = 2n$ for a unique $n \in \mathbb{N}$, and membership of $m$ in $A \oplus B$ is exactly membership of $n$ in $A$. If $m$ is odd, then $m = 2n + 1$ for a unique $n \in \mathbb{N}$, and membership of $m$ in $A \oplus B$ is exactly membership of $n$ in $B$.
Define the oracle Turing machine $P$ by this parity test. With oracle $C$, it runs $M^C(n)$ in the even case and $N^C(n)$ in the odd case. Therefore, if $m = 2n$,
\begin{align*}
P^C(m) = M^C(n) = \mathbb{1}_A(n) = \mathbb{1}_{A \oplus B}(2n) = \mathbb{1}_{A \oplus B}(m).
\end{align*}
If $m = 2n + 1$,
\begin{align*}
P^C(m) = N^C(n) = \mathbb{1}_B(n) = \mathbb{1}_{A \oplus B}(2n + 1) = \mathbb{1}_{A \oplus B}(m).
\end{align*}
These two cases cover all $m \in \mathbb{N}$, so $P^C$ computes the characteristic function of $A \oplus B$. Hence $A \oplus B \le_T C$.
[/guided]
[/step]
[step:Recover each component from the join]
Define an oracle Turing machine $Q_A$ as follows. On input $n \in \mathbb{N}$ with oracle $A \oplus B$, query the oracle at $2n$ and output the answer. Then
\begin{align*}
Q_A^{A \oplus B}(n) = \mathbb{1}_{A \oplus B}(2n) = \mathbb{1}_A(n),
\end{align*}
so $A \le_T A \oplus B$.
Define an oracle Turing machine $Q_B$ as follows. On input $n \in \mathbb{N}$ with oracle $A \oplus B$, query the oracle at $2n + 1$ and output the answer. Then
\begin{align*}
Q_B^{A \oplus B}(n) = \mathbb{1}_{A \oplus B}(2n + 1) = \mathbb{1}_B(n),
\end{align*}
so $B \le_T A \oplus B$.
[/step]
[step:Pass from set reductions to the least-upper-bound property of degrees]
Let $a := \deg_T(A)$, $b := \deg_T(B)$, and $j := \deg_T(A \oplus B)$. Since $A \le_T A \oplus B$ and $B \le_T A \oplus B$, we have
\begin{align*}
a \le j, \qquad b \le j.
\end{align*}
Thus $j$ is an upper bound of $a$ and $b$.
Now let $c$ be any Turing degree that is an upper bound of $a$ and $b$. Choose a representative $C \subseteq \mathbb{N}$ with $c = \deg_T(C)$. The inequalities $a \le c$ and $b \le c$ mean that $A \le_T C$ and $B \le_T C$. By the first step, $A \oplus B \le_T C$, hence
\begin{align*}
j \le c.
\end{align*}
Therefore every upper bound of $a$ and $b$ lies above $j$, while $j$ itself is an upper bound. Hence $\deg_T(A \oplus B)$ is the least upper bound of $\deg_T(A)$ and $\deg_T(B)$.
[/step]