A proof based on Rudin's Hints (Page 45, Qn 24)
Step 1: Fix $ \delta >0$, and pick $x_{1}\in X$. Having chosen $x_{1},...,x_{j}\in X$, choose $x_{j+1}\in X$, if possible, so that $d(x_{i},x_{j+1})\geq \delta $ for $i =1,...,j.$ This process must stop after a finite number of steps, otherwise $x_{i}\in X, i\in N$ is an infinite set in X, so it should have a limit point, say $x\in X$. Then any neighborhood of $x$ with radius less than $\frac{\delta}{2}$ contain at most one term of the sequence (remember, any two distinct terms of the sequence are of atleast $\delta$ distance). A contradiction.
Thus X can be covered by finitely many neighborhoods of radius $\delta$.
Step 2: Take $\delta = \frac{1}{n}$ ($n = 1,2,3,...$). Let $\{x_{n_{1}},...x_{n_{k(n)}}\}$ be the finite set obtained from step 1 corresponding to $\delta=\frac{1}{n}$. Let $D = \cup_{n=1}^{\infty} \{x_{n_{1}},...x_{n_{k(n)}}\}$. Then D is countable.\Next we prove D is dense in X which will prove the result.
If $D=X$ nothing to prove, otherwise let $x\in X \setminus D$ and take an $\epsilon$ - neighborhood of $x$. Choose n such that $\frac{1}{n}<\epsilon$. Neighborhoods of $x_{n_{1}},...x_{n_{k(n)}}$ with radius $\frac{1}{n}$ will cover X. So $x$ will be in one of such neighborhoods, say neighborhood of $x_{n_{i}}$, hence $d(x,x_{n_{i}})<\frac{1}{n}<\epsilon$. Thus $x$ is a limit point of D.