title: The best way to familiarize yourself with an inherited codebase
body: <p>Stacker Nobody asked about the <a href="https://stackoverflow.com/questions/214452/what-surprised-you-the-most-about-the-software-industry">most shocking thing new programmers find as they enter the field</a>.</p>
  
  <p>Very high on the list, is the impact of inheriting a codebase with which one must rapidly become acquainted. It can be quite a shock to suddenly find yourself charged with maintaining N lines of code that has been clobbered together for who knows how long, and to have a short time in which to start contributing to it.</p>
  
  <p>How do you efficiently absorb all this new data? What eases this transition? Is the only real solution to have already contributed to enough open-source projects that the shock wears off?</p>
  
  <p>This also applies to veteran programmers. What techniques do you use to ease the transition into a new codebase?</p>
  
  <p>I added the Community-Building tag to this because I'd also like to hear some war-stories about these transitions. Feel free to share how you handled a particularly stressful learning curve.</p>