So often we look back at highschool and think, I wish they taught me about personal finances. I wish there was a class on investing. Why didn’t anybody tell me you shouldn’t spend more than half your paycheck on rent? The common response is, “be honest – if they had a class you wouldn’t have taken it.” Perhaps that’s true. Perhaps we learn the lesson right when we’re ready to learn it and the pain of learning is what makes us look back and think, I wish I knew this sooner. So now that I’m one quarter away from graduating, what are the lessons I wish I learned?
Technology moves fast. This we know! It’s nearly impossible to keep up, but I think it’s fair to say that our Computer Science degree programs are not changing quick enough. This isn’t unique to Oregon State University. Every school you look at offers “Computer Science.” Imagine if instead of becoming a specialized physician, you got a degree as a “healthcare professional.” How on Earth would you know how to perform brain surgery that generic of a degree? I feel the same way about Computer Science. It is a vast space that grows bigger every year and we need to start treating it as such.
I feel like I’m leaving this program not caring at all about HTML but having done the most projects in web applications and wanting nothing more than to understand how to dissect massive quantities of data. Of course, you could say that’s what a double major is for, or that’s experience you’ll get “on the job.” I probably could have even picked a Capstone project in that field, but my coursework leading up to this point hasn’t equipped me for a project of that nature. I can’t help but go back to the doctor example. Computer Science is like the field of medicine: it’s complex, it’s massive, and no one person can possibly know everything about it. I wish we had more degree options within the realm of Computer Science, especially as a post-bacc program where theoretically folks have some real world experience and could be coming into the program with their sight set on a particular field.
Modern day tools
Whenever I get started on these group assignments where we’re building a web application from scratch I get bombarded with words I’ve never heard before. Django, Flask, and PostgreSQL to name a few. In our required courses, we learn how to build a house made of logs using a hammer and nails. Meanwhile out in the real world, tools and materials have advanced significantly. Nobody seems to be building a house the way we learned. I see the argument for needing to learn the fundamentals, but low level programming is so heavily abstracted away from us nowadays I wonder how true that really is. This quarter I’ve learned you can model an entire database in Django without ever having to write a SQL statement. It’s completely behind the curtains! Queue old person screaming: “In my day we didn’t have these fancy tools, we had to create our database the old fashioned way. Then walk 3 miles uphill in snow both ways.” Again, I plea for our education to advance alongside technology. If writing assembly code is something 80% of the workforce never has to do, why do we teach it?
Let me be clear, I’m grateful for my education. I’m grateful that OSU provides this program. I’m extremely grateful for all the professors, TA’s, and peers that have helped me along the way. By no means am I saying the past 2.5 years have been a waste. All I offer is this perspective: given how much technology has changed, is it time for the Computer Science degree to get a makeover? As students and educators, we should grade the success of our program by the gap between what we’ve learned in school and what we still need to learn at our entry level job.