I just ran across a great article called Why I Love Reading Other People's Code And You Should Too. It definitely brought to mind some memories.
When I started on the web team that I'm on now, I was fresh out of college. I had worked with ASP.Net as an intern and learned a HUGE amount. (Side note: my internship experience was pretty close to what I would call ideal. I was given a series of web projects and tasks that slowly but surely increased in challenge and difficulty, making the job interesting and challenging. I was given a fabulous mentor who helped me figure out where to turn when I got stuck, and who made the work environment enjoyable. And at the end of the internship, I had something of a finished product to show for it... an internal application, built primarily by me from scratch. I now consider that experience to be a benchmark to strive for when dealing with interns.)
Anyway, when I started full time on this web team, I was no longer building applications from scratch (which, let's face it, is really fun... your creativity has a chance to shine and you feel so accomplished when you've built something useful). I was, instead, taking over an already-built code base for updates and maintenance.
Let me tell you... those first few months were painful. I had gone from feeling like a rock star intern to feeling like a complete moron. The developer who originally built the website had left the team (possibly the company) and those on the team who had maintained it in the meantime were incredibly smart and experienced, but to a point where they had forgotten what it's like not to know how to do it. Plus, it felt a little intimidating to ask. I was afraid of revealing how deep my ignorance was. I'd ask one question, and the answer I received would bring up about 15 more that I was afraid to ask.
I wish I'd come across this article then, because it has some wonderful tips for understanding existing code. Thankfully, though, I managed it on my own (with a little persistence, continued asking of questions and a lot of help from Google), and again learned a great deal from the experience. Still, it would have helped to have some reassurance back then that everyone faces that void, programmers probably more than most, and that it doesn't mean you're stupid... it just means there is a new challenge and a new opportunity to learn something new about your craft.
Posted by on Wed, 19 May 2010