Every now and then a student or relatively junior person will email me asking for advice. I see responding to these sorts of things as a service I can do the community, much in the same way that I see running the Compiler Jobs page.
Sometime during the pandemic I wrote the following… unfortunately, I have also some how lost track of the original recipient (if this is you, reach out! I’d love to hear what happened to you). Nevertheless, I append this to most advice I send out to new-grads as I think it has generally held up over time.
It’s been sent out one-on-one enough that it’s time for me to just put a blog post version of it out. Gently edited here is my New Grad Advice:
A few things I'd suggest:
1. Cultivate your personal network, and I don't mean in the LinkedIn way: You will meet great colleagues and collaborators throughout your career: Make a concerted effort to keep in touch with them. Correspond with them, write them letters; when COVID is over and if you're in the same city, go out for coffee/beer/dinner/lunch as appropriate and time allows. This work will not pay dividends for years. However, by keeping in touch with people who respect and know you, and you in turn respect, you will know where interesting work is happening (and sometimes, where it's not!)
2. If you have the opportunity, as soon as you are able to, start mentoring: If you're an intern, but you've been there for 8 months, then mentor the interns who have been there for 1; if you're full time, make yourself a go-to person for interns.
There's two major reasons to do this: 1) you can demonstrate (and discover your own aptitude/interest in) leadership early; this is a skill that takes time to learn, but opportunities are few and far between. 2) You'd be surprised at what happens by paying attention to interns and junior employees: You're forced constantly to skill up your own understanding: You know best what you can teach. As well, you start to identify pain points that appear repeatedly (these often are organizational pain points that get forgotten after 2 months work): These can become projects that you can own that make everyone's work better.
3) Open Source work is good, but to turn it into something career building can be a prohibitive expense; but if you can find jobs working in open source, it is a bit of a career aid, as you're able to point directly at projects, commits and bugs you're particularly proud of.
This isn't to say don't contribute to open source projects in your spare time if you'd like: But a few small PRs contributed to a few big name projects isn't necessarily going to build your career. Instead, more sustained contribution can unlock mentorship opportunities which can in turn unlock career opportunities.
4) Find mentorship: Find the people you work with who are willing to take time to explain things, and nurture those relationships. Having someone at your work be invested in you is important -- and ultimately the key to building a stronger career. You can't and won't do it all alone: so find the people who are in positions to help. Sometimes mentorship is a formal relationship; more often than not it's simply feedback you get from someone you respect, on a regular basis.
5) Be kind: Finding mentorship is easier if you're kind; if/when you have the opportunity to choose your own work (or. perhaps do some of it anyhow), choose problems that unblock others, lower the team's frustration level, and generally improve things. It's fun to build the cool new feature: It's better for you to fix the 1/100 crashing bug that's preventing everyone's builds from being green.
Hopefully this helps.