Do spins have spatial directions? When we consider a spin-1/2 particle  and try to write down it's wave function, we have
$$|\psi\rangle = a|+\rangle + b|-\rangle,$$
where in a reference about two-level system, the author wrote 

Consider a spin pointing at time equal zero along the direction specified by the angles $(\theta_0,\phi_0)$
$$|\Phi,0\rangle\,=\,cos\frac {\theta_0} 2\, |+\rangle\, +\, sin \frac {\theta_0} 2 \,e^{i\phi_0}|-\rangle $$

Am I to interpret this direction to be the direction in real 3-dimensional space? If so, how does one write down (2.12) if I know that the spin points along a vector defined by $(\theta_0,\phi_0)$? I don't know how to picture this image in my head (or draw it out...), since the two states $|+\rangle$ and $|-\rangle$ are in an abstract Hilbert space that has nothing to do with the real spatial direction.
The quote is from https://ocw.mit.edu/courses/physics/8-05-quantum-physics-ii-fall-2013/lecture-notes/MIT8_05F13_Chap_07.pdf
 A: The subject in question is fairly simple.
The state
$$
|\psi\rangle=\cos\frac{\theta}{2}|+\rangle+ e^{i\phi}\sin \frac{\theta}{2} |-\rangle
$$
of a spin-1/2 can be interpreted as follows (note that I wrote $\theta/2$ instead of $\theta$ because, as you will see, in that way $\theta$ will mean the actual angle in the 3D space). Let us average different spin components over this state. Small exercise with Pauli matrices yields
$$
\langle s_x\rangle=\langle \psi|\hat s_x|\psi\rangle =\frac{1}{2}\sin\theta\cos\phi,
$$
$$
\langle s_y\rangle=\langle \psi|\hat s_x|\psi\rangle=\frac{1}{2}\sin\theta\sin\phi,
$$
$$
\langle s_z\rangle=\langle \psi|\hat s_z|\psi\rangle=\frac{1}{2}\cos\theta.
$$
It can be seen that this strongly resembles the polar coordinates in 3D, which basically means that the average spin forms a 3D vector with a length of 1/2 in a real space. This vector is directed in accordance with angles $\theta$ and $\phi$, i.e. it is inclined from z-axis by the angle of $\theta$ and rotated in x-y plane by $\phi$ from x-axis. In other words, if you measure the spin projection in the direction $$\vec{n}=(\sin\theta \cos\phi, \sin\theta \sin\phi,\cos \theta),$$
you will get 1/2 value with 100% probability.
Of course, on top of that there are quantum fluctuactions, which are connected with non-commutativity of spin projections, but that is a different story.
UPD, answer to the question in comments
From now on I'll assume $\hbar=1$ for the sake of simplicity.
I will not make assumptions about particular value of spin considered, so spin can be one half, one, three halves or any other integer or half integer value. To keep this in mind i'll use capital $S$.
Here I'll present a general way to find the state which "points" in the given direction $\vec{n}$, where $|\vec{n}|=1$, starting from spin pointing along z direction (i'll call this state $|S_z = S\rangle$).
Main thing that one needs to know at this point is the following statement from quantum mechanics: any angular momentum operator is a generator of 3D rotations. This is just like how the simple momentum operator $\hat{p}$ is the generator of translations. For instance in the one-dimensional case
$$\exp{\left(- i a \hat{p}\right)}\psi(x) = \psi(x-a).$$
You can check the formula above by substituting $\hat{p}=-i\frac{d}{dx}$ and expanding the exponent in the power series.
In the same fashion the matrix exponent of spin operators (matrix exponent of any square matrix is defined as $\exp{A}=\sum_{n=0}^\infty A^n/n!$) produces the rotation of your spin state in the 3D space. Formally this means that the matrix exponent $$ R_{m}^\alpha = \exp\left(-i \alpha \left(\vec{S}\cdot\vec{m}\right)\right)$$ (once again $|\vec{m}|=1$) rotates the spin around the direction $\vec{m}$ by the angle $\alpha$. The dot product in the exponent is a $(2S+1)\times(2S+1)$ matrix:
$$\vec{S}\cdot \vec{m}=m_x S_x +m_y S_y+ m_z S_z. $$
 I believe this knowledge provides a bridge between more abstract Hilbert space of spin and more familiar 3D space. Now we need to make proper rotations to make spin look along the direction $\vec{n}$ and we can simply think in terms of usual rotations. Let $$\vec{n}=(\cos\phi\sin\theta,\sin\phi\sin\theta,\cos\theta).$$
