理论计算机出身的将来可以做什么工作？
说个残酷的现实：同样的智商、努力程度，和差不多的际遇下，做理论会比做一些火热的方向更难以找到教职，因为这个领域的高手实在太多，而学术界提供的教职又太少。工业界的 research scientist 的岗位，几乎很少招纯理论的方向的，少数几个有可能招理论研究者的机构，比如 MSR， IBM research, Google research etc，对 TCS 方面的 researchers 消化都是非常少的， 所以门槛随之变得非常之高。 作为天赋一般，也不是世界顶级学校毕业的 PhD, 如果要考虑到未来的经济收入这种事情，那就需要你在读 PhD 的时候也兼顾一下一些可以挣钱的技能。 比如说你至少也要会写写代码吧，比如你至少也要具备一些基本的计算机知识，而不是只知道一些纯抽象模型以及数学工具对吧？ 如果你只是需要达到找到普通码农工作的要求， 那学习那些“生存技能”也并不需要花费你太多时间，毕竟你不需要达到专家的水平，很多细化的具体的技能，进了公司以后也可以慢慢打磨。当然你不想做码农的话，也可以去掌握一些其他相关技能。 TCS 圈子里有一部分人喜欢标榜是做 TCS 的，看不起做应用； 而做应用的有些人，则觉得 TCS 太过于偏离实际，很多工作只是在去掉一个 log n，算法无比复杂却不实用，所以索性也不怎么去看（看不懂也是一个可能的原因）。 实际上 theory community 和 application community 的割裂相当严重；有很多工作，两个圈子相互之间都不太了解，或者说是需要相当长的一段时间，两个圈子里的人才能了解彼此做了什么。 其实我觉得做 research 除了让自己爽外，还有很重要的一点是就是解决问题，解决重要的问题。 如无必要，无需给自己贴上 TCS 的标签；从功利的角度讲，解决问题，作出重要工作是最重要的。理论和实验，都是工具，能解决问题，都是好的，不必把自己限制在某个标签下面，只在一个很小的圈子里混，眼睛只盯着很少的几个问题。如果有这种开放的心态，即使一开始是从纯理论入坑，也能入坑出坑自由，更不用担心毕业后找不到工作。