Diving straight into "research" versus studying broadly as an undergrad (soft question) I'm nearing the end of my first year as an undergraduate and am very confident that I want to pursue a PhD in TCS. Fortunately because I quickly realized what I'm interested in and have a solid background in math, I've been able to take multiple TCS classes early on so as to get exposure in the field. I've also been doing lot of study on my own as time allows (though of course it is difficult when taking classes).

It also so happens that I live very close to my university, and at my request one of my professors was nice enough to say that I could come in and work in the theory space every day during the summer. It is still really up in the air as to what I will actually focus on, but I'm just excited to have a space to study TCS all summer.

Since as I said I'm only a first-year, one thing my professor emphasized is I have a choice many undergrads don't have: I could spend the summer doing "research" or studying far more broadly. I put research in quotation marks because I don't think I have enough experience to actually collaborate with a graduate student, but I could devise my own project. I.e., try to find some very recent results in a topic that doesn't require too much advanced math and just go at it.

On the other hand, I found a lot online advising undergrads to (if possible) study broadly instead of narrowly since obviously you aren't going to be working on the same problem in 10 years. To me, studying broadly would look like spending the summer going through as many textbooks as possible and doing lots and lots of exercises. (I would still find this a lot of fun!) And also reading papers in different areas. That said, there is the ever-looming pressure of graduate admissions and the need for some kind of publication.

So my question is basically what would you recommend to do in my situation? (But more widely, should an early undergrad go for depth or breadth?) Some other thoughts I've had:


I could obviously come up with some kind of compromise. Instead of doing a "research" project I could read and present lots of papers. Since going through a paper is a mini project in itself for me at this point, this would give me some depth but obviously not at the level of a project.
Some comments I've read online suggest that one reason to emphasize breadth if possible is it will lead to a far smoother initial research experience down the road. However, one thing I've been told is that you will never be fully "ready" to dive into research. Meaning that everything is so specialized at this point that even grad students only understand 90% of their specialization, 70% of their subfield, and 30% of everything else. Someone told me that because this will always be the case, it is better that I dive in right away. (But of course it is hard to know what to dive into!)
[This is really a comment, but too long to fit in a comment field.] 

You seem to be exceptionally well prepared compared to most students at the end of your freshman year.  And I'm not sure what you mean by "research" or "publication".  But, by the common meaning of the words in theoretical CS, I would say that the goal of a PhD is to learn to do independent research leading to publication, and that, as a rule, achieving that goal requires a lot of hard work, time, and usually help from an advisor, spread over more than four years of graduate study.  This is why a typical REU (research experience for undergrads) does not have this goal, but instead will allow you to work as a team member in a larger group, or perhaps with an advisor on a smaller project, with the more limited goal of gaining some initial exposure to the process.  (Even MS students rarely do original, published research.)  Can you find any summer REU opportunities to apply for?  They could be at another school.

I'm not sure what to say about "depth" vs "breadth".  I would guess that, at your stage, your fastest way to develop is to complete your undergraduate TCS courses, and take some graduate-level TCS courses if you can.  You may be able to work through some of the undergraduate material on your own in the summer (maybe that's your "studying broadly").  Meanwhile, if there is some degree of TCS community in your school, or nearby, you could try to connect with it.  Find students (including grad students) and a few faculty to cultivate relationships with, and find out what kind of research projects are going on nearby.  A big part of learning to do research is becoming part of the TCS community, learning its norms, and what is currently of interest.  Over the years I've known a small number of students who had an idea they wanted to pursue, and tried to start research on their own, and while I'm sure some have enjoyed the experience, the usual outcome (by an academic / professional standard) is to fall short, for all kinds of reasons.