If we start from $|S_z=S\rangle$ state, first we need to incline the spin by the angle $\theta$ from z axis. For this we can make a rotation around y axis:
$$|S_z=S\rangle \rightarrow \exp\left(-i \theta S_y\right)|S_z=S\rangle$$
After that we simply rotate by $\phi$ around z axis:
$$\exp\left(-i \theta S_y\right)|S_z=S\rangle \rightarrow  \exp\left(-i \phi S_z\right)\exp\left(-i \theta S_y\right)|S_z=S\rangle.$$
(note that $\exp(A)\exp(B)\neq \exp(A+B)$ in general). And basically that is it, we found the state which looks in the direction $\vec{n}$. Let us denote it
$$
|\psi\rangle = \exp\left(-i \phi S_z\right)\exp\left(-i \theta S_y\right)|S_z=S\rangle.
$$
In that case, just like with spin one half, one can check that:
$$
\langle S_x \rangle = \langle \psi|S_x|\psi\rangle=S\sin\theta\cos\phi,
$$
$$
\langle S_y \rangle = \langle \psi|S_y|\psi\rangle=S\sin\theta\sin\phi,
$$
$$
\langle S_z \rangle = \langle \psi|S_z|\psi\rangle=S\cos\theta.
$$
Once again, measuring the value of spin projection in direction $\vec{n}$ for state $|\psi\rangle$ will give the value of $S$ with 100% probability.
UPD 2 + fix
However, note that of course not any state of arbitrary spin can represented as a vector of a length equal to $S$ and pointing in some fixed direction $\vec{n}$. For example in the state $|S_z=0\rangle$ of spin $S=1$ we find $\langle S_x\rangle=\langle S_y\rangle=\langle S_z\rangle=0$. 
I hope this helps :)
A: Since $| \pm >$ spans the hilbert space, you can can construct a superposition which points in the $x$, $y$ or any other direction.  A useful construction for visualizing this is the Bloch sphere
A: The directions are to be interpreted in 3D space. To picture you imagine what will happen when measurements are made. But do not take it as an assembly of spins part of them totally pointing up and the other part totally pointing down. That would give a mixture of states which is not what your state is. 
A: In the real world spin is not spatial. However, orbital angular momentum is a quantity which can be described in three dimensional (Hilbert) space an. Now, when we discovered that particles had also some internal spin. We physicst searched for a way to describe the behaviour of this internal spin of a particle. In this way, we found that internal spin could de described mathematically in the same as orbital angular momentum (non relativistically).
Hence, if we want to describe a particle we need a wavefunction which describes the spatial part of the particle as well as its internal spin. To do this we often write a wavefunction as a (tensor) product of two wavefunctions, each of which are 'living' in a different Hilbert space.
When studying the spin of a particle, we often restrict ourselves only to the 'spin Hilbert space'. This is the space in which our spin wavefunction is described.
In the case of a spin-1/2 particle, this spin space has only 2 dimensions and thus our wavefunction can de described in a two dimensional Hilbert space and so in this way we can think of it as having 'spatial directions'. But remember that this is only a mathematically way to describe the internal spin of a particle. It does not represents the real world!
A: Spin is angular momentum. It's quantization does not correspond that that of $\mathbf{r} \times \mathbf{p}$ for a particle, but it has all the properties of angular momentum none-the-less.
As such the observable associated with spin is a pseudo-vector in physical space, not-withstanding that the state space of spin-$s$ is a $2s+1$-dimensional space (meaning a 2-dimensional space for spin-1/2).
