You can read all the books, code, and open source projects you like, but you need to understand the end-user aspect of software development. YouYou need to step out of the echo chamber. SoSo I'll address a couple non-technical points that will help your technical career.
Step away from the keyboard and interact with the end-user and see, through their eyes, how they use the software. EndEnd users are typically not technical, so they see software as a magical piece of work, while you see software as a logical set of steps. TheThe two worlds are completely different. SoSo what seems easy and logical to you may seem cryptic and intimidating to others.
Test, test, test. AA lot of the software I've seen in large corporations use test cases. Hell, they use JUnit, xUnit, and all the other unit testing languages out there. ButBut the problem I've seen is that most programmers never see what their software looks like in Production. LearnLearn how users (or systems, if these are batch jobs) interact with your application, library, or interface to find out what kind of abhorrent information they throw at it. ThisThis will help you generate good test cases and stop assuming your program will always be fed the correct set of data.