title: 从工作角度出发，学习编译原理和操作系统哪个对于个人帮助更大？
desc: Hi，本人米硕一枚，方向偏cs。由于本科阶段学的不是这个领域，自己这几年稀里糊涂编了一些程序但总觉得对提高帮助不是很大。在问答社区上浏览了很多问题后，我觉得原因可以归结为自己缺乏“内功”：除了数据结构AI与计算机硬件（这个课更像是在玩单片机...）外，其他基础课都有所欠缺，因此对计算机的整体认识还不是很到位...我认为对我而言最重要的知识体系就是编译原理和操作系统了，然而硕士阶段也没有太多选课空间让我把这些东西全都补回来，所以就想听听问答社区上各位从业大神的意见：如果Compiler和OS只能二选一的话，从工作角度出发，学习哪一个对于个人的帮助更大一些...谢谢！<br><br>ps. 这里的帮助其实也没有特别功利的意思...我的意思是工作开发中，因为有了这两个领域的知识后，自己写代码时会有意无意地去考虑一些细节，从而写出更合理的代码...想要的就是这样一种效果 00
topic: 操作系统
content: 当然是编译原理，编译原理告诉你的是一环扣一环的只要其中一个步骤没搞定后面就永远都别想学会的知识，组织特别清晰。当你去实现一遍的时候，你就至少要写一个略有规模计算过程复杂不用一点设计模式（特别是visitor）的话无论怎么搞都巨丑的程序。要是工程能力不强的话，结果永远都是写烂掉。所以学这个当然是有利于提高你的工程能力的。
answerer_tags: 专业造轮子，拉黑抢前排。gaclib.net