5 things every CSC student should do before Graduation
July 31st, 2009
Graduation day has arrived. You’ve learned enough sorting algorithms to make you more than mildly annoying at boring parties, giggled every time you misheard your professor say “sets”, and have come to hate the traveling salesman. You are ready to step out into the real world and make your mark.
Right?
There’s only so much time over the course of four years in which students are awake, sober, and mentally alert enough to be taught. It’s impossible for us to cover everything before unleashing you out into the wild. So after a bit of thinking back to my own trial by fire in the real world, I came up with a list of things any self-respecting geek should do before graduation.
SSH (or telnet) into another machine and do something
I’m not trying to scare you, but chances are, you’re going to find yourself working on a machine without the comfort of a GUI available. As the mouse sits there uselessly taunting you, you’ll be left with a blinking cursor and no idea what to do next.
At some point before graduation, develop some command line proficiency. Learn the basic commands for navigating between directories (cd), listing files (dir on Windows, ls on Linux/Unix), and a few other commands to make you reasonably comfortable on the occasions where you need to connect to a remote machine. Everyone from a system admin managing multiple offices to a developer who needs to work on a QA or production box will at some point need to connect to a machine over the network and get something done..
Learn Vi or Emacs
The premise here is simple: learn a real text editor. No, Wordpad doesn’t count. Anyone who suggested Notepad, please sit down and keep reading.
There is a long standing religious feud between vi and emacs, much like Coke v. Pepsi, Yankees v. Mets, and “Tastes Great” v. “Less Filling” (I’m afraid that last one may have just showed my age). Most people fall in love with one and consequently adamantly hate everyone from the other camp. I personally tend towards emacs, but in a pinch I know how to navigate around vi to get the job done.
There are a bunch of reasons this is important. Both editors are powerful, providing users with a number of speed enhancing features. I know developers who use these in place of full blown IDEs. Both offer text-only versions, which will come in handy in the above scenario of working on a remote machine from a command line. Both (or at least vi) will be available on pretty much any Linux/Unix machine you find and can also be installed on Windows. Both also have very active communities, so finding tutorials on the internet should be simple.
Oh, and for the record, vi is pronounced as the two letters that make up it’s name (“vee-eye”). Don’t call it “six” thinking you’re being cute and reading it as a Roman numeral. Best case, you get laughed at. Worst case, someone throws something heavy at you.
Set up a LAMP server
A LAMP server refers to a machine running a suite of the following open source software:
- Linux – Operating system
- Apache – Web server
- MySQL – Database
- PHP – Programming language
The configuration has become so popular that the term “LAMP” has arisen to describe the four aspects (the first letter of each of them if It’s not clear).
Why? It’s a great introduction to a ton of different things you’ll likely need in the real world. If you’re reading this, I don’t need to explain to you why learning the fundamental blocks of building a web server are important. A LAMP server provides all of these pieces. It will also give you experience in dealing with configuring and connecting to databases, which will come in handy on, well, pretty much every project you’ll ever work on.
On top of that, there are some really cool open source apps written in PHP to install and dork around with. Wordpress (blogging software; used for this site), Gallery (photo sharing site), and phpbb (forums) are just a few of the open source applications you can download, install on your LAMP server, and tweak as much as you want. Bonus points if you check out the source code for these applications from their respective repositories.
This also makes for great resume padding, since it shows enthusiasm, curiosity, and technical ability.
Ok, ok, I’ll even bend a little bit. If this seems too daunting, take out the Linux part and do it on Windows. Just know that I’ll be disappointed in you.
Dual boot your system
Ok, I lied about bending. Given the size of hard drives these days, there’s no reason you can’t spare a few gigs to install a second operating system. The Linux installer is extremely friendly towards these types of setups. It will even go so far as to set up a menu when you boot to let you pick which operating system you want to boot into.
Dual booting allows you to hold on to a Windows installation while still giving the option to play around and learn Linux. And using Linux will make you a bad ass.
Install new hardware into a desktop computer
When I was 10, my dad showed me how to install a memory stick into a computer. He then informed me that the 4 seconds it took me to do it would have cost upwards of $30-$50 per stick at any local computer store. That’s not a bad rate for something that takes the same dexterity as putting bread into a toaster.
I’d like to have made this point “build a computer”, but I realize I’m talking to college students who can barely afford Ramen, much less the parts necessary for a desktop. But I do realize that at some point, you’re going to have an upgrade that needs installing. Do it yourself. It’s not as scary as it sounds and you’ll save a ton of money.
And while you’re in there, air dust it. If you’ve never done it I guarantee you’ll find a small furry creature has set up camp in one of your fans.


Dad
August 4th, 2009 at 6:17 am
I’m kinda partial to WIMP…
Windows OS
Internet Information Server
MySQL
PHP
Hey, it just MIGHT catch on