The higher the pay, the more it is required from the engineer to "just figure out problems and their solutions".<p>For example: A StartUp is hiring the first 5 engineers. Some of the first ones come in, and see: "Oh, the structure of the code is not quite as good" or "we should really implement x instead of y here for these reasons."<p>What if you struggle in these environments and want to learn how to excel there? Is it just applying past experiences to a new situation, or can you learn to look for solutions?<p>TL;DR: How to find problems and solutions to them in the codebase (and product) without a vast prior experience in that specific environment or industry.
Getting a PhD would help (at least half a decade of wrestling with uncertainty will cure you of your fear of it), but I think an MEng is less helpful (I talk to a lot of MEng students who are working on some project where they are really over their heads.)<p>Then there are side projects. A good side project pushes really hard against uncertainty in at least one direction but is conservative in other respects. Being responsible end-to-end for a project forces you to confront things you might otherwise flinch at.
> Is it just applying past experiences to a new situation, or can you learn to look for solutions?<p>You can achieve anything you put your mind to. It took me a while to realize this. Turns out the brain is a marvelous machine and once it has a goal (solve such and such a problem) it will try everything in its power to solve it, since it's a goal-oriented machine. People doubt their own capabilities, and don't believe in themselves, which is their own downfall.