my question is, if its possible to calculate the pub key with uG then since you are doing u computations already, can't you just calculate the private key from P?

Just brute force G as many times as needed until you arrive at P.

The numbers are so big that brute forcing is not possible with the technology that we currently have. Even if all the existing computers would be used simultaneously for only that purpose, it would still take more than 10000 years to brute force ONE bitcoin key. (Much, much more than 10000 years.)

Yes; u*G is computed in time logarithmic in u, not linear in u as you seem to think.

For instance 13*G is computed as 2 * (2 * (2 * G + G)) + G.

Correct, but I think the same can be more clearly explained in the way it is actually done:

First pre-calculate the values:

G, 2*G, 4*G, 8*G, 16*G, 32*G ....... 2²⁵⁶*G

Then these pre-calculated values are used for getting any desired value by using only addition.

eg:

13*G= 8*G+4*G+G

This is faster, because you do not have to do the same multiplications every time. You can just use addition. And to do this you only need to keep the 256 precalculated values in memory.