4 Things I Wish I’d Done While Getting My PhD in Math
I spent most of grad school thinking I would work as a data scientist after graduating. In fact, I’d say most math PhDs seeking industry jobs think about becoming a data scientist. The skills required by the job align with the skills acquired during school and the demand is high. Data scientists came to my university saying that employers practically fight to hire mathematicians to join their data science teams. I bought in.
Once I landed a summer internship at a well-known company, I thought I was set up for success in my post-grad job hunt. When May came around, I went off to work filled with excitement. But as the summer progressed, replacing that excitement was a sense of dread at having to go in because, it turns out, I didn’t want to be a data scientist at all. Plot twist! As my graduation drew near, I was completely unprepared to change the direction of my job search and needed to build a much more diverse set of skills than I’d planned in a very short amount of time.
Full of regret and stress, I thought about how I could’ve used a lot of the time spent spinning my wheels and getting nowhere with my research to acquire years of experience with professionally useful skills. I looked to my successful peers getting messages from recruiters, and I compiled a list of tasks to work on. With a “better late than never” attitude, I jumped in and got to work, but I continue to wish that I’d started way earlier. So, here they are: a few “side projects” and other actionable bits of advice that would’ve made me a much more versatile job candidate.
Build a Portfolio of Code Samples
One notion I didn’t really see the value of — until I was given a coding challenge during the job application process — was broadening my understanding of even just one of the popular programming languages. I wrote a lot of bare-minimum code while doing research, and that lack of effort really stunted my growth as a programmer. With a touch more work and a bit of practice, the code I was already writing could have been a step toward building an immensely valuable set of skills.
(To clarify one thing: this isn’t only valuable if you want a position as a software engineer. Any technical role that might sometimes touch code could be asked about coding in an interview. For instance, technical writers (people who write documentation, internal and external technical documents, etc.) have been asked coding questions, according to testimonials on Glassdoor, simply because they may need to include coding examples in the documentation they’re writing.)
To give a concrete example, my knowledge of the various data structures available in Python and when to use each was very limited until recently. The choice of data structure demonstrates a programmer’s understanding of the computational complexity of an algorithm and the value of efficient code. Learning about these ideas requires some reading, and really understanding these details about a language requires practice.
This is where the “portfolio” comes in. Practice coding on one of the websites made for that. Using one of these websites to practice one or more of the popular languages (e.g., Python, SQL, Java) and starting early — so that I would have had “years of experience” to tack on my resume — would have been really useful to me in job applications and interviews. There are tons of sites like this; I’ll describe only a few here.
First is HackerRank. This powerhouse site allows coders to sign up for free and build skills in specialized areas like Databases and Artificial Intelligence, as well as in more general skill areas like Algorithms, Data Structures, and Mathematics. Their Interview Preparation Kit contains exercises dealing with key concepts like Arrays, Sorting, and String Manipulation. The user’s activity on the site, ranking in contests, and other work experience that the user chooses to provide all appear on a profile page (a little portfolio, if you will).
In a similar vein is a website called Kaggle, which claims to be “the place to do data science projects.” There are datasets available to experiment with coding and data analysis techniques you’ve been learning about, and they also host competitions to test your skills, some of which have monetary prizes (and other “prizes” including Knowledge, Kudos, and Swag).
The last site I’ll mention is Project Euler, which lists mathematics and computer programming challenges. Unlike HackerRank, whose exercises come with a bit of code to get you started with the problem, Project Euler is more simple, with no timers, no code entry field, and no server for running code; it simply provides a box for an answer. Here’s the first problem listed: “Find the sum of all multiples of 3 or 5 below 1000.” The real trick to finding the solution is not necessarily an understanding of the mathematics but the programming know-how to find the answer in under 60 seconds (their recommended time limit). You get access to a discussion board where others post [what they believe to be] elegant solutions in various programming languages once you submit the correct answer.
Contribute to Open Source Projects
This may seem like a continuation of the last item, but there’s a lot more to contributing to open source than just writing code. There is an important distinction between being a skilled programmer and a skilled software developer. Open source projects hosted on, say, GitHub combine all of the facets of large-scale software development: code, documentation, tutorials, building, testing, releasing, back compatibility considerations, contribution/style guidelines, and more. For this reason, this item falls closer to “volunteering” than “building a code portfolio.”
There’s a pretty steep learning curve to get started contributing on GitHub, so let me explain some of the more general benefits of doing this. The first is exposure. Knowing even the basic structure of a large-scale software project is helpful in discussing the practices of a technical company. Having years of exposure will only deepen your understanding. Many companies use GitHub to host their projects, although many of those would be set to “private” viewing.
The second benefit is that contributing to open source is the tech world’s equivalent of volunteering. (Not to say you shouldn’t also volunteer in other ways, too!) Being a part of building something that others will use and benefit from, without being paid to do so, demonstrates a dedication to, if nothing else, the projects you’ve spent time on.
Another benefit — and this is a big one — is learning Git. This is a “version control system” that’s an important tool for keeping track of changes made to projects, including which files were changed, who was responsible, the date and time, and a description of the nature of the changes. I used Git throughout grad school (and you should, too!) to keep track of my projects and to avoid saving multiple versions of a file with crazy names like draft_2019-March-3_newIntroByLindsey.pdf
. Instead, I named the file something simple like draft.pdf
and typed git log
into a terminal to display a nice, clean record of all the changes I’d made recently, such as “Add a new introduction” on March 3, 2019.
But Git is much more than a convenient way to keep track of files on your local computer. GitHub uses the functionalities of Git (and many other useful tools) to enable millions of projects to be built by, in some cases, thousands of developers. Some of the most popular Python modules (e.g., NumPy) are built by volunteer developers on GitHub. Being a part of a major project like that can be daunting, but start by creating an issue or submitting a small documentation fix. There are repositories using about any coding language you can think of, with focuses ranging from scientific computing (e.g., SciPy) to education. You can also put your personal projects on the site!
Cultivate an Online Presence
This sounds just about as vague as its cousin “Build Your Brand,” but let me explain. My hope with this tip is that spending time, hopefully years, creating a connected presence online will help to support your resume and give potential employers another resource — that you control — to learn about you during your job search.
The first thing I’ll suggest is joining a professional networking site like LinkedIn. It takes time to build a sizable number of connections, and those connections can provide advice, endorsements for skills, recommendations at companies, and interesting job opportunities. This is the place to gush about your professional interests and post those thoughtful [professional] articles you’ve been reading. I use their Jobs page to search for open positions, as well.
Next, a callback to the previous tip: GitHub. My profile looks pretty weak, especially due to all of the empty squares leading up to the last few months :(.
Last, build a personal website. This requires a little money upfront, but it’s worth it. You’ll need to purchase a domain name from a site like GoDaddy. Mine is the obvious lindseyhiltner.com. You may go for something a little more creative, but keep it timeless and professional. Once you have a domain, you’ll need to find a hosting service to make your website live. Then, comes the fun part: designing the page and creating the content. If design isn’t your thing, pass it off to a service like Squarespace or Wix. Otherwise, use your site as an opportunity to practice HTML, CSS, JavaScript, and any other web development tools you feel adventurous enough to try.
Use this little slice of the internet to collect your scattered web presence in one personalized place. Link to your social media accounts; dedicate a page to your [code] portfolio; write a blog about things you’re interested in; “Build Your Brand.” Link to your website from the profiles/bios of your accounts to create a connected online presence.
Find Fulfilling Hobbies
Although some activities might not contribute anything to your resume, finding engaging and empowering hobbies can make you a more well-rounded and interesting person. The important part of this tip is like the others: dedicate yourself to gain years of experience. Of course, finding things you enjoy doing, that are somewhat productive and help you grow as a person, can take some time and experimentation. That’s okay.
I’ll give an example of a hobby I’ve taken up recently that I wish I’d started a long time ago. After seeing a post about yoga about six months ago, I decided, almost on a whim, to sign up for a class at a nearby studio. It seemed like a good excuse to get out of the apartment, be around other people, and get some exercise. What I didn’t realize before class, but quickly learned during, was that the idea behind the physical practice of yoga — focusing on the body to gain control of the mind — was exactly what I needed to improve my mental health, quell my imposter syndrome, and maintain a positive outlook during a rocky job search. When I get caught in a negative “thought loop,” I practice some of the stretches or restorative poses taught in my classes to regain a calm state of mind.
A fulfilling hobby to you may be physical like yoga, dance, or running; it may be creating and/or playing music; it may be painting, sketching, or making clay pots; it may be writing nonfiction, fiction, poetry, or screenplays. It may be something else completely! As long as it’s challenging, there’s room for personal growth and improvement, and it relieves stress/builds confidence, then an activity can count toward this tip. To demonstrate the flip side: I played on a various volleyball teams throughout college and grad school. I simply showed up to the gym and played the game (which was really fun!), but I didn’t try to improve my abilities in any way. Therefore, I wouldn’t count volleyball as a “fulfilling hobby.”
Hobbies with room to grow help develop skills in setting goals and taking steps toward achieving them, something I still struggle with today. So, take a martial arts class at your school, get on a free language learning site like Duolingo, or stay right here on Medium and start writing down those thoughts swirling around in your head.
Conclusion
There’s no “one size fits all” procedure to guarantee you’ll find a job after graduation, but I hope this post will get you motivated to develop useful skills and to start early. Dedicate a few hours per week to these tips, and some of the bigger, more common pieces of advice for job seekers — Do More Internships or Network — will [hopefully] fall into place more easily.
The most important advice, though: don’t forget to have some fun ;).