编译原理和操作系统可以一起学。编译原理偏难,一定要有良好的语言基础。操作系统和语言的关系很大,重点在于操作系统本身的构建原理和相应的体系,这体现在相应的语言和数据结构上。组成原理是硬件课,研究的是计算机的硬件组成,在有数字电路和逻辑基础后就可以学了。以上三门课我都不建议0基础学。
在大学里,这些都是大二以后的课程,至少对计算机的体系有一丝了解,会一门语言,才可能看懂这些书。特别是组成原理,偏向硬件,一点基础也没有是不可能学会的,不懂汇编语言,不编程实践也很难真正理解。