I'm a high school senior about to graduate in 1 month. I have a strong passion in math, and I want to be a mathematician. What is the best path to getting into a top grad school? How many REU's should I try to do? Any publications? How about graduate level courses? Do you need a 4.0 in undergrad? I'm also self studying as much math as I can, from Artin's Algebra, Munkre's topology, and baby Rudin. How much math should I know by the time I apply for grad school? I would greatly appreciate your feedback!
Here are my suggestions, having just finished a year of graduate school in math. It's therefore mostly anecdotal and should be taken lightly!
REUs: Try to do as many as you can! You get to meet other people who like math, learn new stuff, practice struggling with research, travel a bit, and get some cash to boot. They also, of course, look good on applications.
Publications: I don't personally have any publications. I wrote a few papers during my REUs and projects, but they were only published on the REU websites. So they're not necessary to get in. However, I did have a great deal of trouble getting acceptances. Maybe a publication would have helped, but I think it's very rare for an undergraduate to actually publish a paper.
Graduate Courses: I took several of these as an undergraduate. I enjoyed them, but realize now that I should have taken them a little more seriously! I've forgotten a great deal of what I saw in them. However, I have noticed that I'm quite strong in the area I took graduate courses in compared to my peers. So they definitely give you an edge! However, don't become too obsessed with loading up with graduate courses. Three of them is quite a lot of work, if you give them justice. Since most graduate courses are graded very lightly, you can make high marks in them without putting forth as much effort as you would in an undergraduate course! (At least, this was how it worked at my undergraduate institution.)
That said, keep in mind that some of your time in college should be spent having fun, too. Don't become a math robot just yet! You have time for that in grad school. :)
Reading Textbooks: The fact you're already reading the "core" undergraduate books before even entering the university puts you far, far ahead of the curve. Many people won't learn those things until sophomore or junior year. I certainly didn't. Make sure you're doing the bulk of the exercises in those books, especially Rudin. Try to prove statements you come across without looking at their proofs. I feel that this is where most of the learning happens. You can easily read things and not understand them, so just watch out! Other than that, finish those books and then you should be set to take the advanced undergraduate/first year graduate courses at your institution.
The Math Subject GRE: I hate this thing and did very poorly on it. You'll blow the math portion of the general GRE out of the water. It's easy stuff for any math major. However, if you don't spend a little time reviewing, you can really mess up the subject test, since it's timed and covers things you might not have thought about for several years. The topics are almost completely disjoint from what a student taking graduate courses has been doing. Look at a few practice tests, identify what sorts of questions are asked, and train yourself to quickly answer such questions. Speed is key. You don't want the subject GRE to be a weak point on your application, especially since it's an easily prevented weak point.
So, do REUs, take graduate courses, don't sweat not having publications (but if you can get some do), and study for the subject GRE!
Let me add one point to Zach's answer.
Your primary goal should be to collect strong references. Admission committees in top departments are looking for evidence of research potential. Aside from actual published research, the most compelling evidence is a strong letter from a well-known active researcher, who writes about your research potential in specific and credible detail, based on direct personal interaction. To get those letters, you need to engage with professors as a potential colleague, not just as a student.
Yes, take advanced and graduate-level math classes, but don't just sit in the back and quietly get As. Ask (and answer) intelligent questions in class and in office hours. Don't limit your questions (in office hours) to course material. Ask about undergraduate research opportunities (not just REUs) with the explicit goal of peer-reviewed publishable research (not just reports on some REU website).
Keep in mind that becoming a published mathematician can take several years of effort, and there's no guarantee that you'll get there before you graduate. But the sooner you start, the closer you'll get, and the more chances you'll have to impress the faculty you work with. So start now.
The first three profs you ask may tell you that publishing mathematics research as an undergraduate is impossible, because you need to take a five more years of classes before you can even understand the problem. They're wrong; ask a fourth.
Some advice first: Ultimately you may change your mind about what you want to do in your academic life (and you probably will, which is to be expected) so what I would do is make sure I have a back-up plan. By "back-up plan" I mean whatever field you may choose, make sure it coincides with another existing field (in some obvious, explicit way). That way, if you do end up hating say analytic number theory and you want to specialize in algebraic geometry instead, the path would be continuous, and you wouldn't face too many rough patches. Since you're passionate about math, I'm assuming you have a very, very rough idea of what you may want to specialize in grad school (applied math seems out the window). If not, that's okay. You've got years to think about that. If the answer is yes, then in addition to the core classes (abstract algebra, points-set topology, real analysis are the norm), you should self-study additional books that pertain to your field of interest. If you like number theory, start with Alan Baker's book. If you like geometry, start with Pedoe's book. And so on and so forth. In the meanwhile I'll give you an outline of what I think is the "Ideal" student's path towards a top grad school (for these purposes, I'm going to say all of the schools in the top 10 programs). This will be completely subjective of course, so disclaimer: don't get on my case. I'm also going to completely ignore the general education requirements and just focus on the math part. Since I'm not a believer in REUs I won't mention anything about that. I don't think they're a good reflection of research ability because not too many of them are exceptional. (i.e no first authorship. No grad school is going to believe you made progress on the Hodge conjecture if you say that on your personal statement. You'd only be BS'ing yourself). Moving on :-)
Freshman year: Get your core classes over with. You'll probably be able to finish half of them in this time assuming you declare your major this early and you petition your academic adviser to take more than what the norm is (and if you can prove your competency in the subjects you've listed). They may be able to waive the prerequisites and make an exception for you. In the meanwhile, don't be a stool in class and just get A's. Ask and answer questions regarding your coursework. Go beyond that and take advantage of your professors' office hours. Don't worry if you think you're intruding: it's part of the job description, and they'll probably like the enthusiasm. Talk to them about doing research (it's definitely not too early) in an area of interest. Provide your relevant mathematical background so that they may guide you. Ask them what other professors you should talk to if you want to do undergrad research in X, Y, or Z. Collect as much information and ask as many questions as possible. In the meanwhile, maintain a consistent average (3.8+ would probably be favorable). If all goes well, you should be able to get started (or at least have a topic and someone to work with) by the beginning of your sophomore year. If you wanna have fun, you should take the Putnam exam (I don't know how relevant scores are to grad admissions) and see how well you do. If you somehow become a Putnam Fellow, that's going to significantly increase your chances (for bureaucracy reasons probably since the Putnam exam and research mathematics require different tool sets). Still, you can only take this exam a maximum of 4 times in your undergrad years (once for every year). So I'd take advantage of that. If your university has an honors program that results in a senior thesis, I'd take advantage of that as well. Sometimes very exceptional theses get published in journals and that'd be a good credential to have.
Sophomore year: By the end of this year you should be well done by your core requirements (assuming you're persistent and keep petitioning to take more and more credit hours). More importantly, at the end of this year you should have a very rough idea of what you may want to study in grad school. But it should be more concise than whatever you're thinking about now. At this point you should also think about starting at least 2 more research projects (the reason is, you need at most 3 letters of recommendation for places like Princeton). If you can get 3 letters of rec. from professors who know you well (i.e the ones you worked with in your 3 research projects) that'll look very favorably on your application. Once again, take the Putnam. Maintain your GPA as close to a 4.0 as possible. You know, the usual.
Junior year: Now would be a good time to start taking grad-level classes. Try to coincide these classes with your area of interest. If you like algebraic geometry, take a class on that and see how you like it. You should know the drill by now. If you're still working on these projects (and you probably will be) don't lose focus. If a publication seems like a pipe dream, that's okay. Publications are not expected of undergrads. But it would look great of course. If you have not already, you should think about which grad schools you may want to apply to. Again, maintain that high GPA and take the Putnam to ease your sure to be troubled mind. By the end of Junior year, you should start studying for the GRE and the GRE Subject test. If you happen to have done extremely well on the Putnam (i.e became a Putnam Fellow or scored in the top 100) you'll probably find the studying part trivial as you've had much practice with problem solving and adeptness. Of course don't get cocky: you should still review anyway.
Senior year: Take the GRE and the GRE Subject test. Kick ass at them. Try to finish up your 3 research projects if you have not already and prepare to submit them to a peer-reviewed journal. The process may take time so don't be discouraged if you're still not finished by the time you apply. Be sure to do well on your senior thesis as well assuming your university offers them. Get those amazing letters of rec. from the 3 - 4 year relationship you've established with your professors. Go overload on those grad classes (or self-study) and work at optimum. Get acquainted with your potential field. After all is said and done, write up your CV, do your applications, and send them in. After that, take a sigh of relief, put up your feet, and relax. Take the Putnam for the final time. Enjoy your remaining months in college before you're off doing your PhD.
If all goes well, you'll get published, you'll get praised, and you'll get into your schools of choice.
Warning: I am not coming from an US system.
What I would miss is specialization. You do want to focus on a topic in mathematical research? Shape your reading and background on it.