The Ideal University
I am a university undergraduate student. A super common rant topic among friends -- especially the more vocal and opinionated ones -- is lamenting the ineffectiveness of the vast majority of undergraduate computer science programs in the U.S. (And arguably in much of the rest of the world too.)
In particular, we think these things are wrong:
- We don't get enough hands-on experience. Yes, school and club projects are cool, but they are usually very naive and limited in scope. They are not real enough.
- Some concepts just seem too esoteric to be useful for jobs, and most people want jobs after graduation.
- Ah yes, we also need to take a bunch of useless GE classes.
So, occasionally, I would conjure and imagine what an ideal CS program would look like. This summer interning at ChatGPT, I came across a few interns from Canada's University of Waterloo (UWaterloo).
And I think I found the answer. It's been here all along. UWaterloo.
If I remember correctly, after sophomore year, CS education at UWaterloo becomes 50% classroom learning and 50% internships. Students would take a few months of classes, then go intern somewhere for a few months, and repeat. By the time they graduate after 5 years, they would have had 2 years of interning experience.
That seems crazy to me. Because in the vast majority of U.S. colleges, if you get one summer internship at some point in your undergraduate journey, especially in the currently oversaturated early-career software engineering market, then that's very nice already, and peers would immediately start digging through your LinkedIn, wondering if you are worthy of what you got. Even better if you got into a big-name company.
Yet on the other hand, the program at UWaterloo is designed and intended to have its students intern all year long, for, according to their official policy that ChatGPT sourced for me, "between 4 and 6 internships by graduation." Given the current saturation of the job market, it doesn't mean everyone at UWaterloo is getting into big name internships, but still, by the time someone graduates at UWaterloo, they would have 2 years of hands-on industry experience already.
Which one is a scarier job beast after graduation, a U.S. university graduate with 1 internship and 50 data structures and algorithms classes, or a UWaterloo graduate with 6 internships equivalent to 2 years of industry experience and classes that prepare and fine-tune those hands-on experiences?
At UCSB, I enrolled in "The Design and Implementation of Database Internals" course. I thoroughly enjoyed it, but the vast majority of my classmates were either overwhelmed with all the concepts, or simply couldn't see why topics like MVCC and query execution planning have any practical impact.
This Friday, I went to a ChatGPT intern party. Well, more like, half a party for the social ones, with the other half just standing in the hallway and chatting about life and CS, which is what I did haha.
I came across someone from UWaterloo, and I asked him this question I always ask: "Do you think college is useless?"
"What do you mean? It's useful. For example, I work on databases here. And I'm so glad I took a database class at UWaterloo earlier; what I learned directly applies to what I'm doing now, and it makes even more sense now after seeing all the concepts in practice."
It doesn't mean every UWaterloo person has this privilege. Nor does it mean every class has the chance to be seen and used in practice in one's career. But I'm sure about one thing, which is that, practice fine-tunes one's conceptual knowledge, and conceptual knowledge makes further practice possible. Having 6 internships allows someone to see what they learned in the classroom come to life in real action, while having typically 1 or 2 internships makes it a lot harder to truly understand what you learned in the classroom (or by yourself), see why that matters, and connect the dots across different concepts.
It's not like U.S. universities don't have a dedicated campus recruiting outreach department. It's not like there are no university job boards in the U.S. But it's totally one thing to just dump the jobs otherwise also posted on the internet to a university job board and pray that some of your students can make it, versus an actually functioning, robust campus recruiting pipeline and an intentionally designed undergraduate curriculum that incorporate so much hands-on industry experience.
It's not like U.S. universities don't know "hands-on experience is important". It's just that effective university-run student recruiting pipelines don't exist. Everyone gets the idea and its importance, but few, perhaps just UWaterloo at the moment, take it seriously and put in continued effort to make it happen.
So I think I've found the answer to my long-time rant against the seemingly useless undergraduate experience now. And the answer has been here all along: a curriculum that requires and facilitates students getting 2 years of internship experience and 2 years of classroom learning, and classes that are actually useful and taught by knowledgeable professors.
Yes, some professors' existence really makes you question how they got the job.
I am glad I found one answer to one thing I didn't know. I am satisfied. I am happy. Perhaps one theme of life is just putting up an infinite number of questions, and hopefully you find some actually reasonable, satisfying, and interesting answers. ChatGPT and internet search can find you some answers, but, I still believe the best answers need to also incorporate information that's otherwise not online. Because I believe a vast majority of human knowledge, experience, and intuition is not documented online.