I've started using Dolphin just about 3-4 months ago. I've been a server-side software developer for the past 7 years, but only got introduced to Web programming in the past year (PHP, HTML, JS). I'm currently in the process of utilizing my very first community site ever, using Dolphin. And I make a LOT of changes, as I need my site to support right-to-left language inc. look-and-feel, and because the community type requires a lot of customization from the basic Dolphin setup.
Yes, the code is complex. I don't think there is a community script out there which isn't (and I've trialed several). Community sites are complex by definition.
I have no idea how someone with zero developing skills can customize many of the basic stuff by himself. There are a lot of configuration settings available in the admin panel, which everyone can use, but you reach your limit very fast if you're trying to do more than the basic changes, or require something that doesn't come ready out of the box. And that's true for every community script I know of.
But I write this as a developer:
Code annotations- almost don't exist, although I never missed them. Var and functions names are very clear as to what they contain, and functions are short and quite well written, they really speak for themselves.
You won't usually open a file and start reading the functions in it, but search for a specific something.
I work with the browser's "developer tools", and an IDE set with its workspace pointing to a local copy of Dolphin on my PC, to run searches through. That's all you really need in order to start getting the hang of it.
After ~3 months of code munching I can say the learning curve is a bit stiff, but once you get the hang of it- you just run with it.
The thing that bothers me the most is the inconsistency between the modules. For example: one module uses an array to define a group of service buttons, while another module reads them from the DB. Sometimes such inconsistencies exist within the same module. It can drive you nuts. As an experienced developer, I'm familiar with these issues, which are common and almost unavoidable when you maintain a veteran code throughout the years and under several different developers. So you take a note, curse a little... sigh, and move on.
Oh, and one more thing: the best tool you have here, which I can't appreciate enough: the forums. There is nothing I couldn't find by searching previous posts, or by asking the questions myself. No question left unanswered. Great people with great help.