Proof verification that every compact set has a finite subcover 
Let $S$ be a (possibly uncountable) set of open sets, and $E$ be a compact set with $E \subset \mathbb{R}$ such that $\displaystyle E \subset \bigcup_{O \in S} O$. Then there's a subset $T \subset S$ with $|T|$ finite such that $\displaystyle E \subset \bigcup_{O \in T} O$ 

My proof of the above fact is different from the one presented in my book. I'm not sure if it's incorrect or not, that's why I'm posting that here. 
I'm using this definition of compact

A set $E$ is compact if every sequence in $E$ has a subsequence converging to an element also in $E$. (I have proved this before that this is equivalent to $E$ being closed and bounded )


Pick a subst $T \subset S$ such that $E \subset \displaystyle \bigcup_{O \in T} O$ but for any $O' \in T$, we have $E \not \subset \displaystyle \bigcup_{O \in T-O'} O$. I claim that this $T$ is finite (hence this works). $^{[1]}$.
By construction of $T$, for any $O \in T$, there's atleast one element $x_O \in E$ such that $x_O \in O$, and $x_O \not \in T - O$. Define a function $f: T \rightarrow E$ such that $f(O) = x_O$. It's easy to see that $f$ is injective, and for any $O \in T$, the only element of $T$ which covers $f(O)$ is $O$ itself (and hence $f(O) \not \in T - O$ for all $O \in T$).
If $T$ is not finite, then pick $^{[2]}$ an countably infinite subset $P \subset T$. Let $P= \{O_1, O_2, \cdots \}$. Since $E$ is compact, the sequence $\{ f(O_1), f(O_2), \cdots \}$ has a convergent subset $\{f(O_{i_1}), f(O_{i_2}), f(O_{i_3}), \cdots, \}$ with $\displaystyle \lim_{j \rightarrow \infty} f(O_{i_j}) := y \in E$. 
Suppose $y \in O_k \subset T$. As $O_k$ is an open set, there's an $\epsilon > 0$, such that if $V_{\epsilon} (y) := (y-\epsilon, y+\epsilon)$, then $V_{\epsilon}(y) \subset O_k$. But on the other hand, since $\{f(O_{i_1}), f(O_{i_2}), f(O_{i_3}), \cdots, \}$ is converging to $y$, there's an $N$ such that for all $n > N$, we have $f(O_{i_n}) \subset V_{\epsilon}(y) \subset O_k$ for all $n > N$. But that implies $f(O_{i_n}) \subset O_k$ for all $n > N$, a clear contradiction to the italicized line mentioned in second para !

$^{[1]}$ If $S$ is countably infinite, then constructing such 
$T$ this is easy: Number the elements of $S = \{ O_1, O_2, \cdots, \}$ and construct $T$ inductively. Define $T_1 = \{O_1 \}$. Now, if $(O_{i+1} \cap E) \not \subset T_i$, then $T_{i+1} = T_i \cup O_{i+1}$. Otherwise $T_{i+1} = T_i$. Now $T = \lim_{i \rightarrow \infty} T_i$. How can I write rigorously that such a $T$ always exits even when $S$ is uncountably infinite ? 
$^{[2]}$ Again, such $P$ can be easily shown to be existing when $T$ is countably infinite (just take $P=T$), but how I can show the existence of such $P$ when $T$ is uncountably infinite ? 
 A: Your proof does have some problems, but they are fairly easy to fix.
Firstly, you can't just pick the subcovering T without first showing that subcoverings with the required property exist. Unfortunately they don't, in general. They do if E has the finite subcovering property, but that's begging the question.
Luckily, that doesn't matter. Your basic idea still works.
The way around your problems with uncountable coverings was suggested in Sheel Stubers comment. Second countable means the topology has a countable basis - a countable collection of open sets such that every open set is the union of some subcollection of the basis. The set of intervals with rational endpoints is a countable basis for $\mathbb{R}$. You can use this to get a countable subcovering from S: break each member of S into basic open sets. There will be lots of repeats but dropping those gives a covering which must be countable. Replace each one with one of the members of S it came from and you have a countable subcovering of S.
Now, construct $T$ as in your first footnote, from the countable subcovering. If there is no finite subcovering you will get a sequence $T = \{U_1, U_2, ... \}$ with the property $(U_{n+1} \setminus \bigcup_1^n U_i) \cap E \neq \emptyset$. Define your function f so that $f(U_{n+1})$ is in this set. That's all you need for the rest to work.
Lastly, there are several simple mistakes where what you've written isn't what you meant. You've defined $T$ as a collection of sets, when you write $T - O'$ you mean $T - \{O'\}$ and a little later you write $T - O$ when you mean $\bigcup T - O$. There are more on the same lines. There is a convention that we use a different font for collection of subsets of a space, $\mathscr{T}$ or $\mathcal{T}$ rather than $T$ (\mathscr or \mathcal). It's not compulsory but it does help you avoid such mistakes. Also it's better to use $\displaystyle \bigcup_1^\infty T_i$ (in whatever style you prefer) rather than $\lim_{i \rightarrow \infty} T_i$, it's just the union of an infinite collection of sets, not a limit in the usual sense.
