Reflections on a year of grad school

Clayton Ramsey - 2024-08-15

I'm no wiser than last year, but at least I know a few more things. August 15 marks one year of Ph.D. research, so I'm writing up my experience with grad school for the sake of prospective grad students and also as a time capsule for myself. Overall, my experience so far was a huge success! I've had a lot of fun, made new friends, and produced surprisingly good work, and I'm excited for the future.

As a brief greatest-hits list, I'll note some of the big milestones I achieved in the past year below — some personal and some professional.

Finding the fun

The common wisdom about graduate studies is that it requires extraordinary self-discipline: a doctoral researcher is free to do whatever they want, so they must direct themselves with little outside guidance. Sadly, I am wildly undisciplined. I hate working on boring things, and as soon as I have to actually engage with something I don't like, I give up and do something else, even if I cared about my original task.

Perhaps the best case of this was when I was working on my fellowship applications. I like writing, but don't enjoy selling myself and find the whole statement-writing process distasteful. Whenever I tried to make progress on them, I would just stare at the document and feel bad about my terminally slow progress. If this blog post were a fellowship statement, I'd have to come up with some heartwarming story about how I eventually made it suck less, but the truth is I didn't. The process is miserable and I only finished the applications by sucking it up and pounding some words out at the very last minute.

Right now, my current project is in the same state. I'm not really sure what I'm doing, and I'm a little lost as to what I should be doing anyway. Meanwhile, I have a bunch of new responsibilities (combination system administrator, teaching assistant, and gofer) which while not particularly onerous offer a constant supply of distraction. I'm currently living the cycle of opening up my project, writing a few lines of probably-incorrect code, and then giving up and checking my email for a simpler and better-defined task. The net result: on the outside, I seem productive, but in reality I feel like I'm making no progress at all.

Perhaps the long-term takeaway is that I have to stick to fun projects, or at least find ways of making projects fun for myself. I'm happiest when deep in the weeds of high-performance systems programming, and I don't mind debugging convoluted multithreaded algorithms — lockless algorithms hold a special place in my heart. However, dependency management, Python, Docker, hyperparameter tuning, and all that is just exhausting to me in a way that makes me want to quit immediately. Maybe the academic freedom of research is good for me, then, since it lets me choose projects where I can actually make some sort of contribution.

Marketing and more

Many academics, myself included, are quiet and reserved. This is exclusively to our detriment.

I traveled to two conferences this year, and my biggest takeaway is that advertisement, connections, and presentation dominate career outcomes. When presenting work outwards, flashcraft often beats substance. If you want attention for your work, you have to come up with a sufficiently dramatic and exciting demonstration. On the converse, there's an extraodinary amount of research out there which is excellent in quality but poorly advertised (in addition to some poor-quality, poorly-advertised work).

When I presented my research at RSS, I had a pretty nice demo of a robot arm dodging pool noodles as we waved them around the lab. When I made my presentations for my work, I got some really excellent advice: move the demo to the very front of the presentation to catch the audience's attention. This worked very well, and I was told my talk was quite memorable. I think more than a few attendees knew me as "pool noodle guy;" so to speak, the demo was much more important to my community-wide impact than the rest of the methodology.

Getting sidetracked

I try very hard to have things that I do for fun outside of grad school. You might notice that I stopped writing technical blog posts this spring - that's because I didn't want to spend all day coding and writing to come home to more coding and writing!

Now I've picked up a lot of non-technical hobbies. I started dancing a few years ago, but now I dance a lot more often and do a lot more styles. Although figure skating took something of a back burner for me when I was in undergrad, I'm now making an effort to regularly practice. I also tried learning to play guitar and re-learning playing saxophone, but I bounced off of both (music is too hard!).

But the biggest side-thing I've gotten into recently is learning a new language, namely, Mandarin. I realized that graduate students at my university have free tuition, and on a whim last winter I decided to take advantage of that. I signed up for introductory Chinese and since haven't looked back. I'm not sure how far I'll go with it, but so far I'm having a great time. According to Anki, I've spent some 56 hours practicing vocabulary so far, and I've probably done about that much again in real practice time. That's nothing compared to the amount of practice the average native speaker gets, but if I keep this up for a few more years I might have a chance at sounding coherent :).

Looking forward

My advisor, Lydia, is often busy being a famous roboticist, so for the past year, Wil and Zak, two postdocs in the lab, have handled day-to-day advising for me. However, they're both leaving to get real jobs further advance their careers.

This means I'll have much less direct guidance in the future. My former-postdocs plan to keep in touch, but I expect I'll have to set a lot more of my own direction. This is a little alarming to me: I worry I'll spend months or years chasing some impossible or irrelevant topic. On the upside, though, it means I get to drill down into the stuff that I personally find cool!

The arc of my thesis is also taking shape. My current guess is that my thesis will revolve around taking robot planning (in all its forms) into real-time applications. If I have my way, I'll make that happen with a mix of clever algorithms and software engineering, using a healthy amount of parallelism to crank out as much performance as possible, especially on limited hardware. Dovetailing with that, I want to try exploring ways of improving fault tolerance and dynamic perception in robotics, but I have fewer concrete ideas in mind for near-future approaches.