First, a framework: if you want to become a better programmer, then take a class that tries to teach that; if you want to be happier, then take a class that teaches you how to be happier. Don’t beat around the bush.
Often, students come out of college feeling like they understand their discipline better and not much else. Across disciplines, that means writing academic papers that are understandable to few people and actually read by fewer people. In the humanities, there might also be creative works and critiques of creative works; in social sciences, there might also be a greater understanding of society and social research; in the natural sciences, there might also be lab techniques and a greater understanding of the natural world; in engineering, there might also be a training in how to build something.
What’s missing is a greater understanding of yourself and a greater understanding of how to interact with other people. Many people go into the social sciences and humanities with the intention of teaching or learning those things, but I have not found the social sciences or humanities to be effective at teaching applications except in cases where they are explicit about teaching particular applications. For instance, when I took a sociology class on social movements, I hoped to learn some applications — types of things would make a social movement more effective and principles for community organizing — but the whole class was just about boring ways to analyze social movements. If the course syllabus says that you will read books, do research, and write papers, expect to learn more about reading books, doing research, and writing papers. Don’t expect to learn more about yourself or interacting with other people. If the course syllabus says that you will learn about yourself and interacting with other people, expect to learn that.
The following are some courses that taught me things about myself, about interacting with other people, and very important things about the world around me.
Talking to People
Education 193A – Peer Counseling. I haven’t done any official peer counseling since this class, but this class was the best lesson in empathy, listening, and asking good questions that I have had. If you take this class and learn how to ask a good open ended question, then you will get at the heart of emotional issues (which are at the heart of many interpersonal conflicts in business, relationships, education, and everywhere else). This class made me better at stopping pointless discussions, understanding what other people were saying, making other people feel understood, having productive meetings, teaching students, teaching friends, and defusing charged situations. Listening to people, understanding them, and asking good questions are among the most important skills in interacting with people, and this class teaches exactly those skills.
CEE 151 – Negotiation. Negotiation is ubiquitous. It’s not just about how to get a better price on a car or a better salary. Negotiation is about relationships. This class teaches a framework for negotiation that involves respecting other people, being nice and fair, and getting what you want. If you want to get what you want without being a bad person, this is a good class to take.
ME 104B – Designing the Authentic Life. This class is for juniors, seniors, and coterminal masters students. Its goal is to help people understand their own philosophy, skills, and what they want to do with their lives. It also provides an intro to design thinking (described more in my section on Transformative Design). If you are unsure about the meaning of your life or what you want to do, this course will force you to ask the right questions and then actually answer them.
Engineering 231 – Transformative Design. This is the best class that I have taken in the design school, and the design school teaches a lot of good skills. That is, even if you don’t take this class, take at least some design school class. The skills they teach are need finding (figuring out what people actually need), brainstorming (in a way that makes everyone feel happy at the end and that generates useful ideas), prototyping, iterating, asking the right questions, and building stuff. It also gives a very healthy attitude of actually doing stuff. If you want to do stuff and make things that are actually useful for people, this class will help.
Urban Studies 132 – Concepts and Analytic Skills for the Social Sector. I have heard this class described as business school in one quarter with specific applications for the social sector. That includes organizational logic; media and marketing; pricing, finances, and fund raising; measuring performance and scaling; and different legal structures for social enterprises. This class teaches the skills necessary for leading an organization.
Urban Studies 133 – Social Entrepreneurship Collaboratory. Where Urban Studies 132 teaches skill, this class teaches execution. In the course of the class, you put together a business plan for a social enterprise, do interviews, and otherwise get an organization started. I created Code the Change in this class, and Code the Change would not be anywhere near as extant or successful as it is now if not for Urban Studies 133. You should take this class when you have an idea for changing the world that you aren’t quite convinced is a real business or a real nonprofit. Taking this class will make it real.
CS 198 – Teaching Computer Science. There are opportunities for undergraduates to teach. At Stanford, you can apply to take CS198 and teach a section of CS106A or CS106B. There is a class component to it that teaches you how to teach, but between the peer counseling class, teaching debate, and reading books like “How to Talk so Kids Can Learn,” I already had most of the academics behind teaching before I took this class. However, actually doing teaching is a good way to get practice and is a good way to learn if you want to teach.
CS 402 – Beyond Bits and Atoms. This class has a lecture component that teaches about some different education paradigms and a lab component that has you build stuff to get you introduced to education technology. This class helped me understand much better how people learn. If you ever plan on doing anything that requires other people to understand something new (not just teaching; if you have a product that people need to understand or are a parent or want to market an idea, the ideas are applicable), this class will be a fun way to learn how to help people learn.
Music 65 – Voice. Stanford has a lot of classes that teach you specific artistic skills. If you are interested in creative writing, piano, drawing, voice, or anything else, now is a perfect opportunity to learn!
I never took a language or athletics class at Stanford, but both of those would probably also be cool for similar reasons.
MS&E 41 – Financial Literacy. This class teaches personal finance, including making a budget, investing for retirement, and doing your taxes. I’m generally good with money, so a lot of the course was review for me, but I hadn’t ever invested my money before, and I didn’t realize that investment actually gave reliable and good returns (my family was of the impression that investing in stocks was extremely risky, which isn’t really true). Even if you think that you’re generally good, this is a good class to take to make sure that you have all of your bases covered. Plus, the teacher is very charismatic.
Understanding the World
The Natural World
Athletic 190 – Nutrition. This class is taught by Dr. Clyde Wilson, who has a background in chemistry and who bases his nutritional philosophy on scientific evidence and research. He analyzes a lot of the fad diets out there, identifies the small grain of truth in them, and explains why your body is more complicated than any of those diets would indicate. If you want to understand how to eat better and if you want to base those opinions on scientific fact, this is a good course to take.
Psychiatry 135 – Sleep and Dreams. This class is taught by Dr. Demend, who discovered REM sleep and has been at the forefront of sleep medicine for as long as sleep medicine has existed. If you spend any time sleeping or dreaming, this is a good class to take. If you don’t, then this is an even better class to take.
CS 11SC – Great Ideas in Computer Science Sophomore College. I recommend that everyone should try to take a Sophomore College class. They’re a wonderful experience to learn fun things in a small classroom environment. A lot of them also have lots of field trips and other interesting things. Great Ideas in Computer Science, in particular, was a great experience. I learned a lot of great ideas in computer science — the types of ideas that even a nontechnical person could recognize as great ideas — interspersed with historical tidbits and tastes of some future CS courses.
Social Structures, Philosophy, Yourself
SLE – Structured Liberal Education. I don’t take many humanities courses because I don’t think that reading old books or writing academic papers are effective ways to learn what humanities teachers want their students to learn. SLE was no exception to that critique. My first quarter in SLE made me a worse writer, and neither the readings, the discussions, nor the papers were focused on what it means to live a good life in a way that was relevant to me even though the course was, supposedly, about teaching students how to live the good life. That said, I think that SLE is among Stanford’s best humanities courses, and it has been tremendously influential for me. First, it demystified the great books. People have a lot of untrue ideas about what famous, old books say. For me, I had the idea that the Book of Job had a halfway decent answer to why bad things happen to good people, but I had never really read it on my own. After reading the Book of Job, I became much less Jewish. If your philosophy involves holding things that a book says as true (whether that book is the Old Testament or Das Kapital), you should actually read that book. Second, my section leader in Spring quarter, Greg Watkins, was very good, and when my section was discussing Camus’ “The Stranger,” he recommended that I read “The Plague,” which is my favorite book and the cornerstone of my philosophy. That is to say, the most influential part of SLE wasn’t in SLE, but someone who is a good listener and who is well read, like Greg, can recommend the perfect book for an individual. Third, SLE is getting better. Now, they have a project that involves relating one of the books from Spring quarter to stuff in the community, like doing research about labor practices at Stanford and also talking about Marx. That’s what a humanities research paper should be.
Ethics and Society 137P – Justice at Home and Abroad. This class makes a clear connection between the real world and issues of civil rights, education, philanthropy, poverty, and many things that pass through the Supreme Court. For instance, we read Peter Singer’sand . We didn’t stop and banter about the philosophical implications. The class after we read that, Rob Reich, the professor, asked us to justify why we don’t donate our money. I couldn’t think of any good reasons not to, and none of the other students in the class provided any good reasons, so I started donating to organizations like Oxfam every month. I wouldn’t be surprised if Reich has caused students to donate hundreds of thousands of dollars in his teaching. Now, when someone asks what I want for my birthday, I tell them to make a donation to the charitable organization of their choice (because getting them to donate to the organization of their choice will increase the chance of them becoming a long term donor, which will create a greater impact than the one donation on its own). Throughout the course, the professors would make abstract philosophy real. If you care about justice in the real world rather than just abstractly, you should take this course.
Feminist Studies 138 – Violence Against Women. More specific than “Justice,” this course focuses on the issue of violence against women, the things that our culture does to support violence against women, and how we can stop this. If you care about your mother, your sister, or any other women, and if you want to make the world a better place for them, then you should take this course.
CS 221 – Artificial Intelligence. In my first year at Stanford, I took three introductory CS classes. I generally felt like I was good at CS, but I hadn’t taken any really hard CS classes, so it was hard for me to say that I really wanted to be a computer scientist. At the start of my second year, I took CS221. I didn’t meet the prerequisites, CS221 is sort of a graduate level class (in CS there isn’t really a strong distinction), and I took it in the same quarter as two other CS classes, so it was hard. As a result, I put in a lot of work, and when I succeeded in that class, I felt like a good computer scientist. This principle applies to other majors, too. You should take a hard class to have a rite of passage and to make yourself feel confident in your own skills.
CS 161 – Algorithms. Every computer scientist should know algorithms. This has been the hardest computer science class for me because proofs isn’t the way I think, but it has also been one of the most valuable.
CS 107 – Intro to Systems. A lot of people say that CS107 is hard. CS107 has been one of the most fun CS classes that I have taken. C, the programming language, is small and simple enough that you can really understand what you’re doing when you look at a piece of code. C’s design was very elegant and intuitive — when the teacher would introduce a problem, I would think up a solution to it, and C’s solution would be almost the same. 107 gave me a much better idea of how computers work.
CS 274 – Computational Molecular Biology. At first, I wanted to do biocomputation to save the world with computers. Then I took a bio class and disliked it. Then I took CS274 and loved it. This class is very well taught and shows a bunch of things about software engineering, algorithms, and biology that are just fun.
CS 147 – Intro Human Computer Interaction. Many CS classes focus on algorithms or systems to the exclusion of all else. CS147 was refreshing for its connection of design and programming.
I love lecture series in general. A lecture series brings together a different speaker each week to talk about interesting stuff, and there is little to no homework. In other words, you get to learn lots of different cool stuff from lots of different cool people, you get to meet those people, and it doesn’t take much time. Most one unit lecture series that I have taken have provided as much new interesting knowledge as many 5 unit classes that I have taken. The following is a list of the cool lecture series that I have taken.
Urban Studies 131 is about social entrepreneurship, and each week it brings in a different speaker who has started a company that makes the world a better place.
CS302 is about the law and technology. They have lots of cool things about intellectual property (and other stuff). For instance, someone from the Electronic Frontier Foundation talked about how they got Apple’s iPhone developer license out there by filing a Freedom of Information Act request on NASA, who had written an iPhone app.
CS546 is about liberation technology. Each week, they have a different person talking about the intersection of technology and social change.
CS547 is about humans, computers, and design. Each week, they have a different person talk about cool interfaces or other human computer interaction research.
Entrepreneurial Thought Leaders is a lecture series that I haven’t actually taken, but they bring in very cool speakers like the founder of Teach for America.
There are also special one-off lecture series. For instance, there was one on the 2008 election and there is now one on the 2012 election. There was also one on the Occupy Art movement, which brought in cool artists like Boots Riley in addition to people like Angela Davis.