Improving Mathmatical Skill I am a student of computer science and engineering. My understanding of mathematics is not very good. I am getting very hard time studying subject that require a background on mathematics. So, I decided to start from the level 0. Wikipedia have a entry where I learned that there are a few category to watch for.
Foundation:


*

*Mathematical logic

*Set theory

*Category theory

*Theory of computation


Quantity:


*

*Natural numbers

*Integers

*Rational numbers

*Real numbers

*Complex numbers


Structure:


*

*Combinatorics

*Number theory

*Group theory

*Graph theory

*Order theory

*Algebra


Space:


*

*Geometry

*Trigonometry

*Differential geometry

*Topology

*Fractal geometry

*Measure theory


Change:


*

*Calculus

*Vector calculus

*Differential equations

*Dynamical systems

*Chaos theory

*Complex analysis


That buys me to start from foundation. So, I started mathematical logic. But It doesn't look like as a starting place.

So, My question is, What would you do If you were to start over from level 0? And how you would complete these listing understanding at least at basic level?
 A: From my viewpoint doing logic before do other thing in mathematics is useless, theoratically it's possible of course but you need examples and motivation first.
I think linear algebra is the best place for begin. It can be done at a very elementary level, and show you the very beginning of abstract reasonning but also with lot of concrete computations. It's the first thing I learned at university, with calculus, but I think calculus is a bit more complicated. 
If you feel lost, then you should do some high school math before doing it, but I don't think it's necessary especially if you are computer science student.
So I think a good order for you could be :


*

*Linear Algebra

*Discrete Maths

*Abstract Algebra


Some reference are in this thread for linear algebra.
Finally, be curious ! If some topic seems very interesting for you, go on Wikipedia, read more, take a book and try to do some exercises ! You will not become a god in this topic of course but that's how you will really learn math if you're interested. 
Edit : I just add a little exercise for you if you're interested. Try to prove the Newton Binomial Formula : 
if $x,y$ are reals numbers and $n$ a natural number, then try to prove this equality : $$ (x+y)^n = \sum_{k=0}^n \binom{n}{k}x^ky^{n-k} $$
where $\dbinom{n}{k} = \frac{n!}{k!(n-k)!}$ and $n! = n \times (n-1) \times (n-2) \times\cdots \times 2 \times 1$.
A: In my opinion it is not necessary for you to start from level 0. I guess you have a mathematical background (high school). If this background is not very good, you should start with revision of high school maths. Then you can look to university study programmes of maths. They usually start with calculus and linear algebra. These parts of mathematics have many applications and it is necessary to manage them before you move to another more advanced topics. Combinatorics is also very important for computer science and so it can be useful for you to study it together with calculus and linear algebra. 
A: One learns math in the best way, if one has a concrete application in mind. Often it is to abstract if you start the mathematical logic lectures. 
Maybe as an student of computer science you like algorithms and so you can consider to learn numerics. 
And I think it is not necessary to start with level 0. If you start learning for example optimization, you will learn the calculus needed for the optimization. 
The first semesters of learning mathematics I only learned it without imagination. Then when I started to apply the theory I started to understand the theory much better. 
There are some nice example for you as a computer scientist like random walks, simplex algorithm for solving linear optimization problems or numerical integration. 
This would be learning by doing. But if you are really interested in the deep theory you need to have a good understanding of basic linear algebra and calculus. 
