The Developing Dev

Share this post

The Only Three Classes That Mattered From My College Degree

www.developing.dev

The Only Three Classes That Mattered From My College Degree

Ryan Peterman
Mar 17
7
9
Share this post

The Only Three Classes That Mattered From My College Degree

www.developing.dev

Only 3 of the 56 classes I took at UCLA matter in my daily software engineering work. Any engineer would agree that those three courses are worth their weight in gold.

All You Need To Pass Any FAANG Interview

Without a doubt, the two most important UCLA CS courses are CS31 & CS32. These classes are how engineering students learn to code. You can tell from looking at each syllabus how valuable these classes are:

  • CS31 Syllabus → The basics of how to code

  • CS32 Syllabus → Object oriented programming and data structures

My high school didn’t have any programming classes, so I didn’t even know what CS was until I took CS31. Although the initial programs don’t resemble industry work, CS31 lays the foundation. Building on that, CS32’s object oriented programming and data structures cover most of the programming I do.

Also, these classes teach you everything you need to pass FAANG interviews. While landing these jobs requires a lot of preparation (a topic for a future post), these courses provide the basics you need to tackle any interview question.

These classes taught us how to code but didn’t teach us how to be software engineers. We close that gap with one other class.

Where Programmers Become Engineers

UCLA has a notorious class called CS35L, which is a weekly series of time-consuming labs. This class, although painful, is what creates software engineers.

In it, we learned how to use the command line (e.g. shell commands, scripting) and change management (e.g. Git), which is core to writing code in a collaborative professional environment. Lastly, we learned how to use basic software debugging tools. I’ve always loved using debuggers rather than putting print statements everywhere because of how convenient it is to interact with the runtime of a live program. Now, I use these skills so often at work that they’ve become second nature.

Even though the class was a ton of work, it had the best late policy. Assignments “N” days late would lose 2^(N-1) points. This had a nice effect of being forgiving for slight delays but brutal for anything more than a few days late.


There are a few other classes that don’t matter nearly as much but are worth an honorable mention:

  • Algorithms (CS180) - Taught me how to do Leetcode hard difficulty questions

  • Operating Systems (CS111) - Taught me how computers work

  • Databases (CS143) - Was a nice crash course on SQL

If there’s one thing I’d change about my engineering education, it’s that I would’ve done more practical work (open source & projects) rather than spend all my time on my theoretical coursework. Over to you: What classes do you feel mattered from your college education and why?

If you learned something helpful, subscribe for free to receive new posts

Thanks for reading,
Ryan Peterman

9
Share this post

The Only Three Classes That Mattered From My College Degree

www.developing.dev
9 Comments
Daniel
Mar 20Liked by Ryan Peterman

I disagree that only three classes mattered. It simply may be the others matter in ways in which you are unaware. This article touches on some of those details: https://www.pearlleff.com/the-value-of-an-undergraduate-degree

Expand full comment
Reply
2 replies by Ryan Peterman and others
Ivan Huang
Writes The Software & Data Spectrum
Mar 17Liked by Ryan Peterman

This syllabus is a perfect example of what happens when you just used HTML and not include CSS 😝

But anyways, thanks for the classes. I agree that some classes weigh more than others, but I also think it's important to have a broad understanding of CS since there are times when a class might seem unimportant, but can actually be important in the future.

It's like when Steve Jobs said "Creativity is just connecting things...And the reason they were able to do that was that they’ve had more experiences or they have thought more about their experiences than other people... A lot of people in our industry haven’t had very diverse experiences. So they don’t have enough dots to connect, and they end up with very linear solutions without a broad perspective on the problem."

Just taking more classes in CS will give you more experience and understanding of computers. I think it's also important to focus on open-source projects, but having a broad understanding can make it easier.

Expand full comment
Reply
1 reply by Ryan Peterman
7 more comments…
TopNewCommunity

No posts

Ready for more?

© 2023 Ryan Peterman
Privacy ∙ Terms ∙ Collection notice
Start WritingGet the app
Substack is the home for great writing