As a beginner developer, focusing on becoming a “10x engineer” is the wrong approach to get better at the craft of programming. You don’t want to produce ten times what other engineers do, you have to make your own path.
An amazing programmer is a master programmer, a developer who can do great work. That’s our ideal: we may or may not reach it, the choice is ours to make every day. In software, you do great work by knowing how to learn how to code anything, with others. It’s about being capable of contributing to masterpieces.
You don’t need to know everything by heart, but you can’t afford not to know how to obtain the information you need.
As long as you know how to divide to conquer, you can do anything. Being able to break down a problem into smaller ones is the essence of programming. It implies a general understanding of the field and a deep comprehension of the overall problem at hand. Knowing what you need to know is 50% of the work.
Programming is social. You collaborate with tons of people: other developers, end-users, copywriters, marketers… the list of stakeholders goes on and on. You want to make things for your own intellectual satisfaction, but never forget you mainly do it for others.
Programming is incredibly diverse: from management and business to theoretical computer science, there is no one path you must adhere to. A good hacker follows her interests to benefit others. Just dare and make something personal.