I want to learn about classical algebraic geometry. So what are subjects that are required to start learning about it? (Some preknowledge of algebra, commutative algebra?)
Hartshorne confesses, in the introduction to his textbook on Algebraic Geometry, that
His Chapter 1 is meant to be that classical introduction to the subject, leaving modern concepts like schemes and cohomology to later Chapters, which he calls the "technical heart of the book".
His introduction lays out the pre-requisites he assumes as well:
I would say, having used that textbook myself (and with the author as lecturer), that Hartshorne is being somewhat cavalier in his expectations. I would say that you definitely need some good knowledge of commutative algebra, probably at about the level of Atiyah-MacDonald; no fewer than the first 7 chapters of the latter, but you really need some knowledge of graded rings (Chapter 10 out of 11), so probably the whole thing is better.
For a different viewpoint, William Fulton, in the special preface to Algebraic Curves written in 1989, says that the book was originally intended to introduce students "with a little algebra background to a few of the ideas of algebraic geometry", and that working through the book and its exercises may help prepare the reader for textbooks such as those of Shafarevich, Hartshorne, Mumford, or Griffiths and Harris (among others mentioned), which had been written between the original publication of the book and 1989. In the original preface, he lists the pre-requisites as:
You can learn algebraic geometry at many levels. To become a researcher in algebraic geometry, you will need to have a solid background in commutative algebra, topology, etc. One would then proceed through Hartschorne. However, this is overkill for people who don't want to become professional algebraic geometers. Miles Reid's book "Undergraduate Algebraic Geometry" does a lot of nice classical geometry, and its only prerequisites are what would usually be covered in a one semester undergraduate course in abstract algebra.