This is sort of my response to metal-mouth james:

To start off, I never really was certain what I'm going to take up in college. Sure I'd like to draw, then I should've taken up Architecture. I have an interest in the Sciences, I would've taken up Biology, or even go to medical school and be a doctor.

Then again, I thought about the times, and I sought after a practical choice. At least for those who do not aspire beyond being a corporate slave. The world don't need more architects. The world may need more doctors, but seeing as how I only have at most five years out of my time so I could help the family out, then it's not a favorable choice for me.

Other courses need to pass some boring board exam (Law, Engineering, Accountancy), so there I was eyeing a fast-paced career -- IT. Truth be told, I never even gotten into the quota limit for a Computer Science course in UP. So it was Computer Engineer in Mapua for me.

And even then I knew college would be another boring endeavor. I gave it at most 20% of what I'll learn to be actually useful when I get my diploma. The rest would be the rantings of a late adolescent (don't forget thoughts of existentialism).

Now why even bother with all those C++, Java, Cisco, etc. if none of it will stay in my head?

I say, don't worry about it. You'll be glad you're given an opportunity to 'glance' at those technologies. More on that later.

As a Persian proverb goes, "The work will teach you how to do it".

When you get your first job, it may or may not be something you've learned in college. That's the truth in most cases in our league (well, accountants more or less get into accountancy jobs, one is no different from the other I reckon). IT is vast, and ever changing.

And people out there know that.

So entry level developers are given trainings, or chances to have certifications (for that extra credibility). Some of those have to be done at your own volition. Now you ask, why bother learning a lot of unnecessary stuff in college?

The answer is -- to let you explore your choices.

I was a Computer Engineering student. But I hated the hardware. So here I am fiddling with software.

Back then the languages I used were C, Pascal, Assembly, and perhaps the most advanced was Delphi. After graduating, I worked on projects that use Visual Basic, and eventually moved on to Java/J2EE. Sounded like I used nothing of my college experience. On the contrary, Java has similarities with C (at least in syntax). And Delphi mayhaps introduced me to object-oriented concepts. It really didn't matter what specific language I had to learn, so long as I know how to use one when it comes around. That you get from learning a starter language, like you just did right now. And like what I did back then.

Think of it as going to med school. You don't want to become a trauma surgeon, or a urologist, or an endocrinologist right away. You're given this chance to take a good view of things. I would think we're all capricious enough to change decisions every now and then, but we're certainly wise enough to move in a general direction. That's why we have courses that offers the choices we can take. And that's the purpose of having to know a lot but not knowing what they are for, yet.

Now when you do get a job, wouldn't it be a good feeling when you realize "Hey, I know that!" That is called, getting an edge. And getting an edge starts from knowing a lot. Or at least having an opportunity that fits in your area of expertise.

As for my writing, I dunno. I've always wanted to write. But I never thought about doing something concrete about it. At least not yet.

Besides, I can think of it as a tool. Why not sharpen it?