← Blog

Advice for College Students (Part 2)

January 31, 2020

The last part focused more on the general, philosophical advice I had: I feel that most of it was more important, if not obvious. This article has some more diverse, shorter, and specific suggestions, some of which I’m less confident about.

Take project-based classes, but not too many

Classes can generally be divided between those that grade on projects or papers and those that grade on homework and tests. This has a lot to do with subject matter, but all things being equal, I think projects are the better way to learn. You’ll learn more from a class that has you implement malloc than one that asks some test questions about how it’s used. Likewise, I have firm memories of every paper I’ve written in college, whereas I barely remember any of the tests I’ve taken.

That said, projects take a lot of time, and you have to be careful not to take too many project-heavy classes at once. I once tried to take an intensive programming class, a studio art class, and a creative writing class at the same time. This did not go well.

Ironically, High School trained me to be very good at taking tests, which got me into college. Once I was there, I took very few of them. I might have gotten better grades if I were just being evaluated on tests, but that’s beside the point.

Take Intro Linguistics

For some reason, most people know very little about linguistics, which is strange since it’s relevant in so many contexts. Eg. learning IPA lets you read pronunciations in dictionaries. I think linguistics helped me understand French pronunciation better than any of my actual French classes. Not all schools offer linguistics, but if yours does, I would recommend that you take at least the intro course, regardless of what field you’re in.

Audit some classes

This is highly dependent on your school’s policies, but mine allowed students to take almost any class as an audit—meaning you would be registered for the class and have access to all the course materials, but you would not receive a grade. This meant there were no drawbacks to taking a fifth class as an audit every semester. If you missed assignments or class time, it’s wouldn’t be a big deal, because you weren’t going to get credit anyway.

Declare all potential majors

This might depend on your school’s policies, but at my school, there was no real drawback to having multiple declared majors: if you didn’t meet the requirements, you just wouldn’t get the double major.

As it happens I’ve almost taken enough classes to get a degree in Francophone Studies. If I had declared a French major before my senior year, I might have been able to finish the degree if I had wanted to. However, per school policies, it’s too late for me to add a second major.

A related note: don’t let your major become your identity. Once I declared myself as a Computer Science major, I started subconsciously coercing myself into what I imagined a CS major should be like. It’s better to be authentic and think of yourself a student who happens to be studying $MAJOR, rather than a $MAJOR student. Hyper-specialization is for grad students and Europeans.

Don’t stack classes unless you need to

Some people try to take classes only on Tuesday and Thursday. This is a good idea if you work on the other days of the week, but it’s a bad idea otherwise. You will likely develop a bad sleep schedule and be unproductive on your days off. You also probably won’t get as much out of your classes if you don’t have any time to rest between them.

Do schoolwork in dedicated locations

Our brains are very good at separating behaviors into different contexts. If the place where you typically study is different from the place where you sleep or goof off, then you’ll be less tempted to do those things when you’re trying to study.

University libraries are amazing places. Being in one helps you focus, but it also makes you feel smart and productive, as you’ll be surrounded by books and other people studying.

Only do extra-curriculars that you really like

This is a change from High School, where you try to do as much as possible, since it all ends up going on your college application. Grad schools and employers don’t care nearly as much about what you do outside your academic field. So there’s no need to try and cram as many activities as possible intro your schedule: do the things you enjoy most, and leave it at that.

Think about letters of recommendation

If you’re thinking of going to grad school, letters of recommendation are extremely important: more important than your grades. You should plan in advance to make strong connections with professors that you can later ask for letters of recommendation. I’m far from an expert on this, but Matt Might has a good article on it.

Use your school’s mental-health resources

Many schools offer counseling or psychological services, paid for partially or entirely by your tuition. Take advantage of this: I spent several years thinking I didn’t need to see a therapist, but when I started seeing one it helped a lot.

Study abroad one semester

I spent a semester studying Art History in Paris. I probably would have learned more Art History if I had taken those classes somewhere English-speaking, but I learned so much more about everything else: the benefit is too profound to be effectively stated here.

Don’t assume that you can’t afford to study abroad. I actually spent less money on living expenses in Paris (of all places) than on room and board in a semester at my home university. This won’t necessarily be the case for you, but you should at least look at the numbers before you write off the option.

Study abroad every semester

If you haven’t decided where you want to go to school, consider doing your entire degree in another country. Why? Well, if you live in the United States, then it will be cheaper for you to study in almost any other country in the world. Although it’s by no means necessary, this suggestion applies double if you have EU citizenship, or if you can obtain it.1

To be crystal clear: I did not do this. I’m putting this suggestion here because it never occurred to me that I could have done it until I spent a semester in Europe, and the economics of doing a degree abroad seems at least worth considering.

In continental Europe, you can often attend a public university for almost no tuition. It helps a lot if you speak a foreign language, since undergraduate programs are especially likely to be taught in a local language, but English-language programs aren’t completely unheard of.

While I was doing my study-abroad in France, people were protesting because the government had raised fees for non-EU students. The change was from ~300€ / year to ~3000€ / year. That’s a big increase, but it’s still less than one third of in-state tuition at your average American public university and an order of magnitude less than a private university. Nevertheless, people were so outraged by the change that many French universities simply refused to implement the higher prices: that’s how vast the difference is between Europe and the U.S.

