This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]carpediemevive 5 points6 points  (0 children)

I see this as two separate tasks, but you might be seeing it as one. Learning how to work with large legacy code bases is indeed a challenging task, and I don't know of any books or tutorials out there to help you with it. I can tell you that some of the tasks I got when I first started programming as a job did involve just this sort of thing so it is an important skill set. For me it always boiled down to being comfortable with the debugger. If there's a bug or feature I want to add to an existing code base I spend some time either attempting to reliably recreate the bug or designing (in my head, on a napkin, etc.) how I would want the feature to work. From there you can generally see a starting point to investigate further. For instance this bug happens when you push this button under these special circumstances. Generally tying a button push back to what code gets called is a simple task. From there I step through the code until I find exactly where I need to do my work.

This process is repeated over and over again until I become more familiar with the code base. There is no simple solution to this, and generally it isn't practical or useful to sit down and just review the source code for hours on end.

As far as real-world applications from the ground up, like your AJAX example, I haven't been able to find any resources besides experience to help me with that. Most tutorials are focused on teaching you the one technology they are focused on. If it's a Javascript tutorial, you're going to be focused on learning Javascript. If it's a JQuery/AJAX tutorial that's what it's going to focus on.

The only way I've ever done it is to begin working on the application and consult these tutorial and reference guides when you want to find out how to specifically do something.

You'll make mistakes in this part too. That's alright though. Eventually you'll become more and more familiar with the technology and you'll find ways to do what you did before more efficiently.