There is a max code size on Ethereum and I believe it's 24 kilobytes. But essentially means that you can put any 24 kilobyte blob of data on the blockchain. It might cost a lot of money depending on when and how you do this. We've actually, a parody, have received job applications through the data field of a transaction.
In this introductory episode, we discuss what makes up blocks and block headers. We also cover a bit about state vs history, what exactly makes up a transaction and do a quick intro to a Merkle Tree.
For more, please check out these resources: