It’s fairly common for a programmer to think of themselves as some kind of virtual warrior. Someone who hears out the cries for help of other coworkers and acts swiftly to solve problems and make everyones lives/jobs easier.
I preach often that no matter good of a programmer you are, you will always have to learn the infrastructure in place at certain organizations. It’s simply not possible to walk in somewhere and know exactly how things are working in there. General approaches help make things similar, and workflow management standards help make things more stable/organized, BUT each and every line of code is an opportunity to do things slightly different. The same holds true for applications fitting into the overall system, and for the way systems integrate with one another. Assuming things all work the same, is a point of arrogance in most young developers.
When a knight began fighting for a kingdom, they would always need to craft their sword. Of course this task would most often be “outsourced” to the local blacksmith, but the regardless the deed needed to be done.
This holds true for programmers as well beginning at new organizations, you will always need to craft your sword or hone your knowledge of ones infrastructure before being able to “wield your sword” for the organization who has now hired you.