I work on new and existing software to improve my team's product and help customers succeed.
I spend a lot of time tracking down bugs in the existing code since I'm pretty new and that's a great way to learn the code base. I am also working on some smaller new features, which involves a lot of abstract, creative thought, and asking a lot of questions of my teammates; we have frequent meetings to check in with everyone. We are very collaborative and we have to work together or the whole project can come screeching to a halt - it's a lot of fun, even when it's frustrating or slow.
Patience. And the self-confidence to simply try stuff - which means having the self-confidence to fail (a lot) without losing your willingness to learn and move forward.
Here's the first step for professionals
Learn where (and how) to look stuff up - absolutely no one has all this stuff in their head, and you don't need to waste time trying to memorize everything. Good developers are good at looking stuff up to remind themselves how to do things. The other important thing is to have something else in your life that doesn't involve sitting in front of a screen. Seriously. If you can walk away and leave it behind for a bit every day, you'll be more focused when you sit back down to get to it.
"You should pick science as a career, and keep art as a hobby. Creatives never succeed."