Original author of the guide here. Wonderful to see these little illustrations still making the rounds. I first published them in 2010!
To those in the comments who mentioned you are just starting your own PhD: Good luck to you! And, I hope you, like I once did, find a problem that you can fall in love with for a few years.
To those just finished: Congratulations! Don’t forget to keep pushing!
To those many years out: You have to keep pushing too, but there can be tremendous value in starting all over again by pushing in a different direction. You have no idea what you may find between the tips of two fields.
Nothing to feel bad about. Thank you for sharing that too.
My son’s life changed my own in profound ways, and even though he died four years ago, he is still changing my life in profound ways. I am always grateful for the reminder and to reconnect with the purpose that his life gave to mine.
That post also reminds me that while he was alive, I did the best I could for him under my abilities, and that’s all any parent can do in the end.
Any advice for PhD dropouts? I spent years and years pushing against that boundary in an obscure corner of my field and it never moved. What little funding I had dried up and I left grad school with a half finished dissertation, no PhD, and giant pile of broken dreams.
I'm sure over the years you've known students who have started a PhD and not finished. What (if anything) have you said to them? Do you feel their efforts had any value?
I'm a PhD dropout myself. Serious question: what kind of advice are you looking for exactly? This is not intended as an insult, but it sounds like what you're looking for is not advice but rather consolation, which is natural and understandable given the circumstances.
I'll give you advice. Success in pursuing a PhD isn’t just about the discipline or the degree—it’s about finding the right environment to support you. If earning your PhD is still a dream, focus on identifying a program that aligns with your needs and strengths. Look for a school with the right resources, a program that’s well-structured, and, most importantly, a supportive advisor who believes in your potential. Combined with your dedication and passion, these factors can make all the difference in achieving your goal. Don’t lose heart—sometimes, the right opportunity can change everything.
Disclaimer: I have no idea what I'm talking about. I've never participated in a graduate program.
>>> but there can be tremendous value in starting all over again by pushing in a different direction.
This rings true for me at this time. Done about 10 years now, never went into academia but direct into industry. Things seem a bit stale, maybe its time to pick and research something new. I've been hesitating on the "going back to school" thing. But quantum does show promise, for curiosity and potential rather than immediate impact.
Matt thanks for the encouraging words... enjoyed your compiler class and sad that you didn't end up in my PhD committee... done 3 years now but stuck lol.
Same! I use ollama a lot, but when I need to do real engineering with language models, I end up having to go back to llama.cpp because I need grammar-constrained generation to get most models to behave reasonably. They just don't follow instructions well enough without it.
I think I'd have felt the same way up until I learned Rust in 2021, and now I just think "I'd rather solve this in Rust" almost always. Rust might have spoiled me for other languages. But yes, in general AoC is definitely a good way to learn a programming language. Since we probably don't need vast numbers of Rust programmers it makes sense to acquire say, Python, or Typescript or something if you're working in some discipline where programming might be useful but is not your core skill.
The initial headline of your front page intrigued me because I had noticed in surveying my own institution (the one where I studied, both as an undergraduate and as a postgraduate, and where I now happen to work) that while most of the undergrad courses of study we offer that require mathematics include at least an opportunity to program, Medicine does not. I reasoned at the time that the Medics have to cram such a large amount of other material into their brief time that maybe there's just no room to teach them to write code if they are to sleep (in my country they certainly won't have time to sleep once they're junior doctors)
This is what I try to do. I solve them all (or nearly, I did one in Python only this year) in Common Lisp (my hobby language of choice), and the last few years I try to tackle them in a second language (Ada, Rust, Python, C++) up to the point that my time is too limited to do both versions (or where I find the second version is adding nothing to my understanding of the language I'm exploring).
This year I used Python as my second language (still plan to finish) but with a strong emphasis on TDD and property-based testing since I'm already familiar, but not fluent, with Python.