Hi, we'd love to have you contribute! Thanks Jason for providing some links! I have a few more to add :)
There are pages on the tools Blockly uses, how our build process works, etc. Unfortunately, we don't have many docs that explain high-level concepts aimed at a contributor to the library. If you want to know about fields, there is a lot of documentation about them from an API consumer's point of view. But if you want to know for example how dragging a block from the flyout to the workspace works, well, there's not a lot of documentation about that besides reading the code. This is a weak spot in Blockly's documentation, but since I just joined the Blockly team a year ago, it was something I also found myself wishing for, and it's an area I'm hoping to make time to address soon (but we are a small team and it can be hard to find the time!)
I'll also say that blockly-samples might be an easier part of the codebase to start contributing in. It has fewer legacy issues than in the main blockly repo (you can use es6!) and some of the feature requests there can be worked on from the point of view of consuming the Blockly APIs (which tend to be more documented than the internal methods) rather than changing how core blockly works. Some of them do require changes in core blockly, so when you're ready for that, it's a good way to have a focused dive into how blockly itself works.
There are a number of
good first issues available in blockly-samples so that is probably the best place to start. Some of them are more good-first-issues than others, so feel free to look at a few and pick based on your experience level. Some of them tell you step by step exactly what to change and some of them are more open ended. If you want to tackle any of them and get stuck on something, please ask and we'll try to help :)