<p>My name is Mike.  I'm a PhD student in the area of TCS.  I am self taught in many areas of Mathematics and Computer Science.  Many people would tell you NOT to do this, but when I was your age I bought a book on Analysis (Formal Version of Calculus) and read it cover to cover.  It took about 9 months to read with a continued supply of effort and motivation, but it helped transform my way of thought and gave me the skills to formally express concepts and create proofs on my own.  It also helped me to finally understand the concept of real numbers.</p>

<p>Here's a problem that you would face if you did this.  One, it's hard and you would likely be reading it on your own.  You can talk about it with your friends and parents, but most of them won't really understand.  Secondly, once you finish it, you will be much better at math, but you don't get any college credit and later on you may have to retake a simpler version of the class and be bored out of your mind.  I was able to avoid this by doing a summer program at a local university and afterwards enrolling there as a part-time student.  It took some confidence, effort, and luck to organize such an education, but it paid off.  It allowed me to continue to learn and get credit so that I could take the classes I should be taking when I got to college.</p>

<p>After telling that little story I decided to write up some options that I'd recommend:
(1) Get a good math book and read it
(2) Enroll in a college course at a local university (or summer program locally or not locally)
(3) Work on programing projects
(4) <strong>**</strong> Participate in USAMTS <strong>**</strong> - <a href="http://www.usamts.org/" rel="nofollow">http://www.usamts.org/</a>
(5) But, whatever you do, try not to do it all alone</p>

<p>Options for what you could be learning:
(a) Intro to Formal Mathematics: any book that includes proofs, sets and functions, basic number theory, inequalities, basic counting problems, and fun/interesting/challenging problems.
(b) Number Theory - I did well starting out with a few number theory books early on.
(c) Intro to Analysis - Formal version of Calculus and a study of real numbers.
(d) I myself didn't learn much graph theory until later on, but I don't think that would be an unreasonable subject to learn about especially since it's important for Computer Science and Computation in general.</p>

<p>You should know this as well.  For all those who are self teachers, be aware that communication with others is key.  It's important to develop the flexibility to take on new terminology, to be capable of verbally expressing complex concepts, and to take the time and energy to really focus and listen to others.</p>

<p>I wish you the best of luck with everything.  If you ever would like to talk further, please respond.  I am more than willing to chat with you every now and then.  :D</p>

<p>Ps. I would have started out by saying hi, but it didn't let me.</p>

CC BY-SA 3.0
2013-10-27T07:33:03.090Z
If the person is interested in theoretical computer science, instead of a mathematics book, there are several TCS books to use for self-study.
Vijay D
CC BY-SA 3.0
2013-10-24T06:13:13.020Z
2014-05-15T04:01:07.377Z
2014-05-15T04:01:07.377Z
Michael Wehar
<p>I am currently a high school student, interested in theoretical computer science and applied mathematics. I have self taught myself linear algebra and calculus and concrete mathematics. I have a naive notion that for one to write better algorithms, one must know as much mathematics as one can because you can learn about new structures and then use those structures to form more complex and faster algorithms, now, I am not understanding what to do next. I have still an year to go to college, and in that time, I would like study some mathematics that may help me in my career. What should I start with ? Can someone please provide me with probably a list of topics that I should study now and in future.</p>

<p>Also are things like abstract algebra (it is too formal of a subject) and algebraic topology useful in computer science?</p>

