When I first started working full time as a developer, it took me a while to get up to speed on my company’s code base and feel like I understood it enough to pick up a story and do it without much help. Even when I understood the basic structure of the code base, there were always co-workers who understood it at an even higher, and, at the same time, more granular level because they have more experience coding in general and coding specifically on the project at work.
So, as a beginner, it’s very hard to play catch-up. There will always be someone at your company who’s been there longer and knows the code base better and has more years of experience than you in general (although you will become that person eventually, so don’t get discouraged!).
But, as I’ve been working on a ton of side projects over the course of my professional software development career, and my co-workers haven’t as much, I’ve noticed I started getting an advantage in a whole different playing field.
Because I build my projects using the latest technologies (e.g. for iOS, I’ve been playing with XCode 5 for a while, I took the time to learn AutoLayout in Xcode 5, I’ve made apps using Container Views, and I’ve experimented with iBeacons), I’m becoming someone my co-workers turn to for advice and ideas as we upgrade our project.
In most companies, it’s expensive to upgrade right away. For example, in my company, we just dropped iOS 5 support and still haven’t upgraded to iOS 7. However, eventually we will upgrade (sooner rather than later to iOS 7), and I’m there with an expertise that some of my co-workers might not have, because they haven’t experimented with iOS 7 as much as I have on the side.
So, as a beginner, one of the most important things you can do for your career is to build side projects using the latest available technologies! Eventually, those new technologies will dribble down to your company, and you’ll be there, waiting to share your hard-learned lessons and expertise, making you invaluable to the company you’re working for.