I have been doing this thing called software development for over two decades and I consistently see developers make the same bad mistake. Then they are wondering why they are not making the money they think they should make, get zero chances for promotions and are constantly frustrated when they come across programming/application issues.
1. Developers Do Not Learn The Whole Environment Surrounding Their Code
From my experience, most developers today are specialist. There is nothing wrong with that but there will be definitely frustrations that come with that. If a problem happens in your code that is not initiated from your code you will have a hard time finding the problem because you have no clue about the environment surrounding your code.
For example let's say you are a web developer and the minute you deploy your code to the server it blows up (dev language). I have seen time and time again developers spend hours looking through the code for a problem or better yet searching Stack Overflow. The one reason they do this is because that is the only place they are familiar with. They have no clue how a web application interacts with the underlying web server, DBMS, or operating system. I have seen web developers where all they know is a server-side language and some HTML.
I don't know how many times a developer has asked me for help with an application issue and it had nothing to do with the code.
I will admit some places have 100 person teams where if you have a server or database issue you can just IM someone for help but keep in mind that you have to wait on someone for help and it makes you less productive. Why not just spend some time learning the environment surrounding your code. It can't hurt. Knowledge is power.