A few months ago, I graduated with a bachelor’s degree in computer science. One thing’s for sure: most computer science classes in college are not easy. But, while completing my CS program, I picked up habits that greatly improved my productivity for projects and exams. Before I share them with you, I want to preface that I realize no two students study alike, and no two universities’ CS programs are the same. Hence, my study strategies for computer science students might not work for you, and that’s okay! However, my goal is to bring to light some tips that benefitted me.
Tip #1: Gain understanding of your programming projects early.
First, I’m guessing the vast majority of computer science professors have told their students to start projects early. From my experience at college, most students (including me) didn’t heed this warning. Instead, we found ourselves scrambling to get difficult programming work completed at the last second. When in those situations, half the battle wasn’t coding. It was understanding the lengthy project specifications.
Eventually, I realized that to get ahead of the game on programming projects, it was imperative to gain a full understanding of the project’s problem space as soon as possible. I set up a system to tackle this idea.
On the first day each project was released, I printed out the project specification, highlighted the important parts, and scribbled notes on possible data structures to use. I also wrote down a list of questions. Then, I took those questions to the first available professor’s office hours. There, I’d clarify my ideas about code structure with the professor before writing a single line of code. After that, I’d have a well-organized mental model of the project on the first day it was assigned. When I ultimately started typing, having that context made the code seemingly fall right into place.
Tip #2: Take ownership of your programming projects.
Next, before I took Data Structures & Algorithms my sophomore year, I reached out to some upperclassmen for advice on how to best navigate the intimidating class. One person’s guidance really stuck with me:
When you’re programming for a company, you tend to be really organized with your code because it’s going to get shipped to potentially millions of people. That’s why most full-time developers feel a sense of ownership of their work. In school, however, your code gets used by nobody, and it’s essentially thrown away after the project deadline. That’s why it’s difficult for students to have that same mindset.
Taking ownership of code you aren’t getting paid to write may sound backward to some, but it provides a lot of value when you start applying that mindset to projects. Tip #1 laid out some of the tools necessary to take ownership of your code. Tip #2 builds on that by adding some imaginary pressure that your code is going to get used by millions. Due to that pressure, I began using some industry best practices in my day-to-day development. I started to add comments, organize logic into separate functions and files, review my code for readability, and use tools like debuggers and version control. Once I did that, I experienced a much smoother process completing programming projects.
Tip #3: Get comfortable writing code on paper.
Finally, one thing I never liked about CS classes is the balancing act of learning the technical concepts for programming projects and the theoretical concepts that show up on the exam. Hopefully, you’ve applied Tip #1, so that if that the exam and project deadlines fall on similar dates, you’ll have built a buffer of time to focus on just the exam content.
Furthermore, most computer science exams will have free-response questions that involve writing code on paper. Throughout the semester, autocomplete and error-checking IDEs were there for you. But on the exam, that’s not the case. Your development environment will completely change, and many students fail to prepare for that. Hence, during my studying, I would find long chunks of uninterrupted time to write code from projects and lectures by hand on sheets of printer paper. By getting into a state of Deep Work while studying, this strategy successfully trained my brain to tackle coding questions on exams.
Takeaways: Study Strategies for Computer Science
To provide a recap:
- On programming projects, print out project specifications, ask your professors questions, and start early.
- For any code you write for class, pretend that millions of people are going to use it, and write it well!
- Before programming exams, become an expert of coding on paper by studying on paper.
I hope you found these strategies helpful. Above all, best of luck on your journey through the computer science major. Looking back at my college experience, I wouldn’t have picked anything else to major in!