CC BY-SA 3.0
2013-10-23T19:07:12.397Z
This related [question](http://cstheory.stackexchange.com/questions/3881/how-do-i-get-started-in-theoretical-cs) may be helpful.
vb le
CC BY-SA 3.0
2013-10-24T01:39:16.847Z
Yes! Things like abstract algebra and algebraic topology are useful in theoretical computer science. See, e. g. http://cstheory.stackexchange.com/questions/10916/uses-of-algebraic-structures-in-theoretical-computer-science/10928#10928, http://cstheory.stackexchange.com/questions/1920/examples-of-unrelated-mathematics-playing-a-fundamental-role-in-tcs/1925#1925. That doesn't necessarily mean that those are good places to *start*, but they're certainly not bad things to learn anyways as they could be useful in many different areas.
Joshua Grochow
CC BY-SA 3.0
2013-10-24T06:39:28.423Z
TCS is so vast that whatever math you learn, there is a use for it.
Mahdi Cheraghchi
CC BY-SA 3.0
2013-10-24T09:01:30.237Z
Don't forget to write some code.
Jeffε
CC BY-SA 3.0
2013-10-24T15:17:59.847Z
it looks "promising" based on self-study of advanced topics for age level but the questioner does not exactly/explicitly say hes interested in _research_ therefore this question may seem more appropriate to cs.se. making that assumption, that he is, see also [math courses for CS masters/Phd](http://cstheory.stackexchange.com/questions/5312/what-math-courses-should-i-take-to-prepare-for-a-cs-masters-or-phd) and use the std refs associated with those answers.
vzn
<big-picture>
Career in Theoretical Computer Science
Iota
# Career in Theoretical Computer Science

(Asked by: username_0 on 2013-10-23)

I am currently a high school student, interested in theoretical computer science and applied mathematics. I have self taught myself linear algebra and calculus and concrete mathematics. I have a naive notion that for one to write better algorithms, one must know as much mathematics as one can because you can learn about new structures and then use those structures to form more complex and faster algorithms, now, I am not understanding what to do next. I have still an year to go to college, and in that time, I would like study some mathematics that may help me in my career. What should I start with ? Can someone please provide me with probably a list of topics that I should study now and in future.

Also are things like abstract algebra (it is too formal of a subject) and algebraic topology useful in computer science?

**Tags:** big-picture
> **Comments:**
> **username_1**: This related [question](http://cstheory.stackexchange.com/questions/3881/how-do-i-get-started-in-theoretical-cs) may be helpful.  
> **username_2**: Yes! Things like abstract algebra and algebraic topology are useful in theoretical computer science. See, e. g. http://cstheory.stackexchange.com/questions/10916/uses-of-algebraic-structures-in-theoretical-computer-science/10928#10928, http://cstheory.stackexchange.com/questions/1920/examples-of-unrelated-mathematics-playing-a-fundamental-role-in-tcs/1925#1925. That doesn't necessarily mean that those are good places to *start*, but they're certainly not bad things to learn anyways as they could be useful in many different areas.  
> **username_3**: TCS is so vast that whatever math you learn, there is a use for it.  
> **username_4**: Don't forget to write some code.  
> **username_5**: it looks "promising" based on self-study of advanced topics for age level but the questioner does not exactly/explicitly say hes interested in _research_ therefore this question may seem more appropriate to cs.se. making that assumption, that he is, see also [math courses for CS masters/Phd](http://cstheory.stackexchange.com/questions/5312/what-math-courses-should-i-take-to-prepare-for-a-cs-masters-or-phd) and use the std refs associated with those answers.  

---

## 1 answers

### Answer by username_6 on 2013-10-24. Score: 9

My name is Mike. I'm a PhD student in the area of TCS. I am self taught in many areas of Mathematics and Computer Science. Many people would tell you NOT to do this, but when I was your age I bought a book on Analysis (Formal Version of Calculus) and read it cover to cover. It took about 9 months to read with a continued supply of effort and motivation, but it helped transform my way of thought and gave me the skills to formally express concepts and create proofs on my own. It also helped me to finally understand the concept of real numbers.

Here's a problem that you would face if you did this. One, it's hard and you would likely be reading it on your own. You can talk about it with your friends and parents, but most of them won't really understand. Secondly, once you finish it, you will be much better at math, but you don't get any college credit and later on you may have to retake a simpler version of the class and be bored out of your mind. I was able to avoid this by doing a summer program at a local university and afterwards enrolling there as a part-time student. It took some confidence, effort, and luck to organize such an education, but it paid off. It allowed me to continue to learn and get credit so that I could take the classes I should be taking when I got to college.

After telling that little story I decided to write up some options that I'd recommend:
(1) Get a good math book and read it
(2) Enroll in a college course at a local university (or summer program locally or not locally)
(3) Work on programing projects
(4) **\*\*** Participate in USAMTS **\*\*** - <http://www.usamts.org/>
(5) But, whatever you do, try not to do it all alone

Options for what you could be learning:
(a) Intro to Formal Mathematics: any book that includes proofs, sets and functions, basic number theory, inequalities, basic counting problems, and fun/interesting/challenging problems.
(b) Number Theory - I did well starting out with a few number theory books early on.
(c) Intro to Analysis - Formal version of Calculus and a study of real numbers.
(d) I myself didn't learn much graph theory until later on, but I don't think that would be an unreasonable subject to learn about especially since it's important for Computer Science and Computation in general.

You should know this as well. For all those who are self teachers, be aware that communication with others is key. It's important to develop the flexibility to take on new terminology, to be capable of verbally expressing complex concepts, and to take the time and energy to really focus and listen to others.

I wish you the best of luck with everything. If you ever would like to talk further, please respond. I am more than willing to chat with you every now and then. :D

Ps. I would have started out by saying hi, but it didn't let me.

> **Comments:**
> **username_7**: If the person is interested in theoretical computer science, instead of a mathematics book, there are several TCS books to use for self-study.  

---

