Every semester, some of my students come up to me and ask questions along the lines of, “How can I learn more about networks?” or “I’ve heard Ruby is cool, where should I start?” or “I feel like the class is just scratching the surface, how should I learn more?” If you’re one of these students, this post is for you!
A developer at IBM Watson Innovation Labs, Iheanyi Ekechukwu, recently wrote a great article intended for incoming Computer Science students at Notre Dame. It discusses the ways computer science students can expand their knowledge and build confidence in their skills as developers. He has excellent, concrete suggestions; you can (and should) read his article here.
The key? Learning outside of the classroom whenever possible. If you’re asking questions like those at the top of the article, the curriculum isn’t going to give you enough.
Now, don’t get me wrong, the computer science program at CSUS has its strengths. We have a strong set of electives in computer graphics, video game architecture, and artificial intelligence. Our capstone Senior Project imparts valuable experience in software engineering. But there is so much more to computer science than what is covered in our degree, and no four-year computer science program can possibly hope to do more than scratch the surface. If you want to learn more, you need to look beyond the classroom, and that’s exactly what Ekechukwu’s article describes. (Go read it!)
Learning outside the classroom can be challenging. It takes discipline and time, but it’s also great fun when you find a project or subject you enjoy. The experience you’ll get will far surpass what you’ll learn in class. Most of what I’ve learned I gathered from projects outside of classes, from building my own Linux-based router (to share a dialup modem connection–yeah, that was an experience) to writing a PHP/MySQL web app on my first job (and last I heard, they’re still using it).
So, to my students: I highly suggest reading Ekechukwu’s article. If you need ideas for side projects, drop me an email or visit during office hours; we can find a project that kindles your interests.
It’s 12:35AM so I’m not going to be very wordy. Here’s the upshot:
- My mother and I have graduated from California State University, Sacramento, with our Bachelor’s degrees!
- She now has a Psychology degree.
- I now have a Computer Science degree.
- I was the Student Speaker at commencement. Hopefully most of you that listened to it were inspired to go out there and do cool things.
- I’m going to grad school.
- CSUS for my Master’s degree.
- Stanford or Berkeley for my PhD…eventually.
- My dream: d.school. My Agile project management class did a presentation on it. I’d love to attend.
- …but I’m thinking about getting into the Software Engineering field somewhere between the Master’s and the PhD. After experiencing the joy of working on a small team that got stuff done and had fun while doing so (courtesy of Senior Project, and literally the first time I have experienced this kind of team), I’m very excited about the prospect of working with people who love working with computer software and hardware…and who love working with other people.
Obligatory image of me being inspiring on four hours of sleep:
“I’d like to thank glucose, for allowing my brain to process all those cat videos…”
I’m still waiting for it to sink in: we have our degrees.
So yeah, haven’t posted in awhile. Life has been crazy, awesome, and aggravating all simultaneously. (You know, like it always is, just more so.) So what’s been going on?
Here’s the cliff notes version. Expect sporadic blog posts in the future about these subjects.
- Upcoming Graduations: Holy Educational Achievement Get, Batman: I will graduate with my Bachelor’s degree in Computer Science in May 2015. But what, you ask, what’s with the plural s? My mother is graduating too! She will be earning her Bachelor’s degree in Psychology this May. I’m so proud of her. She’s put up with all the stresses and pressures of college life, only in a sixty-something year old body instead of a twenty-something year old body. She came out on top anyway, because she’s awesome like that. Go mum!
- Prepping for Grad School: Because I like college too darn much. I’ll be attending CSUS in the Fall as a graduate student in Computer Science.
- Senior Project: Whenever I see a poorly-designed website or application, I snarkily call it a “Senior Project”. Is that derogatory to hard working seniors in CSC190 and CSC191? Yeah, but it pretty much sums up the Senior Project experience: chaotic and messy and all around annoying. And fun. (Sometimes.) Don’t get me wrong, it’s a very valuable course, but it’s also transcendentally irksome. (Sometimes.) Also, we’re learning like a year’s worth of stuff on the fly and stuffing it into a month or two, because we’re still learning how not to plan things. At least I have extra motivation to learn ASP.NET/C# and other cool things, like Selenium.
- Independent Study Project: Because why have one massive project to work on when you can have TWO? I’m working on a performance testing framework to do some performance analysis on virtual machines. The results of my project will be used to inform decisions on program contest judging systems.
- Supplemental Instruction (SI) Class: Two years ago, the campus gave me a classroom and a group of twelve nervous compsci students who wanted extra guidance in CSC20. By the end of the semester, my students owned the material like Horatio Caine owns bad puns. That’s apparently good enough for the campus, because it’s happened three more times. This is my fourth semester leading the CSC20W discussion section, and my first under the indomitable Dr. Krovetz. I have to step up my game to match him. Dr. Wang was cool, but Dr. Krovetz is the cool kid that all the cool kids want to be. I can’t just be competent any more. No. I have to be awesome. Like Batman. Batmaaaaaaaan. (Nananana nananana!)
- Teaching With Greenfoot: So Greenfoot is an awesome application for teaching the basics of Java programming and 2D game design to youngsters. But wait, you might say: Cody, you’re not that old–you’re only a few years ahead of most of your students! All right, okay, so I’m not that old; I’m in my 20s, but I’ve been doing the SI class long enough to where I call all of my students “youngsters” regardless of their age. However, in this case, I mean actual youngsters. Greenfoot is great for teaching kids how to program. It’s powerful enough (and complicated enough) to make fun programs, but it also offers instant feedback and scaffolds the boring parts of the program to bridge the gaps in a tween’s or teen’s attention span.
- Minecraft: I’m sorry. What is this “free time” thing you speak of? I faintly recall that I used to–no, never mind, tell me later; I have to go punch some trees. (I’m hoping to put my world map up on the blog eventually.)
- The Usual Horrible Abuse of Old Hardware: Actually, not so much. I barely used any duct tape this time! I had an old laptop with a Pentium P6000 CPU in it. It was so slow, it made baby kittens cry. (Okay, so it wasn’t that bad, but I wanted something better.) I gave it an i5 instead. And a SSD. And 8GB of RAM, because go big or go home.
- Hanging Out with Friends: So I’m generally okay at being social and just being part of a group (instead of teaching or leading it), but for some reason, I never really did it much before this semester. But now I have a group of close friends that I hang with on campus. We spend most of our time talking about Minecraft and making innuendo-laden remarks and listening to music and impersonating our professors’ voices and trying to dance and generally just goofing off. Yay for being a more emotionally healthy person!
- Working on my Driver’s License: Because who doesn’t want to strap themselves into a two-ton metal death projectile and go careening down the highway while dodging irritated drivers who think the speed limit is 85? I’m aiming to get my license by July.
So yeah, that just about covers it. If you’re looking for more sarcasm, go watch Minute Minecraft Parodies. And expect more posts from me in the near future.
I graduate from CSUS after next semester. I’m aiming straight for grad school, and to get into grad school, I needed to take the computer-based GRE (Graduate Record Examination). Here’s how it went…