If you can’t imagine doing your degree in a foreign language, there’s still a pretty good chance that you can save money going to school in Canada or England.

Note that the purpose and form of undergraduate education is different in other countries, and some of the suggestions here won’t apply. In Europe, undergraduate education is much more focused and specialized. Universities there are more strictly focused on academics rather than student life. European students generally don’t take courses outside their field of study, which they select when they apply to university. This is partially because a bachelor’s degree in Europe lasts just three years, and also because there’s more expectation that European students will have gotten their “general education” in High School. Overall, a European Bachelor’s is a sort of pre-master’s degree, while an American one is more of a post-high school degree.

I think I’m glad that I got more of a liberal-arts, American-style education. However, I’ve met some Computer Science students who have complained about my school’s incredibly lax requirement of taking two classes total that involve writing. Those people might well have been better-off studying in Europe.

Learn to use headings

Before college, you don’t usually have to write anything very long. However, once you start getting assignments that have two-digit numbers of pages, the techniques you used before start to break down. Long texts become much easier when you use sections and headings — it’s easier to write ten one-page essays than one ten-page essay. That’s how I managed to write this much in this article.

If you’re in a creative writing class, you can omit headings and split sections with horizontal rules, like this:


Or some people will use centered asterisks:

***

Of course, unicode means that you can be creative:

But don’t get carried away:

🤩 🤪 🥳

Really. Don’t.

Use Pandoc

If you’re not a computer geek, skip this section.

If you are a computer geek, then you probably hate Microsoft Word files. You need to use a big lumbering program to view or edit them, and you always have to do a lot of manual fiddling with menus and dialogues to get everything to look exactly how you want. LaTeX exists (and professors like it), but there’s a steep learning curve and lots of things that can go wrong. Eg. pdflatex has trouble handling unicode. Also, LaTeX just isn’t that pleasant to use for simple text (math is another matter).

Wouldn’t it be nice to just write your papers with Markdown in (vim|emacs)?

I originally did this by compiling Markdown to HTML with markdown.pl, styling with custom CSS, then printing to a PDF from the browser (and later, WeasyPrint). This sort of worked, but there was no good way to do footnotes, since no one has implemented float: footnote yet. I always ended up going back to LibreOffice for any substantial work.

However, eventually I discovered Pandoc, which can convert between tons of different document formats. As it happens, it has out-of-the-box support for many Markdown extensions, including footnotes, and it can convert to beautiful LaTeX-formatted PDFs with highly sane defaults (eg. code highlighting, inline LaTeX math).

If you don’t like Markdown, AsciiDoc or reStructuredText will work pretty well, although the syntax can be pretty ridiculous. Textile is good if you often work with poetry, since it preserves line-breaks. These are all supported in Pandoc, although I find that it handles Markdown a little better.

Turn off spell-check until you’re done writing

There are two reasons to do this.

First: You’ll improve your spelling. I used to have a lot of words that I would always spell wrong and then immediately get corrected by the computer. This meant that I never bothered trying to get into the habit of spelling correctly, which is a problem when you’re not using a computer.

Second: Spell-check is distracting. When writing, you should be thinking about the words you’re saying, not the representation on the page. There’s also no real point in correcting spelling if you might delete those words later—which is likely if you’re revising effectively.

Take the time to clean up your code

When you’ve been working on a coding project for a few dozen hours and you finally solve the problem, it can be really tempting to hand in your code right away. Don’t do this: you can save a lot of software engineering points if you take just a little bit more time to refactor and clean up magic numbers, bad memory management etc.

Don’t be limited by what your school teaches

My intro CS class taught Java, so for I a while I thought I needed to use Java for any programming I did, since I hadn’t been formally taught any other languages.

Novices and non-programmers tend to over-estimate the difficulty of learning programming languages. Firstly, the term “programming language” calls to mind Latin or Mandarin Chinese more than middle school Algebra, even though it’s much more like the latter. Further, learning one’s first programming language is hard, so people assume that learning subsequent languages will be too. In fact, once you’ve learned your first language, you’ll understand almost all of the concepts necessary to learn another one very quickly.

For some reason, there’s also a lot of people who brag about knowing however-many programming languages, which might lead people to infer that it’s hard to do. In fact, there are so many people who know 10/15/20 programming languages because they are not that hard to learn. It’s also not especially useful to know a huge number of languages. It’s worthwhile to know C and Python, because they are good for different tasks. However, there’s not much point in learning Ruby after you already know Python, because their niches are very similar.

As it happens, Java wasn’t a great language for most of the things I wanted to do. The summer after my freshman year, I wrote a game in LibGDX—an engine I chose just because it was based on Java. I now realize that it wouldn’t have been much more effort to learn to make games in JavaScript, which would have let me develop my game for a more appropriate platform. But I was scared to use a different language because no one gave me permission. That was silly.

You’ll probably pass your classes

If you’ve passed all of your classes so far, you’ll probably pass most of your classes this semester too. Stay calm, you’ve got this.


  1. Getting EU citizenship could be more likely than you think. Some EU countries allow citizenship-by-descent. Eg. If your grandparent was born in Ireland, you can become an Irish citizen. If you can prove that you have any Hungarian ancestry, you can become a Hungarian citizen if you’re willing to learn the language. Several countries, including Spain and Germany, have also given citizenship to Jews whose families were historically victimized by anti-Semitic policies.