I've had a couple of jobs like that, where all the programmers had left the company. I'd call that a red flag.
It's probably no coincidence that the project has no documentation, but it's hard to tell if there's a causal relationship there. The truth could be any of the following:
- The programmers left because management didn't allow them to document their work.
- Management asked the programmers to leave because they refused to document their work.
- The programmers left after the project became too difficult to work on, without documentation.
Probably the best way to familiarize yourself with the code is to write tests. Set yourself up with a unit testing tool that produces code-coverage reports. Write tests that exercise all the code. The code-coverage visualization helps you to spot edge cases that you haven't exercised yet. As you go through this process, I guarantee you'll learn a lot about how the code works. And as a side benefit, you'll produce a full unit-test suite.
Getting a tool that generates API docs is another option, other people have mentioned. This kind of documentation is only useful for reference. It's not useful for showing you how or when to best use a given class or method.
Another exercise would be to build UML diagrams for parts of the system. A sequence diagram can be useful even when the code's object-oriented architecture is flawed.