General FAQs

This page collects my answers to a wide range of frequent questions about me and my profession. If you’re a Middlebury student wondering about advising, letters of recommendation, or research opportunities, please check out my specific FAQs for students.

My Profession

What are you? Are you a computer scientist, a mathematician, or a data scientist?

Uh…yes? I am all those things!

My training was primarily mathematical. These days I use math, algorithms, simulations, and data analysis to learn about complex systems in theory, society, and nature. Almost all my work involves software implementation, and I’m working on growing my skills as a developer in order to help more people use and reproduce my findings.

What kinds of things do you like to study?

Networks and complex social systems! You can learn lots more about my interests on my research page.

What do you do all day?

This graphic by Marissa Kawehi Loving gives a high-level overview of the activities that go into a career as an academic mathematician. My activities as a computer scientist / mathematician / data scientist look relatively similar. Mentally, I’d divide them into the following broad categories:

  • Doing science”: developing models and algorithms, proving mathematical facts about them, performing computations, analyzing data, and reading papers.
  • Writing: creating notes, writing scholarly papers, writing reviews of the scholarly work of others.
  • Communication: largely emails and meetings. Lots of the “doing science” part happens in these meetings (i.e. collaboratively). An important category here is mentorship: working with junior collaborators and students; talking about ideas; giving feedback. Another important category here is speaking about my research, which used to happen at conferences but is now largely online.
  • Teaching: I spend a lot of time on teaching. The preparation includes formulating course philosophies, designing curricula, writing lectures and assignments, etc. Then there’s the best part – working with students – as well as managing instructional teams, handling grades, and troubleshooting concerns as they arise.
  • Professional development: there’s a lot of room for me to grow. One of my main goals is to further develop my courses as actively anti-sexist and anti-racist, and measure their effectiveness along these axes. I attend trainings, read, and learn from others.

Is it nice to be a professor? Should I become one?

Here’s my personal list of the pros and cons about being a professor. This list is quite personal to me, and reflects my identity and priorities. Note that the pros and cons for computer scientists and mathematicians working in industry look very different.

Pros:

  • Freedom to control my own schedule.
  • Freedom to set my priorities and spend much of my time thinking about things that interest me.
  • Freedom to decide whom to work with (very important to me).

Cons:

  • Low salary compared to many other careers for quantitative people (although still enough for me to have a comfortable life).
  • Uncertainty about long-term job prospects. I didn’t know where I would spend most of my career—or whether I would even make it in my chosen career—until I was 31.
  • Lack of control over location: I’m very happy here, and I’m exceptionally lucky to have been able to choose to come here over several other attractive options. In general, though, academics often won’t be able to choose where they will live. This is one factor that can contribute to challenges associated with being an academic and starting a family.

Is academic science an equitable space, a “meritocracy,” or a “neutral” discipline?

No. Academic science is not yet an equitable community, and many parts of it replicate systemic misogyny, racism, ableism, and classism. Certain people, departments, and institutions are not safe or nurturing spaces for members of certain groups. For example, a recent article in Scientific American highlighted the intersection of racism and misogyny in modern mathematics.

Due in part to my own privileged identity, I have had an overall pleasant experience in academic science which makes me want to stay here. If you do aspire to become an academic computer scientist, mathematician, data scientist, or scholar of any kind—and especially if you benefit from intersecting privilege—then part of your responsibility is to reflect on what work you will do to make our profession a more equitable and just place. The Mission page expresses how I think about this responsibility, and the Resources page contains some links that might help you get started.

Thoughts on Software

What software do you use?

