Hi everyone,

I'm in dire need of help. I'm a computer science major going into my junior year of college. I'm kind of having some doubts about whether or not I'm in the right program, though.

I like the material, and I am starting to like the math, and the euphoria I get when I finish working with a complicated algorithm is fantastic. But I don't want it to become monotonous. I don't want to wake up 20 years down the road, and say "Oh f*ck, I have to go to work today."

Do any of you guys who are developers or programmers (or even system administrators, that interests me too), could walk me through a day on the job, and explain why you chose this field, and what you love about it?

Also, I've been throwing around teaching math/computer science. I teach in the CS learning center at my college, I'm a grader for a lower level class, and I tutor a few kids, and I find teaching very rewarding and fun. Any idea how you would go about getting an adolescent certification in education in computer science?


There is no job I've ever heard of that is all skittles and beer. Doing programming for a living involves things that are at least occasionally unpleasant. For instance, you will, from time to time

  • find yourself dealing with ignorant people who control your time
  • have deadlines that are far too close
  • have specifications that are far too ambitious
  • do programming tasks that are boring but necessary
  • work when you would far rather play (or: put off working on pleasant programming to do programming scut work)

On the other hand, you also

  • will have the opportunity to help make the world better
  • get to work with other programmers who are just as wicked kewl as you are
  • get to create new things, and extend old things in wonderful ways
  • get to actually think creatively about real problems

What I like best is that at the end of the day, I can look back at what I did, and I can apply my own judgment about how well I did it. This is two things: Every day, I do something. And every day, I apply my own standards to my work. (Not that managers will use a programmer's standards to evaluate). Both of these things, for me, are exhilarating, joyful, the right way to live. Even if you look back on the day's work and think 'piece of sh*t', it is your judgment of your work.

Programming is not that only job that suits me in this way: I could (and do) happily create things other than software.

There is one other important thing, mentioned above in passing: I love working with other programmers. I find that on the whole they share a lot of my world view, and I enjoy their company both on and off the job.

If you have not done an internship, and if you have the chance, you should certainly do it: On the job experience, even when an intern, is going to tell you much much more about how well you fit in that world than just talk.

Doubt about what you want to do is a natural thing.
Also, don't expect to do the same thing for the rest of your life if you have a decent education. You're more likely to flow into different jobs and positions over the years until what you're doing has little or no bearing on what you learned at school (in fact, I never held a job where what I studied at university was in any way related to the work I was doing and that's true for the majority of my friends and colleagues).

It's only relatively unskilled labour that's trained in schools before they ever get a job and then never learn to do anything else (except maybe to use a new tool when that replaces the tool they learned to use initially).
If you hold a white collar job, you're expected to be able to learn and keep learning, to adapt to whatever job is required of you.
Today you may be programming, maybe in 10 years you're writing tech manuals or training juniors yourself.