Advice from Majors in the Class of 2024

The Class of 2024 was asked to pass along some of the insights they gained during their years as a major. Here are their responses (lightly edited):


1) Debugging is an integral part of good programming. Learn to approach bugs systematically by forming hypotheses, simplifying failing test cases, adding print statements, and ruling out red herrings. Be patient and have good humor in the process.

2) Choose electives wisely. Read CourseTable reviews and ask for advice from upperclassmen. Try to take at least 1 elective each from AI/ML, Systems, and Theory.

3) Make friends in your CS classes. Being able to talk to familiar faces in office hours or offline helps with managing tough assignments. Some electives even require partner work for projects.


Explore different branches of CS! Theory, systems, ML. Take classes on the edge of the pure cs spectrum, too. I enjoyed a lot of EE and stats courses and saw application of skills in both. If you like the people you’re taking classes with, that’s a good sign - try to stick with them and work together to get through the core classes!
USE GIT! Please use Git (ideally GitHub too) to save and track your progress on PSETs. It is really easy to forget what you’ve changed with multiple files, but it’s even easier to know what you’ve changed with a Git diff! Best advice I can offer younger CS students is to use Git for everything! It’s also very important to know how to use Git for internships and beyond!

GO TO OFFICE HOURS! As a former 323 ULA, I learned quite a lot from hosting Office Hours (OHs), and going to OHs would have saved me several hours as a student on several different occasions. You can also make friends at OHs!

PROTECT YOUR PEACE! Don’t take too many (3+) CS courses in a single semester! It is not worth overloading! Spreading your CS load across your 8 semesters will help prevent you from burning yourself out (if you can).


Yale has some world-class programs outside of CS, especially in the social sciences and humanities. Don't forget to take some of these other classes, and take them seriously, because 90% chance you'll never get to learn about some of these topics again, or at least not from people so knowledgeable.

Do everything early. Get started on your problem sets early. Go to office hours early. Start on the internship search early (a lot of things will open by late summer/early fall). The earlier you do things the easier it'll be.

Take care of yourself. Sleep, take breaks from screens, go outside, go exercise, make sure you learn how to type well to avoid carpal tunnel syndrome.

Try to remember why you got into CS in the first place. There are times that it will be hard and you will wonder why you are doing this. Try to do things that remind yourself that CS is fun. It gets easier after 323.


1) Take a look at your problem set specs the day that they're released! Read them through, take any notes, think about any potential edge cases you could jot down. You don't have to start coding-- just get your brain ruminating on them early.

2) Use your ULAs, TAs, and professors' office hours as much as possible! There is nothing shameful about needing help. They want to help you and see you thrive.

3) Take advantage of how small Yale's majors are, and take some random courses in other disciplines that you find interesting. You'll have the rest of your career to learn new CS frameworks and material; just because you're a CS major doesn't mean that's all you have to limit yourself to in your coursework.

4) Take care of your body and your mind, in whatever ways that looks like for you. Shower and clean your room often. Wash your sheets every couple of weeks. Get enough sleep. Eat, workout, get outside, stretch, meditate. Don't sacrifice your health and wellbeing for a grade.


Meet with the professors! I wish I'd done a better job of this in my time at Yale. I really love Computer Science as a field because I find it to be meritocratic and kind and uncompetitive and I think that the professors embody that spirit. I have gained such invaluable advice from the times I've dragged myself to Office Hours thinking I was going to be bothering the professors.

Also, plan your courses out properly. I wish I could change the order I did them in.


Don't take classes you don't like when possible.
It is easy to be swayed by what others are doing around you. College is a time where it is best to think about who you are and what you want. This will surely maximize your long term success in life :)
Computer science is not just about what you learn in the classroom, but also how you can synthesize and communicate your work. Working as a ULA or working with classmates is a great way to practice problem solving and step through problems. You will rarely be a lone software engineer, so learn how to work with others!

Talk to professors, they are incredibly interesting and knowledgeable people who are open to talking to underclassmen.

Don’t try to do everything. Get a sense of what topics or types of work you enjoy doing and push into that feeling. College is the perfect time to explore, but it is also incredibly exhausting. Save your time and energy and channel it into research, projects, and classes that you are interested in learning in, and not in things that you think you should be learning. Dropping something that you can barely commit to means that you can put more hours into the things you enjoy, and the organization that you left can offer more opportunities and space to people who have more time to help.

323 may seem really scary, but I think it is helpful to think about why systems are important to learn and understand. If you can find some excitement in what you are learning (whether it means you are strengthening a skill or abstracting a concept into an interesting philosophical problem), the fear of tackling a problem will be less anxiety-inducing and more exciting

Your classmates are not your competitors! CS is already difficult as it is, and building relationships along the core-CS classes will contribute to your support system. Asking for help and being open about your journey throughout CS is not a weakness. Don’t judge yourself or others for their course or career decisions

You don’t learn how to be a software engineer in college, so go explore humanities courses and activities that will help build the soft skills you need to be a good team player and thinker. Don’t pigeonhole yourself to Yale CS- you go to a liberal arts university!