I'm not a C++ developer, although I have been trying to learn slowly. Are there any prerequisites or requirements to contribute to the Monero code? Also what resources are good to read before trying to contribute to the code?
A good way to get started it to use Monero, and improve something small which you think can be improved. This allows you to start on a change that's simple enough to start with, while having a goal to achieve. Then do it again :)
Monero's git repository is at https://github.com/monero-project/bitmonero/. There, you can find a list of issues (https://github.com/monero-project/bitmonero/issues), some of which are fairly self contained and simple for a new contributor.
To talk with other contributors, join Freenode IRC, in #monero-dev. There is also #monero for monero talk that's not about developing monero. It is a good idea to idle in those channels.
There aren't really prerequisites, but some of the Monero/Cryptonote code is fairly complex. Some is less so (eg, the wallet code).
I'd recommend getting into testing if you haven't got much coding experience, if you have a spare Trezor, you could try testing NoodleDoodle's Trezor for Monero binaries https://forum.getmonero.org/4/academic-and-technical/2495/experimental-trezor-firmware-testing, or you could try and give the Monero GUI a whirl, instructions for getting it compiled and running with minimal fuss is here, https://www.reddit.com/r/Monero/comments/4yp52w/super_simple_build_instructions_for_the_monero/
This helps developers make more stable releases in the future by fixing any bugs users discover early on. I'd also recommend getting up to speed with git, and github as they are regularly used to manage the codebases. Hope that gives you some ideas.