# How much programming is practiced in Theoretical Computer Science jobs?

I am an undergraduate student studying Information Technology. I like both math and CS, so I am considering to go into either "Computer Science and Math" or "Theoretical Computer Science" for my postgraduate study. Some of the fields I'm interested are: combinatorial and computational complexity.

I heard that the only career option in Theoretical CS is to become a researcher - and from where I come from, research are not strongly supported and encouraged (especially in CS), so researcher is not just a common career here.

But what I concern the most is people tell me that there are little programming practice in TCS, while I enjoy programming.

1. Is that true? Of all the research categories in TCS, which ones require more programming practices and what programming is used for there?

2. I have never worked theoretical math & rigorous math analysis e.g.: proving theory etc, though I'm quite sure I can master it if I learn it. How much will it affect me if I study TCS?

• TCS uses as much maths as you have available: the more, the better! If you don't have a strong maths background or experience proving theorems, then you will not like TCS. Some top results in TCS have a programming component (for instance, Ryan Williams' separation of ACC$^0$ and NEXP), but programming is a tool and not the main focus in TCS, even in programming languages. There are programming jobs supporting TCS researchers, especially in PL, but they still require a strong maths background. If you want to explore a TCS career, try some hard maths or logic courses and reassess. – András Salamon Feb 10 '15 at 13:34