Being technologically savvy isn't enough
I didn't realize Dan Appleman was blogging again! In one of his recent posts, he brings up an excellent point related to my recent posts on skill disparities in programming and being good at your job: sometimes, it's the non-technical things that make you a better programmer than someone in India. Never underestimate the power of a personal presence:
And even if productivity isn't an issue, the inevitable tides of our economy will be. You will at some point in your career be dealing with a tight job market. And it's not your technological skills that will determine how well you succeed at those times.
It's your personal skills that will count. How well do you communicate? You should know how to present your ideas both to individuals and small groups. Can you write clearly and somewhat grammatically. Do you come across as confident in yourself and your abilities? Do you have leadership skills (that often translate into management skills)? Are you responsible? Are you a nice person to have around (or at least not completely repulsive)? Yes, there are those who are so technologically brilliant they can get away with caring just about technology, but for most of us these other skills are essential.
So, as you go off to college, don't let your technical classes get in the way of getting a good education. Take a writing class. Take a class or get involved in an activity that forces you to do some public speaking. Do some drama or improv. Join a club. Do some volunteer work. Do some tutoring. This kind of experience will have long term benefits to your career that you wouldn't believe.
It's for this very reason that I recommend books like How to Win Friends and Influence People to developers. Unfortunately, it's much easier to improve technical skills than personal skills-- the key is, as Dan points out, to make sure you're consciously choosing situations that exercise your interpersonal skills. Like most developers, I'm an introvert, so I have to actively force myself into those situations that I would ordinarily avoid.