"I don't see why I can't do compilers if I have to. I didn't take the "compilers" course in my remote study, because I wasn't interested. But when you reach a certain level of computing knowledge, you can learn anything quickly"
Well, consider this. Here's an exercise, without googling for a solution (other than language documentation), do you think you could write your own grep? Write a reasonably performing distributed algorithm for routing over an ad-hoc network? Think you could write an automated theorem prover or model checker? How about just a frequency hopping protocol for congested wireless networks?
Some of these are not things that you can learn quickly with a "certain level of computing knowledge". Sometimes research projects like this take years and decades by huge teams and brilliant people, who often have to spend considerable amount of times formalizing and making consistent the underlying theoretical models, which can only then be effectively implemented.