As someone who has never done meaningful Java development, I always find the project structure of Java codebases indecipherable. Why are there so many folders? I understand that namespaces depend on directory path, but it just seems like there is so much "stuff" here that I would have no idea where to even begin looking for an entry point or useful code snippet.