Possible Duplicate:How do you dive into large code bases? I just joined a new company and started to study one of the their bigger system. For me to be productive, I need to understand the entire system without too much help. Other programers are really busy and dont' have time to hold my hands.I used to use brain map to draw a pictorial representation of the system. Any recommendations on what is the right appproach to dissect a big program? It is a .net prgoram by the way.
What kind of process should I use to learn a big system?
programming practices;software
I would start with the documentation of the system: design document, requirements document(s), database schema or possibly a user's manual.  If you are lucky, you will find all of these, but find whatever you can.  Read these to get an idea of what the system is supposed to do.    Then I would play with the system in a test environment to get a feel for how it works.  Once I am comfortable with my understanding of what the system is supposed to do, I would start looking at the code for the simplest subsystem I can find.  Maybe a single data entry form or a single analysis algorithm, the key is to find something small enough that you can understand that code completely.  Keep repeating this until you have conquered the whole system.If this is a system of any complexity, this will take a significant amount of time.  I would also check with your new manager to see what areas (s)he wants you to focus on.  The most important thing is to attack this problem in manageable chunks, you can't learn it all in one shot.