I spend a lot of time on my laptop, and I’ve given some thought to the tools that allow me to be most productive in that time. Here’s what I’m using these days:

  • Programming languages: Julia and R. I also know (and teach) Python, but Julia has largely replaced Python in my research workflows. I use R when I am primarily working with data frames or when I need to construct scientific graphics, and I use Julia for most other tasks. I still cheerfully work in Python when collaborating with folks who strongly prefer it.
  • Writing: LaTeX and Markdown. I use LaTeX for most technical writing, including scientific articles, reviews of other’s writings, working notes containing proofs and similar things, and any time I want to produce a PDF document. Lots of folks don’t like LaTeX, but perhaps through raw familiarity I am a very cheerful LaTeX writer. I use Markdown for most other writing, especially including writing for websites like this one.
  • Text editor: VSCode. I use this for writing code, as well as writing mathematical documents and research papers using LaTeX. I have extensions that make it easy to work with some of my main tools, including Python, Julia, R, LaTeX, Quarto, and Markdown. When coding in R, I sometimes use RStudio instead of VSCode.
  • Operating system: MacOS. I don’t have strong negative feelings about Windows, but as someone who writes code I strongly prefer an OS with a first class terminal. I have dabbled in Linux but don’t consider myself enough of a power user to justify the time investment. Because I have access to high-performance servers, I don’t need a very powerful laptop.
  • Website: Quarto and GitHub. This website, as well as my course websites, are generated by the Quarto publishing sytem using plaintext files. I edit these files in VSCode, run Quarto to preview them, and then push them to GitHub which hosts them online. Through working on my websites, I have picked up a minimal amount of HTML and CSS.
  • Email client: Spark – it’s free, simple, and cross-platform.
  • Launcher: Alfred. Pressing a simple keyboard shortcut spawns a search bar when I can open apps, search for files, etc.
  • Browser: Arc. A customizable browser compatible with Chrome plugins.

Is programming language A better than programming language B?

Probably not! Most programming languages have certain strengths in which they excel. You don’t need “the best” programming language – you need the one that’s right for your task. For example, R and Python have different strengths for data science, and most practicing data scientists know both. Here are my thoughts on the languages I know and use.

  • Python: extremely versatile, pretty good at almost everything. Often slower than compiled languages like C++ or just-in-time compiled languages like Julia. Widely used in industry, and an excellent first language to learn. Extremely vibrant ecosystem of free software modules.
  • R: specialized for data analysis and statistics. World-class handling of tabular data via the Tidyverse ecosystem. ggplot2 is the world’s best two-dimensional data visualization system, bar none. The RStudio IDE is excellent.
  • Julia: specialized for technical computing (science and engineering applications). Similar syntax to Python. Often compared to Matlab in its focus, but open-source and (in my view) easier to understand. Well-written Julia is extremely fast, and can reach speeds comparable to C++.

Other

Can I ask you to speak at my student organization?

Yes! I love doing this kind of thing. Send me a note.

Can I talk to you for a class project?

On occasion, students approach me with a class project that asks them to interview a scientist, faculty member, or professional. If hearing from someone like me meets the professional goals of your project, then feel free to ask me about this.

What kinds of books do you like to read?

Some of the kinds of books I like are scifi and fantasy novels; U.S. and modern world history; feminism and antiracism; and yes, the occasional book on math, algorithms, network science, or computation.

I love suggestions!

Perhaps like you, the growing presence of screens in my life has detracted from my reading. I’m trying to fix that! To keep myself on track, I’m keeping a list of the things I’ve been reading lately.

(In case you’re wondering, I do read a lot of computer science and math stuff, but most of it is in scholarly articles rather than books.)

Do you have a speaker bio?

Yes!

Phil Chodrow is an applied mathematician who studies networked models of social and biological systems. His methodological interests lie at the intersection of mechanistic modeling and statistical inference. His current work includes graph and hypergraph formation; opinion dynamics on social networks; and gender inequalities in academia. His research has been supported by the NSF Graduate Research Fellowship and the Fulbright Research Scholarship.

Phil is an assistant professor in the Department of Computer Science at Middlebury College in Middlebury, Vermont. His teaching specialties at Middlebury include machine learning, network science, and discrete mathematics. Before joining Middlebury, Phil spent two years as a visiting assistant professor in the Department of Mathematics at the University of California, Los Angeles. He received his PhD from the Massachusetts Institute of Technology and his BA from Swarthmore College.