<p>I would like to know whether knowledge of the theory of computation can help you to be a better practitioner. Is it enough to obtain some depth of knowledge of algorithms and data structures, or would it help to also know automata (for compilers, types, programming languages), computability and complexity? </p>

<p>If it would be wise to obtain more knowledge, what references can I read. For undergraduate education, I know basic stuff such as Hopcroft, Sipser, Ullman.</p>

CC BY-SA 3.0
2013-04-05T14:10:36.727Z
It is at least widely believed that more knowledge of any kind helps with just about anything. A better question would be the the contrapositive form: *Is there a practical application which is impossible (or at least very difficult) without in depth theoretical knowledge*?
François G. Dorais
CC BY-SA 3.0
2013-04-05T18:05:30.017Z
yes, its a symbiosis. eg analyzing complexity of algorithms can be very theoretical and yet very applied/practical at the same time. note, similar to this question from opposite angle, [how important is it to know how to program for TCS](http://cstheory.stackexchange.com/questions/8851/how-important-is-knowing-how-to-program-for-tcs)
vzn
CC BY-SA 3.0
2013-04-05T18:27:25.393Z
I would have to say no, as a practitioner, you mostly need experience, and the theory of computation is not that helpful. It might be helpful to have some experience in deductive reasoning, but you don't need to study theory of computation for that, you can study just about anything which has a critical component.
Yuval Filmus
CC BY-SA 3.0
2013-04-08T21:22:36.507Z
I think you should ask this from practitioners as you want to know if it helps *them*. I think the question is kind of off-topic here. If you want to ask for books to read, then again it is more suitable for [cs.se] or [programmer.se].
Kaveh
CC BY-SA 3.0
2013-04-14T09:02:06.483Z
I've found being able to do simple reductions by hand to be pretty helpful. Garey & Johnson is a really good reference. In general, it is certainly good to know whether the problem you're trying to solve is NP-complete, for example.
0xYUANTI
<soft-question><career>
Does a depth knowledge on theory of computation helps to be a better practitioner
Sebastian Valencia
# Does a depth knowledge on theory of computation helps to be a better practitioner

(Asked by: username_0 on 2013-04-05)

I would like to know whether knowledge of the theory of computation can help you to be a better practitioner. Is it enough to obtain some depth of knowledge of algorithms and data structures, or would it help to also know automata (for compilers, types, programming languages), computability and complexity?

If it would be wise to obtain more knowledge, what references can I read. For undergraduate education, I know basic stuff such as Hopcroft, Sipser, Ullman.

**Tags:** soft-question, career
> **Comments:**
> **username_1**: It is at least widely believed that more knowledge of any kind helps with just about anything. A better question would be the the contrapositive form: *Is there a practical application which is impossible (or at least very difficult) without in depth theoretical knowledge*?  
> **username_2**: yes, its a symbiosis. eg analyzing complexity of algorithms can be very theoretical and yet very applied/practical at the same time. note, similar to this question from opposite angle, [how important is it to know how to program for TCS](http://cstheory.stackexchange.com/questions/8851/how-important-is-knowing-how-to-program-for-tcs)  
> **username_3**: I would have to say no, as a practitioner, you mostly need experience, and the theory of computation is not that helpful. It might be helpful to have some experience in deductive reasoning, but you don't need to study theory of computation for that, you can study just about anything which has a critical component.  
> **username_4**: I think you should ask this from practitioners as you want to know if it helps *them*. I think the question is kind of off-topic here. If you want to ask for books to read, then again it is more suitable for [cs.se] or [programmer.se].  
> **username_5**: I've found being able to do simple reductions by hand to be pretty helpful. Garey & Johnson is a really good reference. In general, it is certainly good to know whether the problem you're trying to solve is NP-complete, for example.  

---

## 0 answers

