Canonical URL: konduktum.com
It differs from one person to another. What you may find simple might be complicated for someone else.
Writing a kernel might be a simple thing for someone who's done it a few times but for someone starting, the concept of a kernel itself might not make much sense
Probably the wrong example to take here but the same can apply to anything. Wiring up modals to logic might be easy for some and hard for some. The problem itself is same, the solver isn't.
So then, What to do?
You try to understand the complexity first. Learn about the problem, as much as you can, more if needed and don't just learn about it theoretically, try to learn about it while implementing it.
The more you try to play with it, the more you understand, the better you get at what is being solved and what the actual problem is.
To solve something, you need to be able to break it down into smaller chunks; chunks that you already know the solution to. This helps you understand the larger problem based on things you already know.
Or to be put in one line
Understand the complexity to simplify it's solution
That sounds like a researcher's work, doesn't it?
Guess what; Every developer has to mimic one to get better at whatever they are building.